簡體   English   中英

如何從 sql 獲取插入字段?

[英]How to get insert fields from sql?

我正在使用 Flink Sql 來解析 sql 的沿襲。 我使用 flink planner 將 sql 解析為

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

很明顯,source_f1 就是 dest_f1 的來源。

當我通過 Flink planner 獲取 CatalogSinkModifyOperation 時,CatalogSinkModifyOperation 不包含任何插入列信息,這意味着沒有 dest_f1,dest_f2。

如何從我的目標表中獲取插入列的名稱?

可以使用如下代碼獲取目標表的列信息:

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

要么

relNode.getRowType().getFieldNames()

如果想解析flink sql字段的lineage,可以參考開源項目: https://github.com/HamaWhiteGG/flink-sql-lineage

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM