Skip to main content

表管理

功能背景

实时平台的FlinkSQL任务,一般开发流程是:创建任务—>创建Flink表—>编辑SQL逻辑—>任务提交。比如同一个Kafka数据源,在不同的任务中被作为源头数据使用到时,需要多次创建Flink表,并且不可复用,开发效率较低。

note

Flink表并不是一张物理表,它只是将底层各种类型的物理表统一映射成FlinkSQL能识别的表。可以近似地将它理解成一个视图。

「表管理」,是为了将这个映射关系的元数据进行持久化存储,在不同的任务中可以重复引用相同的Flink表,而不需要在每个任务中重复建设,提高开发效率

目录管理

Catalog管理是Flink模拟数据源.数据库.数据表(Catalog.DataBase.Table)的结构,管理Flink元数据的方式。

Catalog管理

目前平台支持对Flink元数据存储至外部的Hive Metastore进行管理。

:::note

引入HMS后,平台不会展示管理其中的Hive表元数据

:::

DataBase管理

  1. 方法一:鼠标移动到catalog名称上时,点击「+」号即可

  2. 方法二:在IDE页面,通过SQL的方式创建:

    CREATE DATABASE catalogname.dbname

Flink表管理

Flink表的应用分为:源表、维表、结果表。因此在目录管理中,建议对应创建三个文件夹,分别存储这三类表。

Flink表的创建有三种方法:

  1. 鼠标移动至对应的Database上,点击「+」号,已向导模式创建一张Flink表。(存在数据源类型限制)

  2. 鼠标移动至对应的Database上,点击「+」号,已脚本模式创建一张Flink表。

  3. 在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