数据沿袭简介

借助 Knowledge Catalog(以前称为 Dataplex Universal Catalog)中的数据沿袭功能,您可以跟踪数据的来源、转换方式以及在 BigQuery 和 Vertex AI 等系统中的移动情况。这些沿袭记录可帮助您验证可信来源、追溯流水线错误的根本原因、评估更改的下游影响,并支持合规性。您可以在 Google Cloud 控制台中探索交互式图表、搜索多区域沿袭,或使用 Data Lineage API 以编程方式记录和查询元数据。

为什么需要数据沿袭

现代公司会不断移动和更改大量数据。例如,将原始客户购买数据转换为报告、信息中心和机器学习模型。这种复杂性给您的团队带来了重大挑战:

  • 信任和验证。数据用户通常很难确认他们看到的报告和数字是否准确,以及是否来自可信来源。

  • 问题排查。当最终报告中出现错误时,数据团队可能很难追溯问题,而且需要耗费大量时间才能找到根本原因。

  • 变更管理。在更改或删除某项数据(例如表中的列)之前,团队需要了解依赖该数据的每个下游报告或模型,以避免破坏关键系统。

  • 合规。领导者需要了解敏感数据(例如客户或财务信息)在整个组织中的使用情况,以满足监管要求。

数据沿袭通过记录数据的来源、去向(目标位置)以及在此过程中发生的更改或转换,来应对这些挑战。通过此记录,您可以了解数据源、跟踪错误、评估更改的影响并保持合规性。

数据沿袭的运作方式

数据沿袭工作流包括以下步骤:

  1. 数据源和注入:来自数据源的沿袭信息会启动整个流程。

    • Google Cloud 服务:启用 Data Lineage API 后,每当数据移动或转换时,BigQuery 和 Dataflow 等受支持的服务都会自动报告沿袭事件。

    • 自定义来源:对于Google Cloud 集成未自动支持的任何系统,您可以使用 Data Lineage API 手动记录沿袭信息。我们建议您导入根据 OpenLineage 标准设置格式的事件。

  2. 沿袭平台:此中央平台可注入和存储所有沿袭数据,以及对其进行建模。

    • Data Lineage API:此 API 是所有传入沿袭信息的单一入口点。它使用分层数据模型,包含三个核心概念:流程、运行和事件。

    • 处理和存储:平台处理传入的数据,并将其存储在可靠、经过查询优化的数据库中。

  3. 用户体验:您可以通过两种主要方式与存储的沿袭信息进行互动:

    • 可视化探索:在 Google Cloud 控制台中,前端服务会提取沿袭数据并将其呈现为交互式图表或列表。Knowledge Catalog、BigQuery(包括为由 Apache Iceberg REST 目录端点管理的 Apache Iceberg 表创建的外部表)、Lakehouse(适用于由 Apache Iceberg REST 目录端点管理的 Apache Iceberg 表)、物理层 (Cloud Storage) 和 Vertex AI(适用于模型、数据集、通过流水线;以及 Feature Store 视图和特征组)均支持此功能。这非常适合直观地探索数据的流转过程。

    • 程序化访问:使用 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 复制、查询和加载作业以进程的形式表示。

如需查看进程详细信息,请在沿袭图上点击进程详细信息图标 处理详情。。

每个进程都在最新 BigQuery 作业的属性列表中包含 BigQuery job_id。

其他服务

数据沿袭支持与以下Google Cloud 服务集成:

  • Cloud Data Fusion

    在项目中启用 Data Lineage API 后,您无法将沿袭跟踪仅限于 Cloud Data Fusion。

  • Dataflow

    您可以使用 Dataflow 作业捕获沿袭事件并将其发布到 Data Lineage API。

  • Dataform

    Dataform 会报告在 Dataform 工作流和 BigQuery 流水线中运行的操作的表级沿袭。

  • Lakehouse for Iceberg REST 目录表

  • 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 Feature Store

    数据沿袭会跟踪 Feature Store 视图和特征组的元数据。

  • Vertex AI Pipelines

    系统会自动为 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 系统会开始报告其数据移动情况。每个集成式系统都可以提交不同数据源范围的沿袭信息。

