從 BigQuery 匯入

您可以透過兩種方式,從 BigQuery 資料表建立資料儲存庫:

  • 一次性擷取:將資料從 BigQuery 資料表匯入資料儲存庫。除非手動重新整理資料,否則資料存放區中的資料不會變更。

  • 定期擷取:從一或多個 BigQuery 資料表匯入資料,並設定同步頻率,決定資料存放區更新 BigQuery 資料集最新資料的頻率。

下表比較了將 BigQuery 資料匯入 Gemini Enterprise 資料儲存庫的兩種方式。

單次擷取 定期擷取
正式發布 (GA)。 公開預先發布版。
資料必須手動重新整理。 資料會每 1、3 或 5 天自動更新一次。資料無法手動重新整理。
Gemini Enterprise 會從 BigQuery 中的一個資料表建立單一資料儲存庫。 Gemini Enterprise 會為每個指定的資料表建立 BigQuery 資料集資料連接器,以及資料儲存庫 (稱為實體資料儲存庫)。每個資料連結器的資料表必須具有相同的資料類型 (例如結構化),且位於相同的 BigQuery 資料集中。
如要將多個資料表的資料合併到一個資料儲存庫,請先從一個資料表擷取資料,然後從另一個來源或 BigQuery 資料表擷取更多資料。 由於系統不支援手動匯入資料,實體資料儲存庫中的資料只能來自一個 BigQuery 資料表。
支援資料來源存取控管。 不支援資料來源存取控管。匯入的資料可能包含存取權控管機制,但系統不會採用這些機制。
您可以使用Google Cloud 控制台或 API 建立資料儲存庫。 您必須使用控制台建立資料連接器及其實體資料儲存庫。
符合 CMEK 規定。 符合 CMEK 規定。

從 BigQuery 匯入一次

如要從 BigQuery 資料表擷取資料,請按照下列步驟,使用 Google Cloud 控制台或 API 建立資料儲存庫並擷取資料。

匯入資料前,請先參閱「為資料擷取作業做準備」。

控制台

如要使用 Google Cloud 控制台擷取 BigQuery 資料,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Gemini Enterprise」頁面。

    Gemini Enterprise

  2. 前往「Data Stores」(資料儲存庫) 頁面。

  3. 點選「Create Data Store」(建立資料儲存庫)

  4. 在「Select a data source」(選取資料來源) 頁面中,選取「BigQuery」

  5. 選取要匯入的資料類型

  6. 按一下「一次性」

  7. 在「BigQuery 路徑」欄位中,按一下「瀏覽」,選取您準備用於擷取的資料表,然後按一下「選取」。 或者,直接在「BigQuery 路徑」欄位中輸入資料表位置。

  8. 按一下「繼續」

  9. 如果只匯入一次結構化資料:

    1. 將欄位對應至主要屬性。

    2. 如果結構定義缺少重要欄位,請使用「新增欄位」新增。

      詳情請參閱「關於自動偵測和編輯」。

    3. 按一下「繼續」

  10. 選擇資料儲存庫的區域。

  11. 輸入資料儲存庫的名稱。

  12. 點選「建立」

  13. 接著需要檢查擷取狀態,請前往「Data stores」(資料儲存庫) 頁面,點按資料儲存庫名稱,即可在相應的「Data」(資料) 頁面查看該儲存庫的詳細資料。「Activity」(活動) 分頁的狀態欄從「In progress」(進行中) 變為「Import completed」(匯入完成) 時,表示擷取作業已完成。

    視資料大小而定,可能需要數分鐘至數小時才能擷取完畢。

REST

