生成表格洞察

BigQuery 資料表洞察功能可讓您快速瞭解標準 BigQuery 資料表、BigQuery 外部資料表和 BigLake 資料表的結構和內容,不必編寫複雜的查詢。您可以根據自然語言問題生成 SQL 查詢,減少手動編寫查詢所需的時間和精力。

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

生成資料洞察結果的模式

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

模式 說明 用量
生成及發布 (預先發布版)

將生成的資料表洞察資料,以中繼資料切面的形式保留在 Knowledge Catalog。您必須具備必要權限,才能發布。使用「Generate and publish」(生成並發布) 時,系統會執行下列動作:

  • 將資料表和資料欄說明儲存在 Knowledge Catalog。
  • 擷取建議的查詢和問題,做為可重複使用的面向。
  • 讓具備適當 Knowledge Catalog 存取權的所有使用者都能存取已發布的洞察資料,確保組織知識共享。
  • 可讓您直接在 Knowledge Catalog 中編輯及儲存說明。

如要建立可永久保存及重複使用的企業級資料說明文件,或建構目錄導向的治理工作流程,請使用這個模式。

生成但不發布

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

如要快速進行臨時探索,請使用這個模式,以免目錄雜亂。

事前準備

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

啟用 API

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

啟用 API 所需的角色

您必須具備 serviceusage.services.enable 權限,才能啟用 API。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過 Service Usage 管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

啟用 API

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

角色和權限

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

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

  • 在專案中,具備 Dataplex DataScan 資料檢視者 (roles/dataplex.dataScanDataViewer) 角色,且該專案含有您要查看洞察資料的 BigQuery 資料表。

如要將資料洞察發布至 Knowledge 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 控制台,或 Knowledge Catalog DataScans API 支援的 DATA_DOCUMENTATION 掃描類型。這些掃描作業會產生中繼資料、用於資料探索的 SQL 查詢、結構描述說明,以及資料表層級摘要。

控制台

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

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

    前往 BigQuery Studio

  2. 在「Explorer」窗格中,依序選取要生成洞察資料的專案、資料集和資料表。

  3. 點按「深入分析結果」分頁標籤。

    如果分頁空白,表示這個資料表尚未生成洞察資訊。

  4. 如要生成洞察資料,請按一下「生成」。

  5. 選取發布條件:

    • 如要生成洞察資料,並將其永久附加至資產做為中繼資料,請開啟「Publish condition」(發布條件) 切換鈕。這樣一來,機構中的其他使用者就能建立索引、搜尋及查看洞察。

    • 如要在目前的工作階段中暫時生成及查看洞察資料,請關閉「Publish condition」(發布條件) 切換鈕。

    如要進一步瞭解「Generate and publish」(生成並發布) 和「Generate without publishing」(生成但不發布) 模式之間的差異,請參閱「生成資料洞察的模式」。

  6. 選用:在「Custom instructions」(自訂指令) 欄位中,提供指引和網域背景資訊,自訂 Gemini 生成洞察資料的方式。

    例如,您可以強制執行命名慣例、指定業務定義,或描述 join 鍵:

    LANGUAGE: Always write column descriptions in uppercase.
    
    DOMAIN_CONTEXT:
    - This dataset supports the Order-to-Cash process for the EMEA commercial
      sales team.
    - Primary consumers are finance analysts and regional sales managers, not
      engineers.
    
    RELATIONSHIPS:
    - returns.order_item_id → order_items.id (one-to-one; use LEFT JOIN to
      preserve unreturned items)
    
  7. 選取要生成洞察資料的區域,然後點選「生成」。

    系統需要幾分鐘才能填入洞察資料。

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

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

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

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

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

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

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

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

  12. 如要生成一組新的查詢,請按一下「Generate insights」(生成洞察資料),然後再次觸發管道。

生成資料表的洞察資料後,凡是具備 dataplex.datascans.getData 權限且可存取資料表的使用者,都能查看這些洞察資料。

REST

如要以程式輔助方式生成洞察資料,請使用 Knowledge 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 參數自訂生成範圍,納入結構定義、說明、查詢或組合。您也可以將 catalogPublishingEnabled 參數設為 true,將這些洞察資訊發布至 Knowledge Catalog。

  • 如要生成結構定義、資料表說明和 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": {
          "generationScopes": "ALL"
          "catalogPublishingEnabled": true
        }
      }'
    

    更改下列內容:

    • 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": {
          "generationScopes": "TABLE_AND_COLUMN_DESCRIPTIONS"
          "catalogPublishingEnabled": true
        }
      }'
    
  • 如要生成不含說明的 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": {
          "generationScopes": "SQL_QUERIES"
          "catalogPublishingEnabled": true
        }
      }'
    
  1. 使用 dataScans.run 方法啟動資料文件掃描工作。

    例如:

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

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

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

使用這個方法,只要呼叫一次 API,就能啟動並完成掃描。這樣就不必另外呼叫 run 方法,並可使用存留時間 (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": {
    "generationScopes": "ALL",
    "catalogPublishingEnabled": true
  }
  "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

狀態為 SUCCEEDED 或 FAILURE 時,工作即完成。

將資料說明文件掃描結果發布至 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。您和目前專案的 Knowledge Catalog 服務帳戶,必須具備包含資料的 Cloud Storage bucket 的 Storage 物件檢視者角色 (roles/storage.objectViewer)。詳情請參閱「將主體新增至 bucket 層級政策」。

如要為 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 以特定語言生成資料表和資料欄說明。如要這麼做,請在生成資料洞察前,使用「Custom Instruction」(自訂指令) 欄位,在資料表的現有說明中加入簡短指令 (例如「Generate table and column descriptions using the French language」)。

生成洞察資料時,Gemini 會解讀這些指令,並以要求的語言產生中繼資料。Gemini 生成新的資料表說明時,會使用現有的資料表說明做為脈絡資訊,因此這個機制能發揮作用。

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

生成說明

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

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

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

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

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

  4. 如要編輯並儲存生成的資料表說明,請按照下列步驟操作:

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

    2. 如要將目前的說明替換為生成的說明,請按一下「Copy suggested description」(複製建議的說明)。

    3. 視需要編輯資料表說明,然後按一下「Save to details」(儲存至詳細資料)。

      資料表說明會立即更新。

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

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

      生成的資料欄說明會填入各欄的「New description」(新說明) 欄位。

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

      資料欄說明會立即更新。

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

生成資料洞察的最佳做法

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

  • 提供完整說明。確保資料集內的資料表和資料欄都有清楚、詳細的說明。

  • 透過剖析功能,確保深入分析結果有憑有據。如果沒有說明,請確認資料集中的每個資料表都連結至設定檔掃描,以便為生成的洞察資料提供依據。

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

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

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

建立資料表的資料剖析掃描作業時,您可以選擇將掃描結果發布至 Google Cloud 控制台的 BigQuery 和 Knowledge 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 生成的資料欄說明,系統就會使用這些說明生成日後的洞察資料。

管理生成的洞察資料

生成資料表的洞察資料後,您可以在 Knowledge Catalog 中管理、更新或刪除這些資料。詳情請參閱「管理資料表深入分析」。

後續步驟