控制沿袭注入

控制沿袭数据生成有助于您管理费用和治理政策。例如,您可以为不需要沿袭跟踪的开发项目或大批量工作负载停用沿袭收集。停用沿袭提取会停止产生新的处理费用,但之前提取的元数据会继续产生存储费用,直到 30 天的保留期结束或您将其删除(请参阅本文档的价格部分)。

如需了解详情,请参阅数据沿袭注入控制简介和为服务配置数据沿袭注入。

多区域数据沿袭

数据沿袭本质上是一项区域化服务。沿袭元数据(包括链接、进程和事件)会安全地记录并隔离在发生底层数据转换或资产修改的特定地理位置。

随着现代企业数据架构的扩展,流水线工作流经常会跨越项目和区域边界。例如,在 us-central1 中运行的 BigQuery 转换流水线可能会读取 us-east1 中的源表,并将汇总指标输出到位于 europe-west1 的 Cloud Storage 存储桶中。

如需建立跨Google Cloud 区域和项目的统一、端到端的数据生命周期视图,请使用多区域沿袭搜索方法。

如需了解详情,请参阅多区域沿袭搜索简介。

数据沿袭注意事项和限制

在规划数据治理策略时,请牢记以下沿袭集成、合规性参数和服务限制。

商品级沿袭控制

启用 Data Lineage API 后,受支持的系统会根据其商品级控制报告沿袭。如需查看受支持系统及其控件的完整列表,请参阅支持数据沿袭的系统。

数据沿袭合规性

  • 数据沿袭会记录有关数据移动的元数据,但不会捕获数据本身。如需详细了解元数据中包含哪些字段,请参阅数据沿袭信息模型和 Data Lineage API 参考文档。
  • 作为 Knowledge Catalog 的一部分,数据沿袭会提供 VPC-SC 支持。
  • Knowledge Catalog 不支持使用客户管理的加密密钥 (CMEK) 来保护收集的沿袭元数据。

数据沿袭限制

数据沿袭具有以下限制:

  • 系统中会保留所有沿袭信息,但仅保留 30 天。

  • 删除相关数据源后,沿袭信息会继续保留。例如,如果您删除了 BigQuery 表,则仍可通过 API 和控制台查看其沿袭信息,最长可达 30 天。

  • 数据沿袭不会自动记录 BigQuery 例程的直接沿袭信息。如果在查询中使用例程,则数据沿袭会记录例程读取的表(作为查询写入的表的依赖项)之间的沿袭。

在沿袭图中选择节点时,如果出现以下情况,节点详情侧边栏将为空:

  • 资源位于其他组织中。
  • 用户不是托管资源的组织的成员。

列级沿袭限制

列级沿袭具有以下额外限制:

  • 使用 Data Lineage API 提交的自定义 OpenLineage 事件不支持列级沿袭。

  • 系统不会为 BigQuery 加载作业或例程收集列级沿袭。这包括多语句脚本和 Dataform 增量表,它们会编译为临时存储过程。

  • 对于源表完全位于临时数据集中的查询,系统不会收集列级沿袭。

  • 系统不会为外部表收集上游列级沿袭。

  • 如果作业创建了超过 1,500 个列级链接,则系统不会收集列级沿袭。在这些情况下,系统只会收集表级沿袭。

  • 使用 ALTER TABLE RENAME 操作(常用于表交换 ETL 模式)重命名表时,列级沿袭不会转移或保留。

  • 列级沿袭支持仅限于 BigQuery 表中的顶级列。不支持复杂类型(例如 STRUCT 或 JSON)中的嵌套字段。

  • 具有字段参数的搜索功能仅对明确定义列与列关系的链接起作用。它不会返回仅在表级别定义的结果或遍历链接。不支持在表级链接和列级链接之间进行搜索(例如,查找与表级链接相关的所有列,反之亦然)。API 仅返回来源和目标都指定了字段的链接。

  • 对分区表的支持有限,因为血缘图中无法识别 _PARTITIONDATE 和 _PARTITIONTIME 等分区列。

  • 控制台限制:

    • 沿袭图遍历的深度限制为 20 级,每个方向的链接数限制为 10,000。

