資料歷程是視覺化地圖,可追蹤資料的整個生命週期。顯示資料來源、傳輸目的地,以及過程中發生的所有變更或轉換。
您可以在Google Cloud 控制台中,直接查看資料歷程的完整地圖,瞭解在 Knowledge Catalog (原稱 Dataplex Universal Catalog)、BigQuery (包括為 Iceberg REST Catalog 建立的外部資料表) 和 Vertex AI 等產品中建立的資產。由於工作流程通常會跨越多個區域,因此 Knowledge Catalog 支援多區域歷程,可提供全球 Google Cloud 生態系統中資料歷程的統一檢視畫面。進階使用者也可以使用 Data Lineage API 擷取這項資訊。
為何需要資料歷程
現代企業會不斷移動及變更大量資料。舉例來說,將原始顧客購買資料轉換為報表、資訊主頁和機器學習模型。這種複雜性會為團隊帶來重大挑戰:
信任和驗證。資料使用者經常難以確認所見的報表和數字是否準確,以及是否來自可信來源。
疑難排解。如果最終報表出現錯誤,資料團隊可能難以追蹤每個步驟,找出問題的根本原因,而且會耗費大量時間。
變更管理。變更或刪除資料 (例如表格中的資料欄) 前,團隊必須瞭解所有依賴該資料的下游報表或模型,以免重要系統發生故障。
法規遵循。領導者需要掌握整個機構如何使用機密資料 (例如客戶或財務資訊),才能符合法規要求。
資料歷程可清楚、視覺化地呈現資料歷程,並提供相關文件,有助於解決上述問題。這有助於瞭解資料來源、追蹤錯誤、評估變更的影響,以及維持法規遵循狀態。
資料歷程的運作方式
資料歷程工作流程包含下列步驟:
資料來源和擷取:資料來源的沿襲資訊會啟動整個程序。
Google Cloud 服務:啟用 Data Lineage API 後,BigQuery 和 Dataflow 等支援的服務會在資料移動或轉換時,自動回報沿襲事件。
自訂來源:對於整合功能未自動支援的任何系統,您可以使用 Data Lineage API 手動記錄歷程資訊。Google Cloud 建議您匯入根據 OpenLineage 標準格式化的事件。
沿襲平台:這個中央平台會擷取、建立模型及儲存所有沿襲資料。
Data Lineage API:這個 API 是所有傳入歷程資訊的單一進入點。它使用階層式資料模型,包含程序、執行作業和事件這三項核心概念。
處理和儲存:平台會處理傳入的資料,並儲存在經過查詢最佳化的可靠資料庫中。
使用者體驗:您可以透過兩種主要方式與儲存的沿襲資訊互動:
視覺化探索:前端服務會在 Google Cloud 控制台中擷取歷程資料,並以互動式圖表或清單的形式呈現。這項功能支援 Knowledge Catalog、BigQuery、Lakehouse for Apache Iceberg (適用於 Iceberg REST 目錄資料表)、實體層 (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 點再次執行相同查詢時,系統會建立新的獨立執行作業。兩次執行作業都連結至同一個父項程序。
執行的 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,位於 attributes 清單中。
其他服務
資料歷程支援與下列Google Cloud 服務整合:
-
在專案中啟用 Data Lineage API 後,您就無法將歷程追蹤作業限制為僅限 Cloud Data Fusion。
-
您可以使用 Dataflow 工作擷取歷程事件,並發布至 Data Lineage API。
適用於 Iceberg REST 目錄資料表的 Lakehouse
Looker (Google Cloud Core) (預覽版)
系統支援使用資料沿襲,從 BigQuery 來源視覺化 Looker (Google Cloud 核心) 中繼資料。您必須在 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 手動記錄整合系統不支援的任何資料來源 (例如外部資料庫或內部管道) 的歷程資訊。如果您使用與現有 Knowledge Catalog 項目完整名稱相符的 fullyQualifiedName,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 每個整合系統都可以提交不同範圍資料來源的沿襲資訊。
控管沿襲擷取作業
如要管理費用和控管政策,您可以針對特定 Google Cloud 服務開啟或關閉沿襲產生功能。您可以在機構、資料夾和專案層級集中設定這項擷取作業。在預先發布期間,這項功能支援為 Managed Service for Apache Spark、BigQuery 和 Managed Service for Apache Airflow 設定沿襲資料擷取作業。
Knowledge Catalog 會評估資源階層 (專案、資料夾,然後是機構),判斷有效設定。系統會採用向上遍歷時在任何層級明確設定的第一個設定。
- 如果您在專案層級設定設定,Knowledge Catalog 就會使用該設定。
- 如果專案層級未設定任何項目,Knowledge Catalog 會使用最接近的父項資料夾設定。
- 如果專案或資料夾層級未設定任何項目,Knowledge Catalog 會使用機構層級的設定。
- 如果未在任何層級設定,知識目錄會使用整合的系統預設值。預設的沿襲啟用設定可以是「已啟用」或「已停用」。對於 Managed Service for Apache Spark、BigQuery 和 Managed Service for Apache Airflow,如果 Data Lineage API 處於啟用狀態,系統預設會啟用歷程擷取功能。
舉例來說,假設機構 test-org 具有下列 Managed Service for Apache Spark 歷程設定:
- 機構
test-org:已啟用- 資料夾
folder-a:已停用- 專案
project-a:未設定任何設定
- 專案
- 資料夾
folder-b:已啟用- 專案
project-b:已停用
- 專案
- 資料夾
在這個情境中,適用下列設定:
- 對於
project-a,沿襲資料擷取功能為「已停用」。 Knowledge Catalog 會從project-a開始評估,但找不到任何設定,因此會移至folder-a,並套用folder-a中的「已停用」設定。 - 對於
project-b,沿襲資料擷取功能為「已停用」。 Knowledge Catalog 會從project-b開始評估,並套用 已停用設定,覆寫folder-b和test-org的設定。
控管沿襲資料的產生方式,有助於管理成本和治理政策。舉例來說,您可以針對不需要沿襲追蹤的開發專案或大量工作負載,停用沿襲收集功能。
如要瞭解如何設定及控管沿襲資料擷取作業,請參閱「控管服務的沿襲資料擷取作業」。
多區域資料歷程
資料沿襲是本質上屬於區域性的服務。系統會安全地記錄歷程中繼資料 (包括連結、程序和事件),並將其隔離在發生基礎資料轉換或資產修改的特定地理位置。
隨著現代企業資料架構擴充,管道工作流程經常會跨越專案和區域界線。舉例來說,在 us-central1 中執行的 BigQuery 轉換管道可能會讀取 us-east1 中的來源資料表,並將匯總指標輸出至 europe-west1 中的 Cloud Storage 值區。
如要全面掌握資料在這些獨立地理空間的生命週期,請使用多區域歷程搜尋方法。
詳情請參閱「關於多區域沿襲搜尋」。
資料歷程注意事項與限制
規劃資料控管策略時,請注意下列沿襲整合、法規遵循參數和服務限制。
產品層級沿襲控制項
啟用 Data Lineage API 後,支援的系統會根據產品層級的控制項回報沿襲資訊。如需支援的系統及其控制項完整清單,請參閱「支援資料沿襲的系統」。
對費用的影響
除了標準定價外,請注意下列事項:
- Data Lineage API 是以專案為單位執行。在啟用這項功能前,請先評估對計費的影響,再用於資料量大的專案工作流程。
- 對於 BigQuery Omni,沿襲處理作業會分配至特定區域,費用則取決於執行處理作業的區域。
資料歷程法規遵循
- 資料沿襲會記錄資料移動的中繼資料,但不會擷取資料本身。如要瞭解中繼資料包含哪些欄位,請參閱「資料歷程資訊模型」和「Data Lineage API 參考資料」。
- Knowledge Catalog 的資料歷程功能支援 VPC-SC。
- Knowledge Catalog 不支援使用客戶管理的加密金鑰 (CMEK) 保護收集到的沿襲中繼資料。
資料歷程限制
資料沿襲具有下列限制:
系統只會保留所有沿襲資訊 30 天。
即使刪除相關資料來源,沿襲資訊仍會保留。舉例來說,如果您刪除 BigQuery 資料表,最多 30 天內仍可透過 API 和控制台查看其沿襲。
資料歷程不會自動記錄 BigQuery 常式的直接歷程資訊。如果在查詢中使用常式,資料沿襲會記錄常式讀取的資料表之間的沿襲,做為查詢寫入的資料表依附元件。
在下列情況中,當您選取譜系圖中的節點時,節點詳細資料側邊面板會是空白的:
- 資源位於其他機構。
- 使用者不是資源所屬機構的成員。
資料欄層級歷程限制
資料欄層級沿襲有下列額外限制:
系統不會為 BigQuery 載入作業或常式收集資料欄層級的歷程。
系統不會收集外部資料表的上游資料欄層級沿襲。
如果工作建立超過 1,500 個資料欄層級連結,系統就不會收集資料欄層級歷程。在這種情況下,系統只會收集表格層級的沿襲資訊。
資料欄層級的沿襲支援僅限於 BigQuery 資料表中的頂層資料欄。系統不支援複雜型別 (例如 STRUCT 或 JSON) 中的巢狀欄位。
使用欄位參數的搜尋功能只會對明確定義欄對欄關係的連結運作。如果結果或遍歷連結只在資料表層級定義,則不會傳回。系統不支援在資料表層級連結和資料欄層級連結之間搜尋 (例如,尋找與資料表層級連結相關的所有資料欄,反之亦然)。API 只會傳回來源和目標都指定欄位的連結。
由於沿襲圖中無法辨識
_PARTITIONDATE和_PARTITIONTIME等分區資料欄,因此分區資料表支援功能有限。控制台限制:
- 血統圖的遍歷深度上限為 20 個層級,每個方向的連結上限為 10,000 個。
定價
Knowledge Catalog 會使用進階處理 SKU,針對資料歷程收費。詳情請參閱這篇文章,瞭解定價相關資訊。
如要在雲端帳單報表中,將資料沿革費用與 Knowledge Catalog 進階處理 SKU 的其他費用分開,請使用標籤
goog-dataplex-workload-type,並將值設為LINEAGE。如果您使用
CUSTOM以外的值呼叫 Data Lineage APIOriginsourceType,就會產生額外費用。
後續步驟
瞭解如何搭配系統使用資料歷程。 Google Cloud
瞭解控制台中的沿襲檢視畫面。Google Cloud
探索 Data Lineage API。
如需管理資訊,請參閱「資料歷程考量事項和限制」和「資料歷程稽核記錄」。