首页 > 其他分享 >Flink Table API 的开发步骤

Flink Table API 的开发步骤

时间:2022-10-12 00:11:30浏览次数:60  
标签:TableEnvironment Flink API table Table tEnv

1.创建 TableEnvironment

Flink的Table API/SQL的执行入口

功能如下:

1.1 注册Catalog【数据系统实例】

1.2 在Catalog中注册库和表

1.3 加载插件模块

1.4 执行SQL的查询

1.5 注册UDF

1.6 实现DataStream和Table互转

方式一:创建TableEnvironment实例代码,:

EnvironmentSettings settings = EnvironmentSettings
.newInstance() //创建对象
// .inBatchMode() // 批模式环境
// .inStreamingMode() //流模式环境【默认】
.build();

TableEnvironment tableEnvironment = TableEnvironment.create(settings);

方式二:DataStream和Table 的API/SQL 混用,可以这种创建

// 1.获取Stream执行环境
 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 2.创建表执行环境
StreamTableEnvironment tEnv = StreamTableEnvironment.create(env);

2.修改Flink的默认配置,可以参考官网:https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/dev/table/config/

Configuration configuration = tEnv.getConfig().getConfiguration();
configuration.setString("table.exec.mini-batch.enabled", "true");
configuration.setString("table.exec.mini-batch.allow-latency", "5 s");
configuration.setString("table.exec.mini-batch.size", "5000");

3.创建表和注册表

// 临时表
tEnv.createTemporaryView(); 
// 常规表
tEnv.createTable();
tEnv.createTemporaryTable();

常规表一般是创建source和sink的时候使用,可以跨session使用

临时表一般是中间表,中间过程表,只能在同一个session使用

4.设置表的标识

catalog【数据库实例】,database【数据库】,如果不指定默认 default_catalog ,default_database

tEnv.useCatalog("");
tEnv.useDatabase("");

5.执行查询

Table的API方式

Table resultTable = table.where($("username").isEqual("zhangsan"))
.select($("username"), $("url"),$("ctime"));

SQL的方式

Table table1 = tenv.sqlQuery("select * from order_sink");

6.将结果打印/输出

clickLogDS.print();

7.执行

senv.execute("FlinkSQLOracleDemo");

 

标签:TableEnvironment,Flink,API,table,Table,tEnv
From: https://www.cnblogs.com/glblog/p/16783089.html

相关文章

  • 使用 Stream API 高逼格 优化 Java 代码
    Java8的新特性主要是Lambda表达式和流,当流和Lambda表达式结合起来一起使用时,因为流申明式处理数据集合的特点,可以让代码变得简洁易读放大招,流如何简化代码如果有一个需求,需......
  • 详解ROMA Connect API 流控实现技术
    1、概述ROMA平台的核心系统ROMAConnect源自华为流程IT的集成平台,在华为内部有超过15年的企业业务集成经验。依托ROMAConnect,可以将物联网、大数据、视频、统一通信、GIS等......
  • windows内核Api的学习
    windows内核api就是ntoskrnl.exe导出的函数。我们可以跟调用应用层的api一样,调用内核api。不过内核api需要注意的是,如果函数导出了,并且函数文档化(也就是可以直接在msdn上搜......
  • css属性table
     table的属性:HTML cellpadding把表格单元边沿与单元内容之间的间距设置为10像素:cellpadding属性规定单元边沿与单元内容之间的空间,以像素计。注意:请勿将该......
  • Flink在数度Datagradient平台的应用​
        ApacheFlink是一个框架和分布式处理引擎,用于对无边界和有边界的数据流进行有状态的计算。梯度科技自主研发的Datagradient(数度),实时计算(实时开发)是一套基于Apach......
  • 《基于Apache Flink的流处理》读书笔记
            前段时间详细地阅读了《ApacheFlink的流处理》这本书,作者是FabianHueske&VasilikiKalavri,国内崔星灿翻译的,这本书非常详细、全面得介绍了Flink流处......
  • 浅谈MySQL、Hadoop、BigTable、Clickhouse数据读写机制
    个人理解,欢迎指正数据库引擎写数据读数据补充MySqlInnoDB:支持事务,高速读写性能一般Myisam:不支持事务,高速读写性能好以InnoDB更新一条记录为例1、B+Tree......
  • 用了这个API协作调试工具,忘记了postman
    ​ 什么是ApifoxApifox是一款接口调试一体化工具,同postman相比,Apifox的功能更加全面,Apifox全中文也更适合国人,Apifox的设计逻辑也非常优秀,如果你是一个新手,我会......
  • 网安软件:Metasploitable2下载
    ​​https://sourceforge.net/projects/metasploitable/​​1、​​点我最快获取软件​​2、​​点我获悉三点声明​​......
  • 网安软件:Metasploitable3下载
    ​​https://pan.baidu.com/s/1qmPTjUZpQnxJWWoORZ3-oQ ​​提取码:q40x1、​​点我最快获取软件​​2、​​点我获悉三点声明​​​......