生成表格洞察資料

本文說明如何為 BigQuery 資料表、BigLake 資料表和外部資料表產生資料表洞察。資料表洞察功能會根據資料表的中繼資料,生成自然語言問題和 SQL 查詢,協助您瞭解單一資料表中的資料。

表格洞察功能可協助您快速瞭解新表格或不熟悉表格的結構和內容,不必編寫複雜的查詢,因此能加快資料探索速度。您也可以根據自然語言問題生成 SQL 查詢,減少手動編寫查詢所需的時間和精力。非 SQL 使用者也能透過這些自然語言查詢,瞭解及分析資料。

如要瞭解資料表和資料集洞察資料的總覽,請參閱「資料洞察總覽」。

生成表格資料洞察的模式

產生資料表洞察時,BigQuery 提供兩種模式:

模式 說明 用量
生成並發布 (預覽)

將產生的資料表洞察資料以中繼資料切面形式,儲存至 Dataplex Universal Catalog。您必須具備發布所需的權限。使用「產生並發布」時,系統會執行下列動作:

  • 在 Dataplex Universal Catalog 中儲存資料表和欄位說明。
  • 擷取建議的查詢和問題,做為可重複使用的層面。
  • 讓具有適當 Dataplex Universal Catalog 存取權的所有使用者都能存取已發布的洞察資料,確保機構知識得以分享。
  • 可直接在 Dataplex Universal Catalog 中編輯及儲存說明。

如果需要企業範圍內可持續存在且可重複使用的資料文件,或是建構以目錄為導向的控管工作流程,請使用這個模式。

生成但不發布

視需要建立資料表洞察資料,例如說明、自然語言問題和 SQL 查詢。「產生但不發布」不會將洞察資料發布至 Dataplex Universal Catalog。

使用這個模式進行快速的臨時探索,避免目錄雜亂。

事前準備

資料洞察資訊是使用 Gemini in BigQuery 生成。 如要開始生成洞察,請先設定 Gemini in BigQuery

啟用 API

如要使用資料洞察功能,請在專案中啟用下列 API:Dataplex API、BigQuery API 和 Gemini for Google Cloud API。

Roles required to enable APIs

To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

Enable the APIs

如要進一步瞭解如何啟用 Gemini for Google Cloud API,請參閱「在專案中啟用 Gemini for Google Cloud API Google Cloud 」。

角色和權限

如要建立、管理及擷取資料洞察,請要求管理員授予您下列 Identity and Access Management (IAM) 角色:

如要取得所產生洞察資料的唯讀權限,請要求管理員授予下列 IAM 角色:

如要將資料洞察發布至 Dataplex Universal Catalog,請要求管理員授予您資源的下列 IAM 角色:

如要啟用 API,請要求管理員授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。如要查看生成洞察資料所需的確切權限,請展開「Required permissions」(必要權限) 部分:

所需權限

  • bigquery.jobs.create
  • bigquery.tables.get
  • bigquery.tables.getData
  • dataplex.datascans.create
  • dataplex.datascans.get
  • dataplex.datascans.getData
  • dataplex.datascans.run

產生 BigQuery 資料表的洞察資料

如要產生 BigQuery 資料表的洞察資料,可以使用Google Cloud 控制台或 Dataplex Universal Catalog DataScans API 支援的 DATA_DOCUMENTATION 掃描類型。這些掃描作業會產生中繼資料、用於資料探索的 SQL 查詢、結構定義說明,以及資料表層級摘要。

控制台

如要產生 BigQuery 資料表的洞察資訊,必須使用 BigQuery Studio 存取 BigQuery 中的資料表項目。

  1. 前往 Google Cloud 控制台的「BigQuery Studio」。

    前往 BigQuery Studio

  2. 在「Explorer」窗格中,選取專案、資料集,然後選取要產生洞察資料的資料表。

  3. 點按「深入分析結果」分頁標籤,如果分頁空白,表示系統尚未產生這個資料表的洞察資料。

  4. 如要產生洞察資料並發布至 Dataplex Universal Catalog,請按一下「產生並發布」(預覽)。

    如要生成洞察資料,但不發布至 Dataplex Universal Catalog,請按一下「生成但不發布」

    如要進一步瞭解「產生並發布」和「產生但不發布」模式之間的差異,請參閱「產生洞察資料的模式」。

  5. 選取區域即可產生洞察資訊,然後按一下「產生」

    洞察資料需要幾分鐘才會填入。

    如果資料表有已發布的資料剖析結果,系統會使用這些結果產生洞察資訊。否則,系統會根據資料欄名稱和說明產生洞察結果。詳情請參閱「改善生成洞察資料的最佳做法」。

  6. 在「洞察」分頁中,查看系統生成的自然語言問題。

  7. 如要查看回答問題的 SQL 查詢,請按一下該問題。

  8. 如要在 BigQuery 中開啟查詢,請按一下「複製到查詢」

  9. 如要提出後續問題,請按照下列步驟操作:

    1. 按一下「繼續提問」。查詢會在新的資料畫布中開啟。

    2. 依序點選「執行」和「查詢這些結果」

    3. 如要提出後續問題,請在「自然語言」提示欄位中輸入提示,或在查詢編輯器中編輯 SQL。

  10. 如要產生一組新的查詢,請按一下「產生洞察資料」,然後再次觸發管道。

