從 Bigtable 匯入

如要從 Bigtable 擷取資料,請按照下列步驟建立資料儲存庫,並使用 API 擷取資料。

設定 Bigtable 存取權

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

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

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

    IAM 與管理

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

  4. 在「新增主體」中,輸入執行個體的服務帳戶 ID,然後選取「Bigtable」>「Bigtable Reader」角色。

  5. 按一下 [儲存]

  6. 切換回 Gemini Enterprise 專案。

接著,請前往「從 Bigtable 匯入資料」。

從 Bigtable 匯入資料

REST

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

  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. 從 Bigtable 匯入資料。

      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 '{
        "bigtableSource ": {
          "projectId": "BIGTABLE_PROJECT_ID",
          "instanceId": "INSTANCE_ID",
          "tableId": "TABLE_ID",
          "bigtableOptions": {
            "keyFieldName": "KEY_FIELD_NAME",
            "families": {
              "key": "KEY",
              "value": {
                "fieldName": "FIELD_NAME",
                "encoding": "ENCODING",
                "type": "TYPE",
                "columns": [
                  {
                    "qualifier": "QUALIFIER",
                    "fieldName": "FIELD_NAME",
                    "encoding": "COLUMN_ENCODING",
                    "type": "COLUMN_VALUES_TYPE"
                  }
                ]
              }
             }
             ...
          }
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
      }'
    

    更改下列內容:

    • PROJECT_ID:Gemini Enterprise 專案的 ID。
    • DATA_STORE_ID:資料儲存庫的 ID。ID 只能包含小寫英文字母、數字、底線和連字號。
    • BIGTABLE_PROJECT_ID:Bigtable 專案的 ID。
    • INSTANCE_ID:Bigtable 執行個體的 ID。
    • TABLE_ID:Bigtable 資料表的 ID。
    • KEY_FIELD_NAME:選用,但建議使用。將資料擷取至 Gemini Enterprise 後,要用於資料列鍵值的欄位名稱。
    • KEY:必填。資料欄系列鍵的字串值。
    • ENCODING:選用。類型不是 STRING 時的值編碼模式。如要為特定資料欄覆寫此模式,請在 columns 中列出該資料欄,並為其指定編碼。
    • COLUMN_TYPE:選用。這個資料欄系列中的值類型。
    • QUALIFIER:必填。資料欄的限定詞。
    • FIELD_NAME:選用,但建議使用。將資料擷取至 Gemini Enterprise 後,這個資料欄使用的欄位名稱。
    • COLUMN_ENCODING:選用。類型不是 STRING 時,特定資料欄值的編碼模式。
    • RECONCILIATION_MODE:選用。值為 FULLINCREMENTAL。預設值為 INCREMENTAL。指定 INCREMENTAL 會導致資料從 Bigtable 增量重新整理至資料儲存庫。這會執行 upsert 作業,新增文件並以 ID 相同的更新文件取代現有文件。指定 FULL 會導致資料儲存庫中的文件完全重新基準化。換句話說,系統會將新文件和更新的文件新增至資料存放區,並從資料存放區中移除不在 Bigtable 中的文件。如果您想自動刪除不再需要的文件,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。

後續步驟

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

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