在 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 Database Connectivity)
      • 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

    使用 gcloud dataflow jobs run 指令搭配 additional-experiments 選項。如果您使用 Flex 範本,請使用 gcloud dataflow flex-template run 指令。

    --additional-experiments=enable_lineage=true
    

    您也可以使用服務選項指定下列一或多個參數:

    • process_id:Dataplex Universal Catalog 用於將工作執行作業分組的專屬 ID。如未指定,系統會使用工作名稱。
    • 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 定價」。

    後續步驟