跳到主要内容

GET_LINEAGE

Introduced or updated: v1.2.935
备注

数据血缘是企业版功能。私有化部署需要企业版或试用版许可证;Databend Cloud 已包含此功能。

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

在私有化部署中使用该函数之前,需要先在 databend-query.toml 中启用数据血缘。请参见数据血缘

语法

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

参数

参数描述
object_name查询起点。表或视图使用 [catalog.]database.object,Stage 使用 stage_name,列使用 [catalog.]database.object.column。省略 Catalog 或数据库时,将使用当前会话中的值。
object_domain对象类型:TABLEVIEWSTAGECOLUMN
directionUPSTREAM 表示向数据源方向追溯;DOWNSTREAM 表示向数据使用方方向追溯。
distance可选的最大遍历跳数,取值范围为 15,默认为 5

所有参数均为位置参数。

输出列

类型描述
source_object_catalogNullable(String)源对象所属的 Catalog;Stage 为 NULL
source_object_databaseNullable(String)源对象所属的数据库;Stage 为 NULL
source_object_nameNullable(String)源对象名称。
source_object_domainNullable(String)源对象域:TABLEVIEWSTAGE
source_column_nameNullable(String)列级血缘中的源列;非列级血缘为 NULL
source_statusStringACTIVE;如果源列应用了 Masking Policy,则为 MASKED
target_object_catalogNullable(String)目标对象所属的 Catalog;Stage 为 NULL
target_object_databaseNullable(String)目标对象所属的数据库;Stage 为 NULL
target_object_nameNullable(String)目标对象名称。
target_object_domainNullable(String)目标对象域:TABLEVIEWSTAGE
target_column_nameNullable(String)列级血缘中的目标列;非列级血缘为 NULL
target_statusStringACTIVE;如果目标列应用了 Masking Policy,则为 MASKED
distanceInt32相对于查询起点的跳数。直接关系的距离为 1
processNullable(String)创建该关系的操作元数据,采用 JSON 字符串格式,例如 Query 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 仅支持对象级关系;Stage 文件字段不会作为稳定列返回。
  • systeminformation_schema 中的对象不会被记录为血缘源。
  • 外部 Catalog 对象会作为终止端点返回,不会继续向外部 Catalog 内部遍历。
  • 对于启用数据血缘之前已存在的视图,请使用 REFRESH LINEAGE 回填血缘关系。
欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验