📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

GET_LINEAGE



返回表、视图、stage 或列的上游或下游血缘。返回结果中的每一行表示血缘路径中的一个源到目标关系。

语法

GET_LINEAGE( '<object_name>', '<object_domain>', '<direction>' [, <distance> ] )

参数

参数描述
object_name起始对象。对于表或视图,使用 [catalog.]database.object;对于 stage,使用 stage_name;对于列,使用 [catalog.]database.object.column。如果名称中省略了 catalog 或 database,则使用当前会话中的值。
object_domain对象类型:TABLE、VIEW、STAGE 或 COLUMN。
directionUPSTREAM 表示向数据源方向追踪;DOWNSTREAM 表示向消费方方向追踪。
distance可选,表示要遍历的最大跳数,取值范围为 1 到 5。默认值为 5。

参数按位置传递。

输出列

列类型描述
source_object_catalogNullable(String)包含源对象的 catalog;对于 stage 为 NULL。
source_object_databaseNullable(String)包含源对象的数据库;对于 stage 为 NULL。
source_object_nameNullable(String)源对象名称。
source_object_domainNullable(String)源对象的域:TABLE、VIEW 或 STAGE。
source_column_nameNullable(String)列血缘中的源列;否则为 NULL。
source_statusStringACTIVE,或者当源列具有脱敏策略时为 MASKED。
target_object_catalogNullable(String)包含目标对象的 catalog;对于 stage 为 NULL。
target_object_databaseNullable(String)包含目标对象的数据库;对于 stage 为 NULL。
target_object_nameNullable(String)目标对象名称。
target_object_domainNullable(String)目标对象的域:TABLE、VIEW 或 STAGE。
target_column_nameNullable(String)列血缘中的目标列;否则为 NULL。
target_statusStringACTIVE,或者当目标列具有脱敏策略时为 MASKED。
distanceInt32与请求对象之间的跳数。直接关系的距离为 1。
processNullable(String)以 JSON 格式表示的元信息,描述创建该关系的操作,例如其查询 ID、查询文本、用户、时间和血缘类型。

示例

本节提供用于追踪血缘的查询示例。

查找上游表

以下查询返回 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 回填血缘。

文档内容是否有帮助?