為資料表產生洞察後,只要具備 dataplex.datascans.getData 權限並可存取資料表,就能查看這些洞察。

REST

如要以程式輔助方式產生洞察資料,請使用 Dataplex Universal Catalog DataScans API。如要這樣做,請按照下列步驟進行:

  1. 選用:為表格建立資料剖析掃描作業
  2. 為 BigQuery 資料表產生資料文件資料掃描作業
  3. 查看資料文件掃描狀態
  4. 將資料文件掃描結果發布至 BigQuery 資料表

選用:為資料表建立資料剖析掃描

資料剖析掃描結果可做為 Gemini 的輸出內容依據,因此能減少幻覺和近似值。

如要建立及執行資料剖析掃描,請按照下列步驟操作:

  1. 使用 dataScans.create 方法建立資料剖析掃描作業。

  2. 使用 dataScans.run 方法執行資料剖析掃描。等待執行完成。

  3. 將下列資料剖析標籤附加至資料表,將掃描結果發布至 BigQuery 資料表:

    • dataplex-dp-published-scan:DATASCAN_ID
    • dataplex-dp-published-project:PROJECT_ID
    • dataplex-dp-published-location:LOCATION

    詳情請參閱「為資料表和檢視區塊新增標籤」。

為 BigQuery 資料表產生資料文件資料掃描

您可以選擇執行標準受管理掃描,或簡化的單次掃描。

方法 A:標準受管理掃描 (建立 + 執行)

如要長期管理掃描資源,請使用這個方法。

  1. 使用 dataScans.create 方法建立資料文件資料掃描作業。您可以使用 generation_scopes 參數自訂生成範圍,包括結構定義、說明、查詢或組合:

    • 如要生成結構定義、資料表說明和 SQL 查詢,請將 data_documentation_spec 留空或將 generation_scopes 設為 ALL。 例如:

      gcurl -X POST \
      https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/\
      dataScans?dataScanId=DATASCAN_ID \
      -d '{
        "data": {
          "resource": "//bigquery.googleapis.com/projects/PROJECT_ID/\
      datasets/DATASET_ID/tables/TABLE_ID"
        },
        "executionSpec": {
          "trigger": { "onDemand": {} }
        },
        "type": "DATA_DOCUMENTATION",
        "dataDocumentationSpec": {
          "generation_scopes": "ALL"
        }
      }'
      

      更改下列內容:

      • PROJECT_ID:資料集所在的 Google Cloud專案 ID
      • LOCATION:執行資料掃描的區域
      • DATASCAN_ID:您為這項掃描作業提供的專屬名稱
      • DATASET_ID:要掃描的 BigQuery 資料集 ID
      • TABLE_ID:要掃描的 BigQuery 資料表 ID
    • 如要產生結構定義、資料表說明和資料欄說明,但不想使用 SQL 查詢,請將 generation_scopes 設為 TABLE_AND_COLUMN_DESCRIPTIONS。例如:

      gcurl -X POST \
      https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/\
      dataScans?dataScanId=DATASCAN_ID \
      -d '{
        "data": {
          "resource": "//bigquery.googleapis.com/projects/PROJECT_ID/\
      datasets/DATASET_ID/tables/TABLE_ID"
        },
        "executionSpec": {
          "trigger": { "onDemand": {} }
        },
        "type": "DATA_DOCUMENTATION",
        "dataDocumentationSpec": {
          "generation_scopes": "TABLE_AND_COLUMN_DESCRIPTIONS"
        }
      }'
      
    • 如要生成不含說明的 SQL 查詢,請將 generation_scopes 設為 SQL_QUERIES。例如:

      gcurl -X POST \
      https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/\
      dataScans?dataScanId=DATASCAN_ID \
      -d '{
        "data": {
          "resource": "//bigquery.googleapis.com/projects/PROJECT_ID/\
      datasets/DATASET_ID/tables/TABLE_ID"
        },
        "executionSpec": {
          "trigger": { "onDemand": {} }
        },
        "type": "DATA_DOCUMENTATION",
        "dataDocumentationSpec": {
          "generation_scopes": "SQL_QUERIES"
        }
      }'
      
  2. 使用 dataScans.run 方法啟動資料文件掃描工作。

    例如:

    gcurl -X POST \
    https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/\
    dataScans/DATASCAN_ID:run
    

    這項要求會傳回專屬工作 ID 和初始狀態。

