Flink 如何从sql中获取插入字段?

h5qlskok  于 2023-01-03  发布在  Apache
关注(0)|答案(1)|浏览(199)

我使用Flink Sql来解析sql的谱系。

insert into target_table(dest_f1, dest_f2) select source_f1, source_f2 from source_table

显然,source_f1是dest_f1的源。
当我通过Flink计划器获得CatalogSinkModifyOperation时,CatalogSinkModifyOperation不包含任何插入列信息,这意味着没有dest_f1、dest_f2。
如何从target_table中获取插入列的名称?

jv4diomz

jv4diomz1#

可以使用以下代码获取目标表的列信息:

List<String> targetColumnList = tableEnv.from(sinkTable)
        .getResolvedSchema()
        .getColumnNames();

relNode.getRowType().getFieldNames()

如果要解析flink sql字段的世系,可以参考开源项目:https://github.com/HamaWhiteGG/flink-sql-lineage

相关问题