GET_LINEAGE
返回表、视图、stage 或列的上游或下游血缘。返回结果中的每一行表示血缘路径中的一个源到目标关系。
语法
GET_LINEAGE(
'<object_name>',
'<object_domain>',
'<direction>'
[, <distance> ]
)
参数
参数按位置传递。
输出列
示例
本节提供用于追踪血缘的查询示例。
查找上游表
以下查询返回 agg_customer_sales 最多两跳的上游关系:
SELECT
distance,
source_object_catalog,
source_object_database,
source_object_name,
source_object_domain,
target_object_database,
target_object_name
FROM GET_LINEAGE(
'lineage_demo.agg_customer_sales',
'TABLE',
'UPSTREAM',
2
)
ORDER BY distance;
查找下游列
以下查询追踪 fact_orders.amount 被使用的位置:
SELECT
distance,
source_object_name,
source_column_name,
target_object_name,
target_column_name
FROM GET_LINEAGE(
'lineage_demo.fact_orders.amount',
'COLUMN',
'DOWNSTREAM',
5
)
ORDER BY distance, target_object_name, target_column_name;
使用说明
- 如果对象存在但没有已记录的血缘,函数不会返回任何行。
- 结果会根据当前角色可见的对象范围进行过滤。
- Stage 关系仅支持对象级别;暂存文件中的字段不会作为稳定列返回。
- 系统对象和
information_schema对象不会被记录为血缘源。 - 外部 catalog 对象会作为终止端点返回,不会继续遍历。
- 对于在启用血缘之前已存在的视图,可使用
REFRESH LINEAGE回填血缘。