flinksql-core-动态表

FlinkSQL提供了连接外部数据的方法,即通过建立Flink表与外部数据关联起来。其中最基本的连接方式为普通动态表连接,普通动态表允许读取外部数据以及输出数据至外部系统。

概念

普通动态表是FlinkSQL中的一类表,表中的数据与连接的外部数据对等,可以简单理解为把一张mysql的表放进flink内存中得到的表,并且该表与mysql表有连接关系,即该表可以读写mysql表。

使用方式

需要声明表的字段定义和表属性(连接器属性)。语法如下:

CREATE TABLE myTable (
myColumn1 int,
myColumn2 string...
)WITH (
'connector'='jdbc',
'url'='...',
'username'='...',
'password'='...'
)

with关键字前面的是字段定义,with关键字后面的是表属性。其中字段定义时还可以声明表主键,声明语法为PARIMARY KEY(myColumn1,...) NOT ENFORCED, 这里的not enforced表示flinksql不会对主键做强制的唯一性约束、非空约束,而且目前flinksql中只支持这种类型的主键。
表属性中有若干个属性字段需要声明,具体有哪些属性字段取决于使用哪个连接器,如上述声明中使用的是jdbc连接器,在使用该连接器时需要提供url、username、password等属性,通过此连接器我们就可以让该表能连接到对应的mysql表。

查询数据

我们可以查询flinksql普通动态表的数据,此数据与连接的外部数据是一致的。语法如下:

SELECT ... FROM myTable ...

tips:在运行时,只会加载一次外部数据到flinksql普通动态表。后续外部数据表有更新时,flinksql的普通动态表不会跟着自动更新。

输出数据

我们可以把数据写入到flinksql动态表,从而实现写入数据到外部系统的目的。语法如下:

INSERT INTO myTable ...
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容