表管理
功能背景
实时平台的FlinkSQL任务,一般开发流程是:创建任务—>创建Flink表—>编辑SQL逻辑—>任务提交。比如同一个Kafka数据源,在不同的任务中被作为源头数据使用到时,需要多次创建Flink表,并且不可复用,开发效率较低。
note
Flink表并不是一张物理表,它只是将底层各种类型的物理表统一映射成FlinkSQL能识别的表。可以近似地将它理解成一个视图。
「表管理」,是为了将这个映射关系的元数据进行持久化存储,在不同的任务中可以重复引用相同的Flink表,而不需要在每个任务中重复建设,提高开发效率。
目录管理
Catalog管理是Flink模拟数据源.数据库.数据表(Catalog.DataBase.Table)的结构,管理Flink元数据的方式。
Catalog管理
目前平台支持对Flink元数据存储至外部的Hive Metastore进行管理。
:::note
引入HMS后,平台不会展示管理其中的Hive表元数据
:::
DataBase管理
方法一:鼠标移动到catalog名称上时,点击「+」号即可
方法二:在IDE页面,通过SQL的方式创建:
CREATE DATABASE catalogname.dbname
Flink表管理
Flink表的应用分为:源表、维表、结果表。因此在目录管理中,建议对应创建三个文件夹,分别存储这三类表。
Flink表的创建有三种方法:
鼠标移动至对应的Database上,点击「+」号,已向导模式创建一张Flink表。(存在数据源类型限制)
鼠标移动至对应的Database上,点击「+」号,已脚本模式创建一张Flink表。
在IDE页面,通过SQL的方式创建:
CREATE TABLE lingjiang.db2.test_01 (
`opendate` date,
`channel_name` varchar,
`opencnt` bigint
)WITH(
'properties.bootstrap.servers' = 'ip1:port1,ip2:port2',
'connector' = 'kafka-x',
'scan.parallelism' = '1',
'format' = 'json',
'topic' = 'topicname',
'scan.startup.mode' = 'latest-offset'
);
更多Flink表的映射写法,可以参考chunjun-examples。