如要從 Bigtable 擷取資料,請按照下列步驟建立資料儲存庫,並使用 API 擷取資料。
設定 Bigtable 存取權
如要授予 Gemini Enterprise 存取其他專案中 Bigtable 資料的權限,請按照下列步驟操作:
將下列
PROJECT_NUMBER
變數替換為 Gemini Enterprise 專案編號,然後複製這個程式碼區塊的內容。這是您的 Gemini Enterprise 服務帳戶 ID:service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com`
前往「IAM & Admin」(IAM 與管理) 頁面。
在「IAM 與管理」頁面中切換至 Bigtable 專案,然後按一下「授予存取權」。
在「新增主體」中,輸入執行個體的服務帳戶 ID,然後選取「Bigtable」>「Bigtable Reader」角色。
按一下 [儲存]。
切換回 Gemini Enterprise 專案。
接著,請前往「從 Bigtable 匯入資料」。
從 Bigtable 匯入資料
REST
如要使用指令列建立資料儲存庫,並從 Bigtable 擷取資料,請按照下列步驟操作:
建立資料儲存庫。
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 控制台。
從 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
:選用。值為FULL
和INCREMENTAL
。預設值為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。