如要使用指令列建立資料存放區,並從 BigQuery 匯入資料,請按照下列步驟操作。

  1. 建立資料儲存庫。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DATA_STORE_DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"]
    }'
    

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • DATA_STORE_ID:要建立的資料儲存庫 ID。這個 ID 只能包含小寫英文字母、數字、底線和連字號。
    • DATA_STORE_DISPLAY_NAME:要建立的資料存放區顯示名稱。

    選用:如果您要上傳非結構化資料,並想設定文件剖析或開啟 RAG 的文件分塊功能,請指定 documentProcessingConfig 物件,並將其納入資料儲存庫建立要求。如果擷取的是掃描的 PDF,建議設定 PDF 適用的 OCR 剖析器。如要瞭解如何設定剖析或分塊選項,請參閱「剖析及分塊文件」。

  2. 從 BigQuery 匯入資料。

    如果您已定義架構,請確認資料符合該架構。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
      "bigquerySource": {
        "projectId": "PROJECT_ID",
        "datasetId":"DATASET_ID",
        "tableId": "TABLE_ID",
        "dataSchema": "DATA_SCHEMA",
        "aclEnabled": "BOOLEAN"
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "autoGenerateIds": "AUTO_GENERATE_IDS",
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • DATA_STORE_ID:資料儲存庫的 ID。
    • DATASET_ID:BigQuery 資料集的 ID。
    • TABLE_ID:BigQuery 資料表的 ID。
      • 如果 BigQuery 資料表不在 PROJECT_ID 下方,您需要為服務帳戶 service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com 授予 BigQuery 資料表的「BigQuery 資料檢視者」權限。舉例來說,如果您要將來源專案「123」的 BigQuery 資料表匯入目的地專案「456」,請為專案「123」下的 BigQuery 資料表授予 service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com 權限。
    • DATA_SCHEMA:選用。值為 documentcustom。預設值為 document
      • document:您使用的 BigQuery 資料表必須符合「準備要擷取的資料」一文提供的預設 BigQuery 結構定義。您可以自行定義每份文件的 ID,同時將所有資料包裝在 jsonData 字串中。
      • custom:系統接受任何 BigQuery 資料表結構定義,且 Gemini Enterprise 會自動為匯入的每份文件產生 ID。
    • ERROR_DIRECTORY:選用。Cloud Storage 目錄,用於存放匯入作業的錯誤資訊,例如 gs://<your-gcs-bucket>/directory/import_errors。Google 建議將這個欄位留空,讓 Gemini Enterprise 自動建立臨時目錄。
    • RECONCILIATION_MODE:選用。值為 FULLINCREMENTAL。預設值為 INCREMENTAL。指定 INCREMENTAL 會導致系統將 BigQuery 資料增量重新整理至資料存放區。這會執行 upsert 作業,新增文件並以 ID 相同的更新文件取代現有文件。指定 FULL 會導致資料儲存庫中的文件完全重新基準化。換句話說,系統會將新文件和更新的文件新增至資料存放區,並從資料存放區中移除不在 BigQuery 中的文件。如果您想自動刪除不再需要的檔案,FULL 模式會很有幫助。
    • AUTO_GENERATE_IDS:選用。指定是否要自動產生文件 ID。如果設為 true,系統會根據酬載的雜湊值產生文件 ID。請注意,多次匯入時,產生的文件 ID 可能不一致。如果您在多次匯入時自動產生 ID,Google 強烈建議將 reconciliationMode 設為 FULL,確保文件 ID 一致。

      只有在 bigquerySource.dataSchema 設為 custom 時,才指定 autoGenerateIds。否則,系統會傳回 INVALID_ARGUMENT 錯誤。如未指定 autoGenerateIds 或將其設為 false,則必須指定 idField。否則文件無法匯入。

    • ID_FIELD:選用。指定哪些欄位是文件 ID。如果是 BigQuery 來源檔案,idField 表示 BigQuery 資料表中包含文件 ID 的資料欄名稱。

      只有在 (1) bigquerySource.dataSchema 設為 custom,且 (2) auto_generate_ids 設為 false 或未指定時,才需要指定 idField。否則會傳回 INVALID_ARGUMENT 錯誤。

      BigQuery 資料欄名稱的值必須為字串類型,長度必須介於 1 至 63 個字元之間,且必須符合 RFC-1034。否則文件無法匯入。

連結至 BigQuery 並定期同步

匯入資料前,請先參閱「為資料擷取作業做準備」。

以下程序說明如何建立 BigQuery資料儲存庫,並定期從 BigQuery 資料集同步處理資料。如果資料集有多個資料表,您可以將這些資料表新增至您要建立的 BigQuery 資料存放區。您新增的每個資料表都稱為實體。Gemini Enterprise 會為每個實體建立個別的資料儲存庫。因此,使用 Google Cloud 控制台建立資料儲存庫時,您會取得代表這些擷取資料實體的資料儲存庫集合。

資料集中的資料會定期同步至實體資料儲存庫。您可以指定每日、每三天或每五天同步一次。

控制台

如要建立資料儲存庫,並定期將 BigQuery 資料集的資料同步至 Gemini Enterprise,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Gemini Enterprise」頁面。

    Gemini Enterprise

  2. 點按導覽選單中的「Data Stores」(資料儲存庫)

  3. 點選「Create Data Store」(建立資料儲存庫)

  4. 在「來源」頁面中,選取「BigQuery」

  5. 選取要匯入的資料類型。

  6. 按一下「週期性」

  7. 選取「同步頻率」,設定 Gemini Enterprise 連接器與 BigQuery 資料集同步的頻率。日後可以變更頻率。

  8. 在「BigQuery dataset path」(BigQuery 資料集路徑) 欄位中,按一下「Browse」(瀏覽),然後選取包含您準備要擷取的資料表。或者,您也可以直接在「BigQuery 路徑」欄位中輸入資料表位置。路徑格式為 projectname.datasetname

  9. 在「Tables to sync」(要同步處理的資料表) 欄位中,按一下「Browse」(瀏覽),然後選取包含資料儲存庫所需資料的資料表。

  10. 如果資料集中還有其他要用於資料儲存區的資料表,請按一下「新增資料表」並指定這些資料表。

  11. 按一下「繼續」

  12. 選擇資料儲存庫的區域,輸入資料連接器的名稱,然後按一下「Create」(建立)

    您已建立資料連接器,該連接器會定期與 BigQuery 資料集同步處理資料。您已建立一或多個實體資料儲存庫。資料儲存庫的名稱與 BigQuery 資料表相同。

  13. 如要檢查擷取狀態,請前往「Data Stores」(資料儲存庫) 頁面,點按資料連接器名稱,即可在相應的「Data」(資料) 頁面查看該資料連接器的詳細資料 > 點按「Data ingestion activity」(資料擷取活動) 分頁標籤。「Activity」(活動) 分頁的狀態欄從「In progress」(進行中) 變為「succeeded」(成功) 時,表示首次擷取作業已完成。

    視資料大小而定,可能需要數分鐘至數小時才能擷取完畢。

設定資料來源並首次匯入資料後,資料儲存庫會按照您在設定期間選取的頻率,從該來源同步資料。建立資料連接器後約一小時,系統就會進行首次同步。下一次同步處理會在 24 小時、72 小時或 120 小時後進行。

後續步驟

  • 如要將資料儲存庫連結至應用程式,請按照「建立搜尋應用程式」中的步驟,建立應用程式並選取資料儲存庫。

  • 如要在設定應用程式和資料儲存庫後,預覽搜尋結果的顯示方式,請參閱「預覽搜尋結果」。