資料歷程是視覺化對應,可追蹤資料的完整生命週期。包括資料來源、去向 (目的地),以及過程中發生的所有變更或轉換。
您可以在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 等支援的服務就會自動回報歷程事件。
自訂來源:對於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 會收集這項資訊,並使用程序、執行作業和事件的概念,將資訊整理成階層式資料模型。
| 概念 | 說明 |
|---|---|
| 程序 | 資料轉換定義。 |
| 執行 | 執行程序。 |
| Event | 執行期間的資料移動記錄。 |
什麼是歷程程序?
程序是指特定系統的資料轉換作業定義。在 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 資源,請參閱「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 中使用下列 data manipulation language (DML) 陳述式時,現有的資料表:
BigQuery 複製、查詢和載入工作會以程序表示。
如要查看程序詳細資料,請按一下歷程圖上的「Process details」(程序詳細資料) 圖示
。
每個程序都包含 BigQuery job_id,位於最近 BigQuery 工作的屬性清單中。
其他服務
資料歷程支援與下列Google Cloud 服務整合:
-
在專案中啟用 Data Lineage API 後,就無法將歷程追蹤限制為僅限 Cloud Data Fusion。
-
您可以使用 Dataflow 工作擷取歷程事件,並發布至 Data Lineage API。
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 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 bucket。
如要全面掌握資料在這些獨立地理空間中的生命週期,請使用多區域歷程搜尋方法。
詳情請參閱「關於多區域歷程搜尋」。
資料歷程注意事項和限制
規劃資料治理策略時,請留意下列歷程整合、法規遵循參數和服務限制。
產品層級歷程控制項
啟用 Data Lineage API 後,支援的系統會根據產品層級控制項回報歷程。如需支援系統及其控制項的完整清單,請參閱「支援資料歷程的系統」。
資料歷程法規遵循
- 資料歷程會記錄資料移動的中繼資料,但不會擷取資料本身。如要瞭解中繼資料包含哪些欄位,請參閱資料歷程資訊模型和 Data Lineage API 參考資料。
- Knowledge Catalog 的資料歷程功能支援 VPC-SC。
- Knowledge Catalog 不支援使用客戶自行管理的加密金鑰 (CMEK),保護收集到的歷程中繼資料。
資料歷程限制
資料歷程有下列限制:
所有歷程資訊在系統中只會保留 30 天。
刪除相關資料來源後,歷程資訊仍會保留。舉例來說,如果您刪除 BigQuery 資料表,仍可在 30 天內透過 API 和控制台查看其歷程。
資料歷程不會自動記錄 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 (以資料運算單元或 DCU 為單位) 收取資料歷程費用。如要瞭解費率詳情,請參閱 Knowledge Catalog 定價,或使用 Google Cloud Pricing Calculator。
費用因素和對計費方式的影響
規劃資料歷程導入作業時,請考量下列成本因素:
- 依專案啟用。Data Lineage API 會依專案執行。在資料量龐大的專案工作流程中啟用這項功能前,請先確認對帳單的影響。
- 中繼資料儲存和搜尋。在 30 天保留期間內儲存的歷程中繼資料 (程序、執行作業、事件和連結),會依中繼資料儲存 SKU 計費。在 Google Cloud 控制台查看歷程不會產生 BigQuery 查詢或掃描費用。
- BigQuery Omni。歷程處理作業會分配到特定區域,費用則取決於處理作業執行的區域。
- BigQuery 多區域資料集。如果您使用多區域資料集 (例如
US多區域),BigQuery 會在實體資料中心可用區之間動態轉送查詢。資料歷程會與查詢執行作業,在工作執行的實體位置 (例如us-east1) 執行。這會導致 Cloud Billing 帳單上出現區域 Lineage DCU SKU 項目。 - 自訂來源類型。如果您呼叫 Data Lineage API
OriginsourceType時,使用的值不是CUSTOM,就會產生額外費用。
監控及管理費用
- Cloud Monitoring 指標限制。資料歷程 DCU 消耗量會在無伺服器運算上執行,且不會在
dataplex.googleapis.com/*下向 Cloud Monitoring 發出即時時間序列指標。 - 在 Cloud Billing 中篩選及歸因費用。如要將資料歷程費用與 Knowledge Catalog 進階處理 SKU 中的其他費用分開並歸因,請在 Cloud Billing 帳單報表或匯出至 BigQuery 的 Cloud Billing 資料中,使用標籤
goog-dataplex-workload-type和值LINEAGE。如需詳細的查詢範例,請參閱「透過 Cloud Billing 匯出功能監控及歸因 Knowledge Catalog DCU 費用」。 - 在開發專案中停用。為避免產生不必要的處理費用,請只在需要追蹤歷程的專案啟用 Data Lineage API。
- 停止收費。Data Lineage API 的費用與 Dataplex API 分開計算。停用 Dataplex API 不會停用 Data Lineage API,也不會停止計費。如要停止產生資料歷程費用,請停用 Data Lineage API,關閉資料歷程。
後續步驟
探索 Data Lineage API。
如需管理資訊,請參閱資料歷程注意事項和限制,以及資料歷程稽核記錄。