排解資料沿革問題

本文說明如何排解及解決 Knowledge Catalog (原稱 Dataplex Universal Catalog) 資料沿襲圖未顯示的最常見問題。解決這些問題可確保您順利追蹤資料移動、瞭解資料來源,以及偵錯資料管道。

專案類型

資料資產可位於不同專案。以下摘要說明可能的專案及其資產名稱。

BigQuery 儲存空間專案

這個專案會儲存 BigQuery 資料資產。你可以在資產詳細資料中找到這組 ID,位於 Table ID 的第一個點之前。

在 BigQuery UI 中,儲存空間專案名稱會顯示在「Table ID」(資料表 ID) 欄位中,完整資料表名稱的第一個點之前。
圖 1. BigQuery 儲存空間專案的名稱。

Compute 專案

這個專案會儲存資料歷程中繼資料。 如果是 BigQuery,您可以在這裡執行工作。如果您使用 Google Cloud 控制台執行工作,可以在專案選擇器中找到運算專案名稱:

在您執行 SQL 查詢的頁面中,BigQuery UI 會顯示名為「docs-compute」的運算專案。
圖 2. 執行 BigQuery 工作的運算專案名稱。

向 BigQuery API 傳送要求時,請在網址中指定運算專案,例如:

POST /bigquery/v2/projects/docs-compute/jobs HTTP/1.1
Host: bigquery.googleapis.com
User-Agent: Go-http-client/1.1
Authorization: <REDACTED 1031 BYTES>
Accept-Encoding: gzip
{
  "configuration": {
    "query": {
      "useLegacySql": false,
      "query": "CREATE OR REPLACE TABLE `docs-target.dataset.target-002` AS SELECT * FROM `docs-source.dataset.source-002`;"
    }
  },
  "jobReference": {
    "projectId": "docs-compute",
    "jobId": "docs-compute-job-id",
    "location": "us",
  }
}

有效專案

這是您查看資料歷程的專案。 Google Cloud 控制台會在專案選取器中顯示有效專案。如果您使用 API,有效專案就是您發出 API 呼叫的專案。

BigQuery UI 會顯示名為 source-001 的資料集資料沿襲,該資料集位於名為 docs-source 的專案中。
圖 3. Google Cloud 控制台中的現用專案。

未顯示 BigQuery 資料歷程

執行 BigQuery 工作後,發生下列問題:在這種情況下,問題可能是由下列三種情況所造成:

如果看到「缺少相關權限,無法擷取歷程。」訊息,表示您沒有有效專案的權限。 否則您沒有運算專案的權限。

空白的歷程圖。
圖 4. BigQuery UI 中未顯示沿襲的示例。

如要解決這個問題,請檢查運算專案是否已啟用 Data Lineage API。 啟用 API 後,您必須執行工作才能查看資料歷程。 視處理的資料量和複雜度而定,資料歷程最多可能需要 24 小時才會顯示,最快則為 30 分鐘。

接著,請檢查有效專案是否已啟用 Data Lineage API。

啟用 Data Lineage API 後,請在有效運算專案中,授予資料歷程檢視者角色 (roles/datalineage.viewer)。

未顯示 BigQuery 程序中繼資料

開啟資料表詳細資料窗格時,會發生下列問題,導致系統無法顯示所有詳細資料,例如 SQL 陳述式或 Process type 屬性。即使資料沿襲顯示正常,仍會發生這種情況。

如果沒有權限查看運算專案中的中繼資料,就可能發生這種情況。

範例:

  • BigQuery 來源資料表:docs-source.dataset.source-001
  • BigQuery 目標資料表:docs-target.dataset.target-001
  • 運算專案docs-source.dataset.source-001docs-target.dataset.target-001 之間的資料歷程 docs-compute
  • 您在有效compute docs-compute 專案中,具備 Data Lineage 檢視者角色

點選 BigQuery 程序詳細資料時, Google Cloud 控制台會顯示下列訊息:

You don't have permission to view BigQuery process metadata in project X.
在 BigQuery UI 的「歷程」分頁中,「詳細資料」窗格會顯示錯誤訊息。
圖 5. BigQuery UI 中未顯示 BigQuery 程序詳細資料的範例。