价格

Knowledge Catalog 会根据高级处理 SKU 和元数据存储 SKU 对数据沿袭进行计费。高级处理 SKU 会按数据计算单元 (DCU) 小时数对沿袭事件的自动解析进行结算。元数据存储 SKU 会按每月 GiB 数对 30 天窗口期内保留的沿袭元数据(进程、运行、事件和链接)进行结算。如需了解费率详情,请参阅 Knowledge Catalog 价格或使用 Google Cloud 价格计算器。

费用因素和结算影响

在规划数据沿袭实现时,请注意以下费用因素:

  • 按项目启用。Data Lineage API 按项目运行。在数据密集型项目工作流中启用该功能之前,请先查看对结算的影响。
  • 元数据存储和搜索。在 30 天保留期内存储的沿袭元数据(进程、运行、事件和链接)按元数据存储 SKU 计费。当元数据在 30 天保留期结束时过期或您将其删除时,存储费用会停止。在 Google Cloud 控制台中查看沿袭不会产生 BigQuery 查询或扫描费用。
  • BigQuery Omni。沿袭处理会分布到特定区域,费用取决于执行处理的区域。
  • BigQuery 多区域数据集。如果您使用多区域数据集(例如 US 多区域),BigQuery 会在物理数据中心可用区之间动态路由查询。数据沿袭在执行作业的物理位置(例如 us-east1)与查询执行一起运行。此执行会在您的 Cloud Billing 账单中生成区域沿袭 DCU SKU 条目。
  • 自定义源站类型。如果调用 Data Lineage API 时将 Origin sourceType 字段设置为 CUSTOM 以外的值,则会产生高级处理 (DCU) 费用。将 sourceType 字段设置为 CUSTOM 不会产生高级处理费用,因为您需要自行解析沿袭。不过,在 30 天的保留期内,存储的 CUSTOM 沿袭元数据仍会按元数据存储 SKU 计费。

监控和控制费用

  • Cloud Monitoring 指标限制。数据沿袭 DCU 消耗在无服务器计算上运行,不会在 dataplex.googleapis.com/* 前缀下向 Monitoring 发出实时时序指标。
  • 在 Cloud Billing 中过滤和归因费用。 Knowledge Catalog 会将值为 LINEAGE 的 goog-dataplex-workload-type 标签附加到高级处理 SKU 和元数据存储 SKU 订单项,以用于数据沿袭。在 Cloud Billing 结算报告或 Cloud Billing 导出到 BigQuery 中使用此标签,可将数据沿袭计算和存储费用与其他 Knowledge Catalog 费用分开并归因。如需了解详情,请参阅查看结算报告和费用趋势以及通过 Cloud Billing 导出功能监控和归因 Knowledge Catalog DCU 费用。
  • 在开发项目中停用。为避免产生不必要的计算和存储费用,请仅在需要沿袭跟踪的项目中启用 Data Lineage API,或为特定服务停用沿袭提取。如需查看相关说明,请参阅为服务配置数据沿袭提取中的为服务停用沿袭提取部分。
  • 停止扣款。Data Lineage API 会单独产生费用,与 Dataplex API 的费用分开计算。停用 Dataplex API 不会停用 Data Lineage API,也不会停止其费用。如需停止为项目收取新的数据沿袭处理费用,请停用 Data Lineage API。停用服务提取或 Data Lineage API 后,现有沿袭元数据会继续产生元数据存储费用,最长持续 30 天,直到保留期限到期或您删除元数据。如需查看相关说明,请参阅查看 Google Cloud 系统的数据沿袭中的关闭数据沿袭部分。

后续步骤