從 Cloud SQL 同步處理

如要從 Cloud SQL 擷取資料,請按照下列步驟設定 Cloud SQL 存取權、建立資料儲存庫,以及擷取資料。

設定 Cloud SQL 執行個體的暫存值區存取權

從 Cloud SQL 擷取資料時,資料會先暫存至 Cloud Storage 值區。請按照下列步驟,授予 Cloud SQL 執行個體 Cloud Storage 值區的存取權。

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

    SQL

  2. 按一下要匯入資料的 Cloud SQL 執行個體。

  3. 複製執行個體服務帳戶的 ID,看起來像是電子郵件地址,例如 p9876-abcd33f@gcp-sa-cloud-sql.iam.gserviceaccount.com

  4. 前往「IAM & Admin」(IAM 與管理) 頁面。

    IAM 與管理

  5. 按一下「授予存取權」

  6. 在「新增主體」中輸入執行個體的服務帳戶 ID,然後選取「Cloud Storage」>「Storage 管理員」角色。

  7. 按一下 [儲存]

下一個:

  • 如果 Cloud SQL 資料與 Gemini Enterprise 位於相同專案: 請前往「從 Cloud SQL 匯入資料」

  • 如果 Cloud SQL 資料與 Gemini Enterprise 專案位於不同專案:請參閱從其他專案設定 Cloud SQL 存取權

設定從其他專案存取 Cloud SQL

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

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

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

    IAM 與管理

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

  4. 在「新增主體」部分,輸入服務帳戶的 ID,然後選取「Cloud SQL」>「Cloud SQL 檢視者」角色。

  5. 按一下 [儲存]

接著,請參閱從 Cloud SQL 匯入資料

從 Cloud SQL 匯入資料

控制台

如要透過控制台擷取 Cloud SQL 的資料,請按照下列步驟操作:

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

    Gemini Enterprise

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

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

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

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

  6. 按一下「瀏覽」,選擇要將資料匯出至哪個 Cloud Storage 中間位置,然後按一下「選取」。你也可以直接在「gs://」欄位中輸入位置。

  7. 選取是否要啟用無伺服器匯出功能。無伺服器匯出功能會產生額外費用。如要瞭解無伺服器匯出功能,請參閱 Cloud SQL 說明文件中的「將匯出作業對效能的影響降到最低」一文。

  8. 按一下「繼續」

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

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

  11. 點選「建立」

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

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

REST

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

  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"],
    }'
    

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • DATA_STORE_ID:資料儲存庫的 ID。ID 只能包含小寫英文字母、數字、底線和連字號。
    • DISPLAY_NAME:資料儲存庫的顯示名稱。這可能會顯示在 Google Cloud 控制台。
  2. 從 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:選用。值為 FULLINCREMENTAL。預設值為 INCREMENTAL。指定 INCREMENTAL 會導致資料從 Cloud SQL 遞增重新整理至資料存放區。這會執行 upsert 作業,新增文件並以 ID 相同的更新文件取代現有文件。指定 FULL 會導致資料儲存庫中的文件完全重新設定基準。換句話說,系統會將新文件和更新的文件新增至資料存放區,並從資料存放區中移除不在 Cloud SQL 中的文件。如果您想自動刪除不再需要的文件,可以啟用 FULL 模式。

後續步驟

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

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