当前位置: 首页 > 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>

相关文章:

  • 在Python中设置现有Word文档的缩进
  • 红队系列-网络安全知识锦囊-CTF(持续更新)
  • netlist
  • Linux 官方蓝牙协议栈 BlueZ 第一篇:入门与架构概览
  • 【Linux网络】TCP服务中IOService应用与实现
  • pnpm常见报错解决办法
  • JMeter添加HTTP请求默认值元件的作用详解
  • PicoVR眼镜在XR融合现实显示模式下无法显示粒子问题
  • 欧拉计划 Project Euler56(幂的数字和)题解
  • pnpm monoreop 打包时 node_modules 内部包 typescript 不能推导出类型报错
  • firewalld 详解
  • 制作一款打飞机游戏24:键盘输入
  • OpenAI最新的4o图像生成模型 gpt-image-1 深度解析:API KEY 获取、开发代码示例
  • 待办事项日历组件实现
  • JAVA设计模式——(七)代理模式
  • 深度探索多模态数据:从声音到图像的奇妙世界
  • C++:继承机制详解
  • 「Java EE开发指南」如何使用MyEclipse的可视化JSF编辑器设计JSP?(一)
  • 【C++基础知识】C++ 模板元编程(Template Metaprogramming, TMP)技术详解
  • 欧拉安装宝塔等,报错Errors during downloading metadata for repository ‘OS‘
  • 这个器官健康的人,不容易得抑郁症
  • 朝中社发表评论文章,谴责美军部署B1-B轰炸机至日本
  • 《哪吒之魔童降世》电影版权方诉《仙侠神域》游戏运营方侵权案开庭
  • 独家丨前华金证券宏观首席秦泰加盟华福证券,任研究所副所长
  • 上海市长会见璞跃全球创始人亚美迪,建设国际AI创新创业网络中心节点
  • 裁员15%、撤销132个机构,美国务院将全面重组