如要從 Spanner 擷取資料,請按照下列步驟,使用 Google Cloud 控制台或 API 建立資料儲存庫並擷取資料。
從其他專案設定 Spanner 存取權
如果 Spanner 資料與 Gemini Enterprise 位於同一個專案,請跳至「從 Spanner 匯入資料」。
如要授予 Gemini Enterprise 權限,存取其他專案中的 Spanner 資料,請按照下列步驟操作:
- 將下列 - PROJECT_NUMBER變數替換為您的 Gemini Enterprise 專案編號,然後複製這個程式碼區塊的內容。這是您的 Gemini Enterprise 服務帳戶 ID:- service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
- 前往「IAM & Admin」(IAM 與管理) 頁面。 
- 在「IAM 與管理」頁面中切換至 Spanner 專案,然後按一下「授予存取權」。 
- 在「新增主體」中,輸入服務帳戶的 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 總覽」。
 
- 按一下 [儲存]。 
接著,請參閱「從 Spanner 匯入資料」。
從 Spanner 匯入資料
控制台
如要使用控制台擷取 Spanner 的資料,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Gemini Enterprise」頁面。 
- 前往「Data Stores」(資料儲存庫) 頁面。 
- 點選「Create Data Store」(建立資料儲存庫)。 
- 在「Select a data source」(選取資料來源) 頁面中,選取「Cloud Spanner」。 
- 指定要匯入資料的專案 ID、執行個體 ID、資料庫 ID 和資料表 ID。 
- 選取是否要開啟「資料加速」功能。如要瞭解 Data Boost,請參閱 Spanner 說明文件中的「Data Boost 總覽」。 
- 按一下「繼續」。 
- 選擇資料儲存庫的區域。 
- 輸入資料儲存庫的名稱。 
- 點選「建立」。 
- 接著需要檢查擷取狀態,請前往「Data stores」(資料儲存庫) 頁面,點按資料儲存庫名稱,即可在相應的「Data」(資料) 頁面查看該儲存庫的詳細資料。「Activity」(活動) 分頁的狀態欄從「In progress」(進行中) 變為「Import completed」(匯入完成) 時,表示擷取作業已完成。 - 視資料大小而定,擷取作業可能需要數分鐘至數小時才能完成。 
REST
如要使用指令列建立資料儲存庫,並從 Spanner 擷取資料,請按照下列步驟操作:
- 建立資料儲存庫。 - 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 控制台。
 
- 從 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:選用。值為- FULL和- INCREMENTAL。預設值為- INCREMENTAL。指定- INCREMENTAL會導致系統從 Spanner 遞增更新資料至資料儲存庫。這會執行 upsert 作業,新增文件並以 ID 相同的更新文件取代現有文件。指定- FULL會導致資料儲存庫中的文件完全重新建立基準。換句話說,系統會將新的和更新的文件新增至資料儲存庫,並從資料儲存庫中移除不在 Spanner 中的文件。如果您想自動刪除不再需要的檔案,- FULL模式會很有幫助。
- AUTO_GENERATE_IDS:選用。指定是否要自動產生文件 ID。如果設為- true,系統會根據酬載的雜湊值產生文件 ID。請注意,多次匯入時,產生的文件 ID 可能不一致。如果您在多次匯入時自動產生 ID,Google 強烈建議將- reconciliationMode設為- FULL,以維持文件 ID 的一致性。
- ID_FIELD:選用。指定哪些欄位是文件 ID。