流式计算 Flink 版支持通过可视化向导快速生成 Flink SQL。您可以选择数据来源和数据目的地、配置字段映射与字段处理规则,然后创建新任务或将 SQL 插入已有任务。
快速生成 Flink SQL 适用于表到表同步和常见字段处理场景。系统读取已注册的 Catalog 表结构,生成字段映射和 SQL,减少手动编写表名、字段列表、建表语句和连接器参数的工作量。
典型场景包括:
连接器 | 数据来源 | 数据目的地 | 新建目的表 |
|---|---|---|---|
Kafka(JSON) | 支持 | 支持 | 不支持 |
MySQL | 支持 | 支持 | 不支持 |
Paimon | 支持 | 支持 | 支持 |
Iceberg | 支持 | 支持 | 支持 |
LAS-Hive | 支持 | 支持 | 支持 |
ByteHouse CDW | 不支持 | 支持 | 不支持 |
Doris | 不支持 | 支持 | 不支持 |
StarRocks | 不支持 | 支持 | 不支持 |
最终支持范围取决于实例中已接入的数据目录和连接器版本。您可以单击向导右上角的Catalog 能力支持,在连接器支持页签中查看连接器能否作为数据来源、数据目的地或按源 schema 新建表。
处理能力 | 可视化映射模式 | 说明 |
|---|---|---|
类型转换 | 支持 | 使用 CAST 将源字段转换为目的字段所需的类型。 |
单字段函数 | 支持 | 例如 TRIM、UPPER、LOWER 和 ABS,可直接应用于所选字段。 |
带额外参数的函数 | 需补充 SQL | 例如 CONCAT、SUBSTRING、REPLACE、DATE_FORMAT、COALESCE 和 CASE WHEN,需在直接编辑 SQL 模式下补全参数或表达式。 |
WHERE 过滤 | 支持 | 可视化映射模式通过独立输入框配置;直接编辑 SQL 模式需在 SQL 编辑框中编写 WHERE 子句。 |
聚合、窗口和关联查询 | 不支持 | 如需 GROUP BY、聚合函数、窗口计算或 JOIN,请在创建任务后继续编辑 SQL。 |
可用函数以向导右上角的Catalog 能力支持弹窗中数据处理函数页签的实际展示为准。
说明
Hint 参数以 OPTIONS Hint 的形式附加到 INSERT 语句中的表引用处,仅作用于当前 SQL,常用于设置消费起点、消费组或扫描并行度等运行时选项。
数据目的地支持以下两种配置方式:
配置方式 | 说明 |
|---|---|
选择已有表 | 依次选择 Catalog、Database 和 Table。目的字段及类型由已有表结构决定,系统直接引用该表。 |
按源 Schema 新建表 | 输入新表名称,并选择目标 Catalog 和 Database。系统以来源表 Schema 为基础生成目的字段和 CREATE TABLE 语句。当前仅 LAS-Hive、Paimon 和 Iceberg 支持该方式,详情参见支持的数据来源和数据目的地。 |
说明
数据目的地可以配置 Hint 参数。新建目的表时,还可以配置 WITH 参数,用于设置分桶、存储格式或合并引擎等建表属性。
选择已有目的表后,系统以目的表结构为准生成初始映射:
说明
选择新建目的表时,系统根据来源字段生成初始目的字段。
您可以在字段映射区域执行以下操作:
调整后,请通过字段映射概览和 SQL 预览确认最终字段、类型、表达式与顺序。
右侧 SQL 预览会随配置实时更新。您可以展开或收起预览区域;该操作仅改变页面布局,不影响当前配置和 SQL 生成结果。
提交前,依次完成以下检查:
在字段映射区域勾选一个或多个字段后,可以使用字段映射区域右上角的操作按钮批量处理所选字段。操作结果会实时反映在 SQL 预览中。
注意
完成批量处理后,请检查字段映射概览和 SQL 预览,并执行验证。语法验证通过不代表所有实际数据均可成功转换;上线前请使用具有代表性的数据验证 CAST、日期转换和条件表达式。
建议优先使用可视化映射。仅当可视化控件无法表达所需逻辑时,再切换到直接编辑 SQL。
编辑模式 | 适用场景 |
|---|---|
可视化映射 | 字段启停、目的字段改名、类型转换、单字段函数和 WHERE 过滤等常规同步配置。 |
直接编辑 SQL | 带额外参数的函数、多字段组合计算、多层函数嵌套、复杂条件表达式,以及当前可视化控件未提供的 Flink SQL 标量函数或已注册的自定义函数。 |
注意
从直接编辑 SQL 切回可视化映射可能丢失手工修改的内容,两种模式之间不保证无损往返。切换前请复制并留存当前 SQL;完成编辑后,请在 SQL预览中重新执行验证。
单击字段映射区域搜索框右侧的操作记录,可以查看单字段调整和批量调整。入口上的数字表示当前记录的操作数量。
注意
撤销操作不支持恢复。完成撤销后,请重新检查字段映射概览和 SQL 预览。
为什么部分连接器不能新建目的表?
当前仅 LAS-Hive、Paimon 和 Iceberg 支持新建目的表。实际能力以 Catalog 能力支持中的展示为准。
为什么选择已有目的表后,部分来源字段不见了?
系统会以目的表结构生成字段映射。目的表中不存在的来源字段不会写入当前 SQL,但不会删除来源表中的实际字段。详情参见附:SQL 生成规则
为什么 CONCAT、SUBSTRING 等函数无法填写完整参数?
可视化映射模式不能配置这类函数所需的额外参数。请切换到 直接编辑 SQL模式补全表达式。右侧 SQL 预览为只读,不能直接修改。
为什么填写的 WHERE 条件没有生效?
独立的 WHERE 输入框仅在可视化映射模式下生效。使用直接编辑 SQL 模式时,需要在 SQL 编辑框中手动编写 WHERE 子句。
为什么切回可视化映射后,手工修改的 SQL 消失了?
两种编辑模式不保证无损切换。从直接编辑 SQL 切回可视化映射前,请先复制并留存当前 SQL。
修改表结构后,为什么向导仍显示旧字段?
向导读取的是数据目录中已同步的表结构。修改表结构后,需要先在目标数据目录中手动执行同步,再返回向导重新选择 Catalog、Database 和 Table。
规则 | 说明 |
|---|---|
表名 | 使用 |
已有目的表 | 以目的表结构为准生成字段列表。目的表中不存在的来源字段不写入 SQL;已映射字段类型不一致时生成 CAST 表达式。 |
新建目的表 | 根据启用的目的字段和字段类型生成 CREATE TABLE 语句。 |
目的字段 | INSERT INTO 显式列出目的字段,字段顺序与 SELECT 表达式保持一致。 |
字段处理 | 不启用的字段不写入目的字段列表和 SELECT;类型转换和函数处理写入 SELECT 表达式。 |
WITH 参数 | 仅用于新建目的表,写入 CREATE TABLE ... WITH (...)。 |
Hint 参数 | 以 /*+ OPTIONS(...) */ 形式附加到 INSERT 语句中的来源表或目的表引用处。 |
WHERE 条件 | 写入 SELECT 查询的 WHERE 子句。直接编辑 SQL 模式下需在 SQL 编辑框中手动维护。 |