從 Spanner 匯入

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

從其他專案設定 Spanner 存取權

如果 Spanner 資料與 Gemini Enterprise 位於同一個專案,請跳至「從 Spanner 匯入資料」。

如要授予 Gemini Enterprise 權限,存取其他專案中的 Spanner 資料,請按照下列步驟操作:

  1. 將下列 PROJECT_NUMBER 變數替換為您的 Gemini Enterprise 專案編號,然後複製這個程式碼區塊的內容。這是您的 Gemini Enterprise 服務帳戶 ID:

    service-PROJECT_NUMBER@gcp-sa-discoveryengine.
    
  2. 前往「IAM & Admin」(IAM 與管理) 頁面。

    IAM 與管理

  3. 在「IAM 與管理」頁面中切換至 Spanner 專案,然後按一下「授予存取權」

  4. 在「新增主體」中,輸入服務帳戶的 ID,然後選取下列其中一個選項:

    • 如果匯入期間不會使用 Data Boost,請選取「Cloud Spanner」>「Cloud Spanner Database Reader」角色。
    • 如要在匯入期間使用 Data Boost,請選取「Cloud Spanner」>「Cloud Spanner 資料庫管理員」角色,或是具有「Cloud Spanner 資料庫讀取者」和「spanner.databases.useDataBoost」權限的自訂角色。如要瞭解 Data Boost,請參閱 Spanner 說明文件中的「Data Boost 總覽」。
  5. 按一下 [儲存]

接著,請參閱「從 Spanner 匯入資料」。

從 Spanner 匯入資料

控制台

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

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

    Gemini Enterprise

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

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

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

  5. 指定要匯入資料的專案 ID、執行個體 ID、資料庫 ID 和資料表 ID。

  6. 選取是否要開啟「資料加速」功能。如要瞭解 Data Boost,請參閱 Spanner 說明文件中的「Data Boost 總覽」。

  7. 按一下「繼續」

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

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

  10. 點選「建立」

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

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

REST

如要使用指令列建立資料儲存庫,並從 Spanner 擷取資料,請按照下列步驟操作:

  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/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
      "contentConfig": "CONTENT_REQUIRED",
    }'
    

    更改下列內容:

    • PROJECT_ID:Gemini Enterprise 專案的 ID。
    • DATA_STORE_ID:資料儲存庫的 ID。ID 只能包含小寫英文字母、數字、底線和連字號。
    • DISPLAY_NAME:資料儲存庫的顯示名稱。這可能會顯示在 Google Cloud 控制台。
  2. 從 Spanner 匯入資料。

      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 '{
        "cloudSpannerSource": {
          "projectId": "SPANNER_PROJECT_ID",
          "instanceId": "INSTANCE_ID",
          "databaseId": "DATABASE_ID",
          "tableId": "TABLE_ID",
          "enableDataBoost": "DATA_BOOST_BOOLEAN"
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

    更改下列內容:

    • PROJECT_ID:Gemini Enterprise 專案的 ID。
    • DATA_STORE_ID:資料儲存庫的 ID。
    • SPANNER_PROJECT_ID:Spanner 專案的 ID。
    • INSTANCE_ID:Spanner 執行個體的 ID。
    • DATABASE_ID:Spanner 資料庫的 ID。
    • TABLE_ID:Spanner 資料表的 ID。
    • DATA_BOOST_BOOLEAN:選用。是否要開啟「數據用量提升」功能。 如要瞭解 Data Boost,請參閱 Spanner 說明文件中的「Data Boost 總覽」。
    • RECONCILIATION_MODE:選用。值為 FULLINCREMENTAL。預設值為 INCREMENTAL。指定 INCREMENTAL 會導致系統從 Spanner 遞增更新資料至資料儲存庫。這會執行 upsert 作業,新增文件並以 ID 相同的更新文件取代現有文件。指定 FULL 會導致資料儲存庫中的文件完全重新建立基準。換句話說,系統會將新的和更新的文件新增至資料儲存庫,並從資料儲存庫中移除不在 Spanner 中的文件。如果您想自動刪除不再需要的檔案,FULL 模式會很有幫助。
    • AUTO_GENERATE_IDS:選用。指定是否要自動產生文件 ID。如果設為 true,系統會根據酬載的雜湊值產生文件 ID。請注意,多次匯入時,產生的文件 ID 可能不一致。如果您在多次匯入時自動產生 ID,Google 強烈建議將 reconciliationMode 設為 FULL,以維持文件 ID 的一致性。

    • ID_FIELD:選用。指定哪些欄位是文件 ID。

後續步驟

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

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