数据沿袭是一种直观的地图,可跟踪数据的整个生命周期。它会显示数据来自何处(来源)、流向何处(目标位置),以及在此过程中发生的所有更改或转换。
对于在 Knowledge Catalog(原 Dataplex Universal Catalog)、BigQuery(包括为 Iceberg REST Catalog 创建的外部表)和 Vertex AI 等产品中创建的资产,您可以在Google Cloud 控制台中直接查看此完整的数据流向图。由于工作流通常跨多个区域,因此 Knowledge Catalog 支持多区域沿袭,可提供统一的视图,让您了解数据在整个全球 Google Cloud 生态系统中的历程。高级用户还可以使用 Data Lineage API 检索此信息。
为什么需要数据沿袭
现代公司会不断迁移和更改大量数据。例如,将原始客户购买数据转换为报告、信息中心和机器学习模型。这种复杂性会给您的团队带来严峻的挑战:
信任和验证。数据用户往往难以确认他们看到的报告和数字是否准确,以及是否来自可信来源。
问题排查。如果最终报告中出现错误,数据团队可能很难且很耗时地通过每个步骤追溯到问题的根本原因。
变更管理。在更改或删除某项数据(例如表中的列)之前,团队需要了解依赖该数据的每个下游报告或模型,以避免破坏关键系统。
合规。领导者需要了解敏感数据(例如客户或财务信息)在整个组织中的使用情况,以满足监管要求。
数据沿袭通过提供清晰、直观且有据可查的数据历程来解决这些问题。这样,您就可以了解数据源、跟踪错误、评估变更的影响并保持合规性。
数据沿袭的运作方式
数据沿袭工作流包括以下步骤:
数据源和注入:来自数据源的沿袭信息会启动整个流程。
Google Cloud 服务:启用 Data Lineage API 后,受支持的服务(例如 BigQuery 和 Dataflow)会在每次移动或转换数据时自动报告沿袭事件。
自定义来源:对于Google Cloud 集成功能未自动支持的任何系统,您都可以使用 Data Lineage API 手动记录沿袭信息。我们建议您导入按照 OpenLineage 标准设置格式的事件。
沿袭平台:此中央平台可注入和存储所有沿袭数据,以及对其进行建模。
Data Lineage API:此 API 充当所有传入沿袭信息的单个入口点。它使用由三个核心概念(流程、运行和事件)组成的层次化数据模型。
处理和存储:平台会处理传入的数据,并将其存储在可靠的、经过查询优化的数据库中。
用户体验:您可以通过两种主要方式与存储的沿袭信息进行互动:
可视化探索:在 Google Cloud 控制台中,前端服务会提取沿袭数据,并将其呈现为互动式图表或列表。Knowledge Catalog、BigQuery、Lakehouse(适用于 Iceberg REST Catalog 表)、物理层 (Cloud Storage) 和 Vertex AI(适用于模型、数据集 [通过流水线]、特征存储区视图和特征组)均支持此功能。此图表非常适合直观地探索数据的变化历程。
程序化访问:使用 API 客户端,您可以直接与 Data Lineage API 通信,以自动执行沿袭管理。这样一来,您就可以从自定义来源写入沿袭信息。此外,您还可以读取和查询存储的沿袭数据,以便在其他应用中使用或构建自定义报告。
我应该使用哪种方法来跟踪数据沿袭?
如需执行即时单级查找,请使用 SearchLinks 方法。如需构建完整的谱系图或执行深度影响分析(最多 100 级),请使用 SearchLineageStreaming 方法。
根据您的应用场景,选择最合适的方法:
| 功能 | SearchLinks |
SearchLineageStreaming |
|---|---|---|
| 深度 | 1 级(直接邻居) | 最多 100 个级别 |
| 执行 | 同步 | 实时流式传输 |
| 用例 | 直接来源或目标的简单查找 | 构建完整的数据沿袭图或执行影响分析 |
确定方向
- 上游(来源):
- 在
SearchLinks中,将target字段设置为相应资产的 FQN。 - 在
SearchLineageStreaming中,将direction设置为UPSTREAM。
- 在
- 下游(目的地):
- 在
SearchLinks中,将source字段设置为相应资产的 FQN。 - 在
SearchLineageStreaming中,将direction设置为DOWNSTREAM。
- 在
数据沿袭信息模型
沿袭是指将数据从来源转换为目标的记录。Data Lineage API 会收集此信息,并将其整理成使用流程、运行和事件概念的分层数据模型。
| 概念 | 说明 |
|---|---|
| 流程 | 数据转换定义。 |
| 运行 | 进程的执行。 |
| 活动 | 跑步期间的数据移动记录。 |
什么是沿袭流程?
进程是指针对特定系统的数据转换操作的定义。对于 BigQuery 沿袭,进程是指支持的作业类型的作业。同一 SQL 查询的所有执行都与单个进程相关联,这让您可以跟踪使用特定转换逻辑的每个实例。
例如,以下 SQL 查询就是一个进程。此查询通过统计两个源表中每个供应商的总行程数来创建表。
CREATE TABLE `dataplex-docs.data_lineage_demo.total_green_trips_22_21`
AS
SELECT
vendor_id,
COUNT(*) AS number_of_trips
FROM
(
SELECT vendor_id
FROM `dataplex-docs.data_lineage_demo.nyc_green_trips_2022`
UNION ALL
SELECT vendor_id
FROM `dataplex-docs.data_lineage_demo.nyc_green_trips_2021`
)
GROUP BY
vendor_id;
进程的 REST 资源名称格式为 projects/PROJECT_NUMBER/locations/LOCATION/processes/PROCESS_ID。
例如:projects/123456789123/locations/us/processes/sh-0548bbf4ff3c8072a6c7372ba1acafb6。
如需详细了解 process 资源,请参阅进程资源参考文档。
什么是沿袭运行?
运行是指进程的单次执行。进程可以多次运行。
每次运行都是一项独特的操作,具有 startTime、endTime 和最终状态(例如 COMPLETED、FAILED 或 ABORTED)。
例如,在上午 9:00 执行流程部分中的 SQL 查询会创建一个特定的运行。在上午 10:00 再次执行同一查询会创建新的不同运行。两次运行都与同一父进程相关联。
运行的 REST 资源名称格式表明它是进程的子级:projects/PROJECT_NUMBER/locations/LOCATION/processes/PROCESS_ID/runs/RUN_ID。
例如:projects/123456789123/locations/us/processes/sh-0548bbf4ff3c8072a6c7372ba1acafb6/runs/83dd03a51cd2ac80f465c9e267a950b1。
如需详细了解 run 资源,请参阅运行资源参考文档。
什么是沿袭事件?
事件表示数据转换将数据在来源实体和目标实体之间移动的时间点。事件是特定运行中连接源表和目标表的特定数据移动的细化记录。一个事件也可以有多个来源和目标。
例如,如果您的运行执行了处理部分中讨论的 SQL 查询,则沿袭事件会记录 nyc_green_trips_2021 和 nyc_green_trips_2022 源表用于创建 total_green_trips_22_21 目标表。
沿袭事件包含一个链接列表,用于定义来源和目标。事件用于创建沿袭图。 虽然 Google Cloud 控制台会显示这些沿袭图,但不会直接显示各个事件。您可以使用 Data Lineage API 创建、读取和删除事件,但无法更新事件。
事件中的每个链接都定义了从源实体到目标实体的单个数据传输路径。实体是对数据资产(例如 BigQuery 表)的引用,由其完全限定名称 (FQN) 标识。单个事件可以包含多个链接,这在表联接等操作中很常见,因为多个来源会贡献给一个目标。
如需详细了解事件如何支持列级沿袭数据,请参阅列级沿袭数据。
数据沿袭功能支持哪些数据源?
您可以通过以下方式在 Knowledge Catalog 中填充沿袭信息:
- 自动从集成的 Google Cloud 服务中获取
- 手动使用 Data Lineage API 处理自定义来源
- 通过从 OpenLineage 导入事件
BigQuery
在 BigQuery 项目中启用数据沿袭后,Knowledge Catalog 会自动记录以下各项的沿袭信息:
因以下 BigQuery 作业而创建的新表:
在 GoogleSQL 中使用以下数据操纵语言 (DML) 语句时,现有的表:
SELECT,与列出的任何表类型相关:INSERT SELECTMERGEUPDATEDELETE
BigQuery 复制、查询和加载作业以进程的形式表示。
如需查看进程详细信息,请在沿袭图上点击进程详细信息图标
。
每个进程都在最新 BigQuery 作业的属性列表中包含 BigQuery job_id。
其他服务
数据沿袭支持与以下Google Cloud 服务集成:
-
在项目中启用 Data Lineage API 后,无法配置将沿袭跟踪仅限于 Cloud Data Fusion。
-
您可以使用 Dataflow 作业捕获沿袭事件,并将其发布到 Data Lineage API。
适用于 Iceberg REST Catalog 表的 Lakehouse
Looker (Google Cloud Core)(预览版)
支持使用数据沿袭功能直观呈现来自 BigQuery 来源的 Looker (Google Cloud Core)元数据。 必须在 Looker (Google Cloud Core) 资源级层和数据沿袭服务级层启用数据沿袭。
Managed Service for Apache Airflow
Managed Airflow 使用环境级数据沿袭集成控制。对于所有符合要求的新 Managed Airflow 环境,系统会自动启用数据沿袭功能。对于现有环境,请使用环境设置来启用或停用数据沿袭集成。您可以为 Managed Airflow 配置数据沿袭提取,以启用或停用自动数据沿袭提取。
Managed Service for Apache Spark:Apache Hive 集群
您可以使用 Managed Service for Apache Spark Hive 作业捕获沿袭事件,并将其发布到 Data Lineage API。您可以为 Managed Service for Apache Spark 配置数据沿袭提取,以启用或停用自动数据沿袭提取。
Managed Service for Apache Spark:Apache Spark 集群
您可以使用 Managed Service for Apache Spark Spark 作业捕获沿袭事件,并将其发布到 Data Lineage API。您可以为 Managed Service for Apache Spark 配置数据沿袭提取,以启用或停用自动数据沿袭提取。
Managed Service for Apache Spark:无服务器部署
您可以使用 Managed Service for Apache Spark 无服务器作业捕获沿袭事件,并将其发布到 Data Lineage API。您可以为 Managed Service for Apache Spark 配置数据沿袭提取,以启用或停用自动数据沿袭提取。
-
数据沿袭会跟踪特征库视图和特征组的元数据。
-
系统会自动为 Vertex AI Pipelines 流水线启用数据沿袭功能,以跟踪输入制品和执行参数(例如模型、数据集和组件),以及下游派生资产。
自定义数据源的数据沿袭
您可以使用 Data Lineage API 为集成式系统不支持的任何数据源(例如外部数据库或本地流水线)手动记录沿袭信息。如果您使用的 fullyQualifiedName 与现有 Knowledge Catalog 条目的完全限定名称相匹配,Knowledge Catalog 即可为手动记录的沿袭创建沿袭图。如果您想记录自定义数据源的沿袭,必须先创建自定义条目。
自定义数据源的每个进程都可以在属性列表中包含一个 sql 键。此键的值用于在数据沿袭图的详细信息面板中呈现代码突出显示。系统会按原样显示 SQL 语句。您有责任过滤掉敏感信息。
键名 sql 区分大小写。
例如,具有自定义 sql 属性的进程资源载荷:
{
"displayName": "custom-sql-query",
"attributes": {
"sql": "SELECT user_id, SUM(amount) FROM `project.dataset.purchases` GROUP BY user_id"
}
}
如需了解详情,请参阅跟踪外部系统沿袭信息。
OpenLineage
如果您已在使用 OpenLineage 从其他数据源收集沿袭信息,则可以将 OpenLineage 事件导入 Knowledge Catalog,并在 Google Cloud 控制台中查看这些事件。如需了解详情,请参阅与 OpenLineage 集成。
自动数据沿袭跟踪
启用 Data Lineage API 后,支持数据沿袭的 Google Cloud 系统会开始报告其数据移动情况。每个集成式系统都可以提交不同数据源范围的沿袭信息。
控制沿袭注入
控制谱系数据生成有助于您管理费用和治理政策。例如,您可以针对不需要沿袭跟踪的开发项目或大容量工作负载停用沿袭收集。
如需了解如何配置和控制谱系提取,请参阅控制服务的谱系提取。
多区域数据沿袭
数据沿袭是一项固有的区域化服务。沿袭元数据(包括链接、流程和事件)会安全地记录在发生基础数据转换或资产修改的特定地理位置内,并与该位置隔离。
随着现代企业数据架构的规模不断扩大,流水线工作流经常会跨越项目和区域边界。例如,在 us-central1 中运行的 BigQuery 转换流水线可能会读取 us-east1 中的源表,并将汇总的指标输出到位于 europe-west1 中的 Cloud Storage 存储桶。
如需全面了解数据在这些独立地理空间中的整个生命周期,请使用多区域谱系搜索方法。
如需了解详情,请参阅多区域沿袭搜索简介。
数据沿袭注意事项和限制
在规划数据治理策略时,请谨记以下沿袭集成、合规性参数和服务限制。
商品级沿袭控制
启用 Data Lineage API 后,支持的系统会根据其商品级控制报告沿袭。如需查看受支持的系统及其控制变量的完整列表,请参阅支持的数据沿袭系统。
数据沿袭合规性
- 数据沿袭记录有关数据移动的元数据,但不捕获数据本身。如需详细了解元数据中包含哪些字段,请参阅数据沿袭信息模型和 Data Lineage API 参考文档。
- 作为 Knowledge Catalog 的一部分,数据沿袭会提供 VPC-SC 支持。
- Knowledge Catalog 不支持使用客户管理的加密密钥 (CMEK) 来保护收集的沿袭元数据。
数据沿袭限制
数据沿袭具有以下限制:
系统中会保留所有沿袭信息,但仅保留 30 天。
删除相关数据源后,沿袭信息会继续保留。例如,如果您删除某个 BigQuery 表,您仍然可以通过 API 和控制台查看其沿袭信息,最长可达 30 天。
数据沿袭不会自动记录 BigQuery 例程的直接沿袭信息。如果例程在查询中使用,则数据沿袭会记录例程读取的表与查询写入的表之间的沿袭,作为表之间的依赖关系。
在沿袭图中选择节点时,如果出现以下情况,节点详情侧边栏将为空:
- 相应资源位于其他组织中。
- 用户不是托管资源的组织的成员。
列级沿袭限制
列级沿袭还存在以下限制:
不会为 BigQuery 加载作业或例程收集列级沿袭信息。
不会为外部表收集上游列级沿袭信息。
如果作业创建的列级链接超过 1,500 个,系统将不会收集列级沿袭数据。在这些情况下,系统只会收集表级沿袭信息。
列级沿袭支持仅限于 BigQuery 表中的顶级列。不支持复杂类型(例如 STRUCT 或 JSON)中的嵌套字段。
使用 field 参数的搜索功能仅适用于明确定义了列与列之间关系的链接。它不会返回仅在表级定义的链接或遍历这些链接。不支持在表级链接和列级链接之间进行搜索(例如,查找与表级链接相关的所有列,反之亦然)。API 仅返回来源和目标都指定了字段的链接。
对分区表的支持有限,因为沿袭图表中无法识别
_PARTITIONDATE和_PARTITIONTIME等分区列。控制台限制:
- 沿袭图遍历的深度限制为 20 级,每个方向的链接数限制为 10,000。
价格
Knowledge Catalog 使用高级处理 SKU(按数据计算单元 [DCU] 计量)来收取数据沿袭费用。如需了解费率详情,请参阅 Knowledge Catalog 价格或使用 Google Cloud 价格计算器。
费用因素和结算影响
在规划数据沿袭实现时,请注意以下费用因素:
- 按项目启用。Data Lineage API 按项目运行。在数据密集型项目工作流程中启用此功能之前,请先查看对账单的影响。
- 元数据存储和搜索。在 30 天保留期限内存储的谱系元数据(流程、运行、事件和链接)将按元数据存储 SKU 收费。在 Google Cloud 控制台中查看谱系不会产生 BigQuery 查询或扫描费用。
- BigQuery Omni。沿袭处理分布在特定区域,费用取决于执行处理的区域。
- BigQuery 多区域数据集。如果您使用多区域数据集(例如
US多区域),BigQuery 会跨物理数据中心区域动态路由查询。数据沿袭与查询执行同时运行,运行位置是作业执行的实际位置(例如us-east1)。这会导致您的 Cloud Billing 账单上出现区域性沿袭 DCU SKU 条目。 - 自定义来源类型。如果您使用
CUSTOM以外的值调用 Data Lineage APIOriginsourceType,则会产生额外费用。
监控和控制费用
- Cloud Monitoring 指标限制。数据沿袭 DCU 消耗在无服务器计算上运行,不会向 Cloud Monitoring 中的
dataplex.googleapis.com/*实时发出时序指标。 - 在 Cloud Billing 中过滤费用并添加费用属性。如需在 Knowledge Catalog 高级处理 SKU 中将数据沿袭费用与其他费用区分开并进行归因,请在 Cloud Billing 报告或 Cloud Billing 导出到 BigQuery 的数据中使用标签
goog-dataplex-workload-type并将其值设为LINEAGE。如需查看详细的查询示例,请参阅通过 Cloud Billing 导出功能监控和归因知识目录 DCU 费用。 - 在开发项目中停用。为避免不必要的处理费用,请仅在需要跟踪沿袭的项目中启用 Data Lineage API。
- 停止收费。Data Lineage API 会单独产生费用,与 Dataplex API 的费用分开计算。停用 Dataplex API 不会停用 Data Lineage API,也不会停止产生相关费用。如需停止产生数据沿袭费用,您必须通过停用 Data Lineage API 来关闭数据沿袭。
后续步骤
探索 Data Lineage API。
如需了解管理信息,请参阅数据沿袭注意事项和限制和数据沿袭审核日志记录。