[發明專利]一種生成FlinkSQL字段血緣的方法及系統在審
| 申請號: | 202111603842.2 | 申請日: | 2021-12-24 |
| 公開(公告)號: | CN114238416A | 公開(公告)日: | 2022-03-25 |
| 發明(設計)人: | 譚巍;陳衛;田浩兵;張奎;翟恩榮 | 申請(專利權)人: | 四川新網銀行股份有限公司 |
| 主分類號: | G06F16/2455 | 分類號: | G06F16/2455;G06F16/28 |
| 代理公司: | 成都行之專利代理事務所(普通合伙) 51220 | 代理人: | 胡曉麗 |
| 地址: | 610000 四川省成都市中國(四川)自由*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 生成 flinksql 字段 血緣 方法 系統 | ||
1.一種生成FlinkSQL字段血緣的方法,其特征在于,包括以下步驟:
S1:定義鏈表數組和過濾選擇字段數組;
S2:解析SQL語句,得到多個列名、多個過濾條件列名和多個表名;
S3:針對每一個列名,將列名和列名與表名的映射關系存入一個鏈表數組,多個列名對應多個鏈表數組;
S4:針對每一個過濾條件列名,將過濾條件列名和過濾條件列名與表名的映射關系存入一個過濾選擇字段數組,多個過濾條件列名對應多個過濾選擇字段數組;
S5:定義全局鏈表數組和全局過濾選擇字段數組;
S6:對每一個鏈表數組的多個鏈表數據求解,得到列名與表名的映射關系,更新所述全局鏈表數組;
S7:對每一個過濾選擇字段數組進行處理,得到過濾條件列名與表名的映射關系,更新所述全局過濾選擇字段數組;
S8:將更新后的全局鏈表數組和全局過濾選擇字段數組進行合并后求差;
S9:對求差后得到數據進行展示,根據展示結果獲得FlinkSQL字段血緣。
2.根據權利要求1所述的一種生成FlinkSQL字段血緣的方法,其特征在于,所述S3具體為:針對每一個列名,執行以下步驟,得到多個鏈表數組:
S3.1:按照“列名%表名”的形式,將列名與表名的映射關系作為key值寫入一個臨時的Map數組;
S3.2:如果列名存在別名,則將別名作為value值寫入所述Map數組;如果列名不存在別名,則將列名作為value值寫入所述Map數組;
S3.3:將存儲有key值和value值的Map數組添加到一個鏈表數組。
3.根據權利要求1所述的一種生成FlinkSQL字段血緣的方法,其特征在于,所述S4具體為:針對每一個過濾條件列名,執行以下步驟,得到多個過濾選擇字段數組:
S 4.1:按照“過濾條件列名%表名”的形式,將過濾條件列名與表名的映射關系作為key值添加到過濾選擇字段數組;
S4.2:如果SQL語句中,過濾條件語句的“=”右邊是SQL子查詢語句,則將過濾選擇字段數組的value值賦值為FlinkTable對象;如果SQL語句中,過濾條件語句的“=”右邊不是SQL子查詢語句,則將過濾選擇字段數組的value值賦值為Null。
4.根據權利要求1所述的一種生成FlinkSQL字段血緣的方法,其特征在于,所述S4之后,執行以下步驟:
針對每一個表名,將表名對應的鏈表數組和過濾選擇字段數組合并為FlinkTable對象,多個表名對應多個FlinkTable對象;
將所述多個FlinkTable對象寫入ListTable數組。
5.根據權利要求4所述的一種生成FlinkSQL字段血緣的方法,其特征在于,所述S5之后,執行以下步驟:
遍歷所述ListTable數組,取出所述多個FlinkTable對象;
判斷每一個FlinkTable對象中的鏈表數組是否為空;若所有FlinkTable對象中的鏈表數組均為空,則不再執行所述S6至所S8;否則,執行所述S6。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川新網銀行股份有限公司,未經四川新網銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111603842.2/1.html,轉載請聲明來源鉆瓜專利網。