方法 B:單次掃描 (簡化版)

使用這個方法,即可在單一 API 呼叫中啟動及完成掃描。 這個方法可免除個別呼叫執行方法的需要,並允許使用存留時間 (TTL) 功能自動刪除掃描資源。

使用 dataScans.create 方法建立並觸發掃描。例如:

gcurl -X POST \
"https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans?\
dataScanId=DATASCAN_ID" \
-d '{
  "data": {
    "resource": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/\
    tables/TABLE_ID"
  },
  "type": "DATA_DOCUMENTATION",
  "dataDocumentationSpec": { "generation_scopes": "ALL" },
  "executionSpec": {
    "trigger": {
      "one_time": {
        "ttl_after_scan_completion": { "seconds": TTL_TIME }
      }
    }
  }
}'

更改下列內容:

  • PROJECT_ID:資料集所在的 Google Cloud專案 ID
  • LOCATION:執行資料掃描的區域
  • DATASCAN_ID:您為這項掃描作業提供的專屬名稱
  • DATASET_ID:要掃描的 BigQuery 資料集 ID
  • TABLE_ID:要掃描的 BigQuery 資料表 ID
  • TTL_TIME:掃描資源應自動刪除的時間長度 (以秒為單位),例如 3600 代表一小時

查看資料文件掃描狀態

使用 dataScans.get 方法檢查掃描工作是否完成。

使用工作 ID 擷取工作狀態。例如:

gcurl -X GET https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataScans/DATASCAN_ID/jobs/JOB_ID

狀態為 SUCCEEDEDFAILURE 時,工作即完成。

將資料文件掃描結果發布至 BigQuery 資料表

如要將掃描結果發布至 BigQuery 資料表,請將下列資料文件標籤附加至資料表:

  • dataplex-data-documentation-published-scan:DATASCAN_ID
  • dataplex-data-documentation-published-project:PROJECT_ID
  • dataplex-data-documentation-published-location:LOCATION

產生 BigQuery 外部資料表的洞察資料

BigQuery 資料洞察支援為 BigQuery 外部資料表產生洞察,這些資料表含有 Cloud Storage 中的資料。您和目前專案的 Dataplex Universal Catalog 服務帳戶,必須在含有資料的 Cloud Storage bucket 中具備「Storage 物件檢視者」角色 (roles/storage.objectViewer)。詳情請參閱將主體新增至值區層級政策

如要為 BigQuery 外部資料表產生洞察資料,請按照本文「為 BigQuery 資料表產生洞察資料」一節中的操作說明進行。

產生 BigLake 資料表的洞察資料

如要為 BigLake 資料表產生洞察資料,請按照下列步驟操作:

  1. 在專案中啟用 BigQuery Connection API。

    啟用 BigQuery Connection API

  2. 建立 BigQuery 連線。詳情請參閱「管理連線」。

  3. 將 Storage 物件檢視者 (roles/storage.objectViewer) IAM 角色授予您建立的 BigQuery 連線所對應的服務帳戶。

    您可以從連線詳細資料中擷取服務帳戶 ID。

  4. 如要產生洞察資料,請按照本文件「為 BigQuery 資料表產生洞察資料」一節的說明操作。

生成資料表和資料欄說明

產生資料洞察時,Gemini in BigQuery 會自動產生資料表和欄說明。您可以視需要編輯這些說明,然後儲存至表格的中繼資料。系統會使用儲存的說明生成未來的洞察資訊。

控制生成語言

你可以引導 Gemini 以特定語言生成資料表和資料欄說明。如要這麼做,請在產生資料洞察前,先在資料表的現有說明中加入簡短指令 (例如「Generate table and column descriptions using the French language」)。

