如要從 Cloud SQL 擷取資料,請按照下列步驟設定 Cloud SQL 存取權、建立資料儲存庫,以及擷取資料。
設定 Cloud SQL 執行個體的暫存值區存取權
從 Cloud SQL 擷取資料時,資料會先暫存至 Cloud Storage 值區。請按照下列步驟,授予 Cloud SQL 執行個體 Cloud Storage 值區的存取權。
前往 Google Cloud 控制台的「SQL」頁面。
按一下要匯入資料的 Cloud SQL 執行個體。
複製執行個體服務帳戶的 ID,看起來像是電子郵件地址,例如
p9876-abcd33f@gcp-sa-cloud-sql.
。前往「IAM & Admin」(IAM 與管理) 頁面。
按一下「授予存取權」。
在「新增主體」中輸入執行個體的服務帳戶 ID,然後選取「Cloud Storage」>「Storage 管理員」角色。
按一下 [儲存]。
下一個:
如果 Cloud SQL 資料與 Gemini Enterprise 位於相同專案: 請前往「從 Cloud SQL 匯入資料」。
如果 Cloud SQL 資料與 Gemini Enterprise 專案位於不同專案:請參閱從其他專案設定 Cloud SQL 存取權。
設定從其他專案存取 Cloud SQL
如要授予 Gemini Enterprise 存取其他專案中 Cloud SQL 資料的權限,請按照下列步驟操作:
將下列
PROJECT_NUMBER
變數替換為您的 Gemini Enterprise 專案編號,然後複製程式碼區塊的內容。這是您的 Gemini Enterprise 服務帳戶 ID:service-PROJECT_NUMBER@gcp-sa-discoveryengine.
前往「IAM & Admin」(IAM 與管理) 頁面。
在「IAM 與管理」頁面中切換至 Cloud SQL 專案,然後按一下「授予存取權」。
在「新增主體」部分,輸入服務帳戶的 ID,然後選取「Cloud SQL」>「Cloud SQL 檢視者」角色。
按一下 [儲存]。
接著,請參閱從 Cloud SQL 匯入資料。
從 Cloud SQL 匯入資料
控制台
如要透過控制台擷取 Cloud SQL 的資料,請按照下列步驟操作:
前往 Google Cloud 控制台的「Gemini Enterprise」頁面。
前往「Data Stores」(資料儲存庫) 頁面。
點選「Create Data Store」(建立資料儲存庫)。
在「Select a data source」(選取資料來源) 頁面中,選取「Cloud SQL」。
指定要匯入資料的專案 ID、執行個體 ID、資料庫 ID 和資料表 ID。
按一下「瀏覽」,選擇要將資料匯出至哪個 Cloud Storage 中間位置,然後按一下「選取」。你也可以直接在「
gs://
」欄位中輸入位置。選取是否要啟用無伺服器匯出功能。無伺服器匯出功能會產生額外費用。如要瞭解無伺服器匯出功能,請參閱 Cloud SQL 說明文件中的「將匯出作業對效能的影響降到最低」一文。
按一下「繼續」。
選擇資料儲存庫的區域。
輸入資料儲存庫的名稱。
點選「建立」。
接著需要檢查擷取狀態,請前往「Data stores」(資料儲存庫) 頁面,點按資料儲存庫名稱,即可在相應的「Data」(資料) 頁面查看該儲存庫的詳細資料。「Activity」(活動) 分頁的狀態欄從「In progress」(進行中) 變為「Import completed」(匯入完成) 時,表示擷取作業已完成。
視資料大小而定,擷取作業可能需要數分鐘至數小時才能完成。
REST
如要使用指令列建立資料儲存庫,並從 Cloud SQL 擷取資料,請按照下列步驟操作:
建立資料儲存庫。
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"], }'
更改下列內容:
PROJECT_ID
:專案 ID。DATA_STORE_ID
:資料儲存庫的 ID。ID 只能包含小寫英文字母、數字、底線和連字號。DISPLAY_NAME
:資料儲存庫的顯示名稱。這可能會顯示在 Google Cloud 控制台。
從 Cloud SQL 匯入資料。
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 '{ "cloudSqlSource": { "projectId": "SQL_PROJECT_ID", "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "tableId": "TABLE_ID", "gcsStagingDir": "STAGING_DIRECTORY" }, "reconciliationMode": "RECONCILIATION_MODE", "autoGenerateIds": "AUTO_GENERATE_IDS", "idField": "ID_FIELD", }'
更改下列內容:
PROJECT_ID
:Gemini Enterprise 專案的 ID。DATA_STORE_ID
:資料儲存庫的 ID。ID 只能包含小寫英文字母、數字、底線和連字號。SQL_PROJECT_ID
:Cloud SQL 專案的 ID。INSTANCE_ID
:Cloud SQL 執行個體的 ID。DATABASE_ID
:Cloud SQL 資料庫的 ID。TABLE_ID
:Cloud SQL 資料表的 ID。STAGING_DIRECTORY
:選用。Cloud Storage 目錄,例如gs://<your-gcs-bucket>/directory/import_errors
。RECONCILIATION_MODE
:選用。值為FULL
和INCREMENTAL
。預設值為INCREMENTAL
。指定INCREMENTAL
會導致資料從 Cloud SQL 遞增重新整理至資料存放區。這會執行 upsert 作業,新增文件並以 ID 相同的更新文件取代現有文件。指定FULL
會導致資料儲存庫中的文件完全重新設定基準。換句話說,系統會將新文件和更新的文件新增至資料存放區,並從資料存放區中移除不在 Cloud SQL 中的文件。如果您想自動刪除不再需要的文件,可以啟用FULL
模式。