在 Dataflow 中使用数据沿袭

数据沿袭是 Dataflow 的一项功能,可让您跟踪数据在系统中的移动方式:数据来自何处、传递到何处以及对其应用了哪些转换。

您使用 Dataflow 运行的每个流水线都有多个关联的数据资产。数据资产的沿袭包括其来源、发生的变化以及随时间推移的去向。借助数据沿袭,您可以跟踪数据资产从来源到最终目的地的端到端移动。

为 Dataflow 作业启用数据沿袭后,Dataflow 会捕获沿袭事件并将其发布到 Dataplex Universal Catalog Data Lineage API

如需通过 Dataplex Universal Catalog 访问沿袭信息,请参阅将数据沿袭与 Google Cloud 系统搭配使用

准备工作

设置项目:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the Dataplex Universal Catalog, BigQuery, and Data lineage APIs.

    Enable the APIs

  4. Make sure that billing is enabled for your Google Cloud project.

  5. Enable the Dataplex Universal Catalog, BigQuery, and Data lineage APIs.

    Enable the APIs

  6. 在 Dataflow 中,您还需要在作业级层启用沿袭。 请参阅本文档中的在 Dataflow 中启用数据沿袭

    所需的角色

    如需获得查看沿袭可视化图表所需的权限,请让您的管理员为您授予以下 IAM 角色:

    如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

    如需详细了解数据沿袭角色,请参阅数据沿袭的预定义角色

    支持和限制

    Dataflow 中的数据沿袭具有以下限制:

    • Apache Beam SDK 2.63.0 版及更高版本支持数据沿袭。
    • 您必须按作业启用数据沿袭。
    • 数据捕获不会立即完成。Dataflow 作业沿袭数据可能需要几分钟时间才能显示在 Dataplex Universal Catalog 中。
    • 支持以下来源和接收器:

      • Apache Kafka
      • BigQuery
      • Bigtable
      • Cloud Storage
      • JDBC(Java 数据库连接)
      • Pub/Sub
      • Spanner

      使用这些来源和接收器的 Dataflow 模板也会自动捕获和发布谱系事件。

    在 Dataflow 中启用数据沿袭

    您需要在作业级层启用谱系。如需启用数据沿袭,请使用 enable_lineage Dataflow 服务选项,如下所示:

    Java

    --dataflowServiceOptions=enable_lineage=true
    

    Python

    --dataflow_service_options=enable_lineage=true
    

    Go

    --dataflow_service_options=enable_lineage=true
    

    gcloud

    使用带有 additional-experiments 选项的 gcloud dataflow jobs run 命令。如果您使用的是 Flex 模板,请使用 gcloud dataflow flex-template run 命令。

    --additional-experiments=enable_lineage=true
    

    您可以选择性地通过服务选项指定以下一个或两个参数:

    • process_id:Dataplex Universal Catalog 用于对作业运行进行分组的唯一标识符。如果未指定,则使用作业名称。
    • process_name:数据沿袭流程的直观易懂的名称。 如果未指定,则使用以 "Dataflow " 为前缀的作业名称。

    按如下方式指定这些选项:

    Java

    --dataflowServiceOptions=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
    

    Python

    --dataflow_service_options=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
    

    Go

    --dataflow_service_options=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
    

    gcloud

    --additional-experiments=enable_lineage=process_id=PROCESS_ID;process_name=DISPLAY_NAME
    

    在 Dataplex Universal Catalog 中查看沿袭

    数据沿袭可提供有关项目资源与创建这些资源的进程之间关系的信息。您可以在 Google Cloud 控制台中以图表或单个表格的形式查看数据沿袭信息。您还可以从 Data Lineage API 中以 JSON 数据的形式检索数据沿袭信息。

    如需了解详情,请参阅将数据沿袭与 Google Cloud 系统搭配使用

    在 Dataflow 中停用数据沿袭

    如果已为特定作业启用数据沿袭,但您想将其停用,请取消现有作业,然后运行不含 enable_lineage 服务选项的新版作业。

    结算

    在 Dataflow 中使用数据沿袭不会影响您的 Dataflow 账单,但可能会导致您的 Dataplex Universal Catalog 账单产生额外费用。如需了解详情,请参阅数据沿袭注意事项Dataplex Universal Catalog 价格

    后续步骤