生成洞察資料時,Gemini 會解讀這項指令,並以要求的語言產生中繼資料。這項機制之所以有效,是因為 Gemini 會使用現有資料表說明做為脈絡,生成新的說明。

如需支援的語言清單,請參閱「Gemini 支援的語言」。

生成說明

如要生成資料表和資料欄說明,請按照下列步驟操作:

  1. 請按照本文件相關章節的指示,產生洞察資料:

  2. 按一下「結構定義」分頁標籤。

  3. 按一下「查看資料欄說明」

    系統會顯示生成的資料表和資料欄說明。

  4. 如要編輯及儲存系統產生的表格說明,請按照下列步驟操作:

    1. 在「資料表說明」部分,按一下「儲存至詳細資料」

    2. 如要以系統產生的說明取代目前的說明,請按一下「複製建議的說明」

    3. 視需要編輯表格說明,然後按一下「儲存至詳細資料」

      系統會立即更新資料表說明。

  5. 如要編輯及儲存產生的資料欄說明,請按照下列步驟操作:

    1. 在「資料欄說明」部分,按一下「儲存至結構定義」

      系統會將生成的資料欄說明填入每個資料欄的「新說明」欄位。

    2. 視需要編輯欄說明,然後按一下「儲存」

      系統會立即更新資料欄說明。

  6. 如要關閉預覽面板,請按一下「關閉」

產生資料洞察的最佳做法

如要提高生成洞察資料的準確度,請遵循下列建議:

  • 提供詳盡的說明。請確認資料集中的資料表和資料欄都有清楚詳細的說明。

  • 透過剖析深入瞭解。如果沒有說明,請確保資料集中的每個資料表都連結至設定檔掃描,以利生成洞察資訊。

  • 明確定義規則。在各資料表的說明中,加入洞察模組用來影響關係產生的任何關係或業務邏輯。

根據資料剖析結果深入分析

在生成式 AI 領域,建立基準是指將模型輸出內容連結至可驗證的資訊來源。您可以根據資料剖析結果,驗證產生的資料表洞察資料。資料剖析會分析 BigQuery 資料表中的資料欄,找出常見的統計特徵,例如典型資料值和資料分布。

為資料表建立資料剖析掃描作業時,您可以選擇在 Google Cloud 控制台中,將掃描結果發布至 BigQuery 和 Dataplex Universal Catalog 頁面。洞察功能會使用資料剖析結果建立更準確、相關的查詢,做法如下:

  1. 分析資料剖析結果,找出資料中值得關注的模式、趨勢或離群值。

  2. 生成查詢,著重於這些模式、趨勢或離群值,以發掘洞察資訊。

  3. 根據資料剖析結果驗證生成的查詢,確保查詢傳回有意義的結果。

如果沒有資料剖析掃描,會發生下列情況:

  • 生成的查詢較可能包含不準確的子句或產生無意義的結果。

  • 產生的資料欄說明只會根據資料欄名稱。

確認資料表的資料剖析掃描作業為最新狀態,且結果已發布至 BigQuery。

您可以調整資料剖析設定,增加取樣大小,並篩除列和欄。執行新的資料剖析掃描後,請重新產生洞察資料。

如果資料集中的資料表有資料剖析結果,資料集洞察的品質也會大幅提升。

新增資料表說明

詳細說明資料表內容,有助於 Gemini in BigQuery 產生更相關的資料表和資料集洞察資訊。新增資料表說明後,重新產生洞察資料。

舉例來說,您可能會在 telco_churn 資料表 (例如「資料表資料洞察範例」中使用的資料表) 中新增下列說明:

This table tracks customer churn data, including subscription details, tenure,
and service usage, to predict customer churn behavior.

如果儲存 Gemini 生成的資料表說明,系統就會使用該說明生成日後的洞察資料。

新增資料欄說明

說明每個資料欄的用途,或一個資料欄與另一個資料欄的關係,有助於提升資料表和資料集洞察資料的品質。更新表格中的資料欄說明後,請重新產生洞察資料。

舉例來說,您可能會在 telco_churn 資料表的特定欄位中新增下列說明,例如「資料表資料洞察範例」中使用的資料表:

tenure」欄:

The number of months the customer has been with the service.

churn」欄:

Whether the customer has stopped using the service. TRUE indicates the customer
no longer uses the service, FALSE indicates the customer is active.

如果儲存 Gemini 生成的資料欄說明,系統就會使用這些說明生成日後的洞察資料。

後續步驟