如要解決這個問題,請在運算專案中授予使用者 bigquery.jobs.get 權限 (例如包含在 BigQuery 資源檢視者角色中)。

未顯示 BigQuery 資料表詳細資料

開啟表格詳細資料窗格時,如果只顯示 Fully qualified name 屬性,就會發生下列問題。即使資料沿襲圖表顯示正常,也會發生這種情況。如果您在資料表的儲存空間專案中沒有所有必要權限,就可能發生這種情況。

範例:

  • BigQuery 資料表 docs-source.dataset.source-001
  • BigQuery 資料表 docs-target.dataset.target-001
  • docs-source.dataset.source-001docs-target.dataset.target-001 之間的資料歷程,以及 運算專案 docs-compute
  • 您在有效compute docs-compute 專案中,具備 Data Lineage 檢視者角色

在本例中,當您按一下 BigQuery 節點詳細資料時,會看到 Entry with this fully qualified name is not available in Knowledge Catalog or you do not have permissions to view it 訊息。

未顯示 BigQuery 資料表詳細資料。
圖 6. BigQuery UI 中未顯示 BigQuery 資料表詳細資料的範例。

如要解決這個問題,請在儲存空間專案中授予 bigquery.tables.get 權限 (例如包含在 BigQuery 資料檢視者角色中)。

資料欄層級歷程顯示「沒有可選取的資料欄」

在 Google Cloud 控制台中查看資產時,如果表格層級的歷程圖表顯示正常,但選取資料欄層級的歷程時,系統顯示「沒有可選取的資料欄」訊息,或未顯示資料欄對應資料欄的連結,就會發生下列問題。

這個問題可能發生於下列情況:

  • 自訂 OpenLineage 事件:透過 Data Lineage API ProcessOpenLineageRunEvent 端點擷取的事件僅支援資料表層級的歷程。Google Cloud 控制台不會顯示自訂資料欄層級的構面。
  • 不支援的資料來源或系統:系統只會為 BigQuery SQL 轉換和 Managed Service for Apache Spark 工作產生資料欄層級的沿襲圖。其他整合系統 (例如 Cloud Data Fusion 和 Vertex AI) 僅支援資料表層級的沿襲。
  • 不支援的 BigQuery 工作類型:系統不會為 BigQuery 載入工作複製工作或常式收集資料欄層級的歷程資訊。
  • 外部資料表:系統不會為外部資料表收集上游資料欄層級的歷程資訊。
  • 非結構化或儲存空間層級的資產:雖然檔案型資產 (例如原始 Cloud Storage 檔案或 bucket) 通常沒有結構,但如果系統回報資料欄層級的歷程,資料歷程就能顯示這些資產的資料欄。如果檔案資產未回報資料欄層級的歷程,您就無法選取任何資料欄。
  • 複雜的巢狀類型:資料欄層級的歷程記錄只會追蹤頂層資料欄。您無法個別選取複雜資料類型 (例如 STRUCTJSON) 中巢狀結構的欄位。
  • 分區虛擬資料欄:系統分區資料欄 (例如 _PARTITIONDATE_PARTITIONTIME) 不會顯示在資料欄層級的歷程圖中。
  • 超出連結上限:如果轉換工作產生超過 1,500 個資料欄層級連結,Knowledge Catalog 會略過資料欄層級歷程收集作業,只保留表格層級歷程。
  • 跨機構資產:如果歷程路徑經過位於其他機構的資產,您與該資產不屬於同一機構,就無法存取結構定義和資料欄詳細資料。

非預期的 Knowledge Catalog 進階處理費用

您已停用 Dataplex API (dataplex.googleapis.com) 以停止計費,但系統仍持續針對「Knowledge Catalog Premium Processing」SKU 每日收費。

如果 Data Lineage API (datalineage.googleapis.com) 仍處於啟用狀態,就可能發生這個問題。Data Lineage API 會以「Knowledge Catalog Premium Processing」SKU 計費,但在 Google Cloud 控制台中,這項 API 是獨立管理。停用 Dataplex API 不會停用 Data Lineage API,也不會停止計費。

如要判斷資料歷程是否為產生費用的原因,請在 Cloud Billing 帳單報表中查看標籤 goog-dataplex-workload-type 的值是否為 LINEAGE

如要停止計費,請在專案中停用 Data Lineage API,關閉資料歷程