如何在DataHub中获取Snowflake SQL带转换逻辑的列血缘关系
如何在DataHub中获取指定格式的列血缘关系
提供的Snowflake SQL语句
INSERT INTO EMPLOYEE (NAME, ADDRESS, ZIP) SELECT F_NAME+L_NAME AS NAME, SUBSTRING(FULL_ADDRESS,1,100), ZIP FROM SOURCE_DATA;
目标列血缘格式
- F_NAME+L_NAME ----> NAME
- SUBSTRING(FULL_ADDRESS,1,100) ----> ADDRESS
- ZIP ----> ZIP
操作步骤
1. 确认Snowflake数据源的血缘采集已完成
首先要确保你已经通过DataHub的Snowflake采集连接器完成了数据源配置,且开启了列级血缘采集功能。采集范围必须包含源表SOURCE_DATA和目标表EMPLOYEE,这样DataHub才能解析并存储两者的字段映射关系。
2. 通过DataHub UI查看列级血缘
- 登录DataHub控制台,搜索目标表
EMPLOYEE并进入其详情页面。 - 切换至血缘标签页,选择列级血缘视图。
- 在该视图中,可直接查看源表字段到目标表字段的映射,包括SQL中定义的函数转换逻辑,对应你需要的格式关系。
3. 通过API自定义导出格式
如果需要将血缘关系导出为指定的文本格式,可使用DataHub的GraphQL API查询:
query GetColumnLineage { dataset(urn: "urn:li:dataset:(urn:li:dataPlatform:snowflake,你的数据库.你的Schema.EMPLOYEE,PROD)") { columnLineage { downstreamColumns { column { name } upstreamColumns { column { name dataset { name } } transformation } } } } }
将返回结果中的transformation(转换表达式)与上下游字段名对应,整理成你需要的格式即可。
4. 验证血缘准确性
对比UI或API返回的转换逻辑与原SQL语句中的计算规则,确保血缘关系完全匹配。
内容的提问来源于stack exchange,提问作者Anirban Goswami
相关产品推荐
相关产品推荐

