当前位置: 首页 > news >正文

IDEA编写flinkSQL(快速体验版本,--无需配置环境)

相关资料

文档内容链接地址
datagen生成器https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/connectors/table/datagen/
print 生成器https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/connectors/table/print/

准备工作

优点就是下载个idea就能体验,无需配置的环境(如 数据源等)
1、idea 开发工具
2、创建 maven 项目 – archetype 选择quickstart 表示java开发

java代码

代码逻辑
1、采用datagen 生成器,作为数据 source
2、采用print 作为打印器,作为sink 直接输出

package org.example;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.table.api.Table;
import org.apache.flink.table.api.bridge.java.StreamTableEnvironment;public class FlinkSqlDemo {public static void main(String[] args) throws Exception {// 创建执行环境StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env);// 创建输入表(使用DataGen生成测试数据)String sourceDDL = "CREATE TABLE user_behavior (\n" +"    user_id BIGINT,\n" +"    behavior STRING,\n" +"    ts TIMESTAMP(3)\n" +") WITH (\n" +"    'connector' = 'datagen',\n" +"    'rows-per-second' = '1',\n" +"    'fields.user_id.kind' = 'random',\n" +"    'fields.user_id.min' = '1',\n" +"    'fields.user_id.max' = '2',\n" +"    'fields.behavior.length' = '2'\n" +")";// 创建输出表(打印结果)String sinkDDL = "CREATE TABLE print_table (\n" +"    behavior STRING,\n" +"    cnt BIGINT\n" +") WITH (\n" +"    'connector' = 'print'\n" +")";// 执行DDLtableEnv.executeSql(sourceDDL);tableEnv.executeSql(sinkDDL);// 执行查询并插入结果Table resultTable = tableEnv.sqlQuery("SELECT behavior, COUNT(*) AS cnt " +"FROM user_behavior " +"GROUP BY behavior");// 插入到输出表resultTable.executeInsert("print_table").await();// 执行任务(流式任务需要保持运行)env.execute("Flink SQL Demo");}
}

pom依赖配置

`
4.0.0

<groupId>org.example</groupId>
<artifactId>flinklearn</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><flink.version>1.17.1</flink.version>
</properties><dependencies><!-- Flink Core --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-java</artifactId><version>${flink.version}</version></dependency><!-- Flink实时流--><dependency><groupId>org.apache.flink</groupId><artifactId>flink-streaming-java</artifactId><version>${flink.version}</version></dependency><dependency><groupId>org.apache.flink</groupId><artifactId>flink-clients</artifactId><version>${flink.version}</version></dependency><!-- Flink Table --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-table-planner_2.12</artifactId><version>${flink.version}</version></dependency><dependency><groupId>com.ververica</groupId><artifactId>flink-sql-connector-mysql-cdc</artifactId><version>2.0.1</version></dependency>
</dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.4</version><executions><execution><phase>package</phase><goals><goal>shade</goal></goals><configuration><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.example.FlinkSqlDemo</mainClass></transformer></transformers></configuration></execution></executions></plugin></plugins>
</build>
http://www.xdnf.cn/news/139807.html

相关文章:

  • Vue3后代组件多祖先通讯设计方案
  • OpenCV 图形API(63)图像结构分析和形状描述符------计算图像中非零像素的边界框函数boundingRect()
  • 52.[前端开发-JS实战框架应用]Day03-AJAX-插件开发-备课项目实战-Lodash
  • ubuntu20.04安装x11vnc远程桌面
  • AI数据分析的利器:解锁BI工具的无限潜力
  • android将打包文件的password和alias写入到本地文件
  • 区块链如何达成共识:PoW/PoS/DPoS的原理、争议与适用场景全解
  • 一些有关ffmpeg 使用(1)
  • LSPatch官方版:无Root Xposed框架,自由定制手机体验
  • MySQL的日志--Undo Log【学习笔记】
  • MCP认证考试技术难题实战破解:从IP冲突到PowerShell命令的深度指南
  • Hadoop进阶之路
  • 第100+39步 ChatGPT学习:R语言实现Xgboost SHAP
  • AI网络渗透kali应用(gptshell)
  • 第十二天 使用Unity Test Framework进行自动化测试 性能优化:Profiler分析、内存管理
  • 【QQmusic自定义控件实现音乐播放器核心交互逻辑】第三章
  • PyCharm 中 FREECAD 二次开发:从基础建模到深度定制
  • uni-app中获取用户实时位置完整指南:解决权限报错问题
  • 运维之SSD硬盘(SSD hard Drive for Operation and Maintenance)
  • Spring Cloud Gateway 如何将请求分发到各个服务
  • AI 工程师崛起:科技浪潮下的新兴力量
  • 机器学习的基本概念
  • 纯HTMLCSS静态网站——元神
  • 论文阅读笔记——ZeroGrasp: Zero-Shot Shape Reconstruction Enabled Robotic Grasping
  • 什么是视频上墙
  • 【研究学习】开源调制识别数据集
  • freeswitch配置视频对接
  • 第11章 面向分类任务的表示模型微调
  • 图论---Kruskal(稀疏图)
  • Bytebase 3.3.1 - DML一键回滚支持 Oracle