您可以將 AlloyDB 執行個體連結至 Gemini Enterprise,即時存取資料。
相較於從 AlloyDB 匯入資料,連線有下列優點:
- 避免匯入、建立索引及複製資料。
- 資料更新間隔最短。
- 無須支付額外的索引和儲存空間費用。
- 不必將結構化資料扁平化為統一的記錄。
相較於匯入,連結有以下缺點:
- 這種方法只支援結構化查詢,不支援語意或半語意查詢。
- 與匯入資料相比,設定程序稍微複雜。
限制
連線至 AlloyDB 時,有下列限制:
- Gemini Enterprise 支援資料庫物件 (例如資料表和資料欄) 層級的存取控管,但不支援使用者層級的存取控管。所有有權存取 Gemini Enterprise 應用程式的使用者,都能看到相同的資料。
- 您可以使用 API 建立 AlloyDB 資料儲存庫,但無法透過 Google Cloud 控制台建立。
事前準備
連線至 AlloyDB 屬於預先發布版功能,目前僅開放部分使用者存取。如要使用這項功能,請填寫下列表單: 選擇啟用/停用 Gemini Enterprise,並連結至 AlloyDB 的資料
註冊後,請先等待收到啟用確認電子郵件,再按照本頁的說明操作。
設定 AlloyDB AI 自然語言
這個連接器依賴 AlloyDB 中的 AlloyDB AI 自然語言,可將自然語言查詢轉換為 SQL 查詢。
連線前,請按照 AlloyDB 文件中「生成可回答自然語言問題的 SQL 查詢」一文的步驟,在資料庫中設定 AlloyDB AI 自然語言。
請注意,在 AlloyDB AI 自然語言中新增範本 (一組精選的自然語言問題和對應的 SQL 查詢),對提升品質特別有幫助。新增範本時,Google 建議您採取下列做法:
請使用
ORDER BY
避免非決定性。例如:SELECT customers.id FROM customers ORDER BY customers.id;
。
設定 Gemini Enterprise 與 AlloyDB 之間的驗證
Gemini Enterprise 會使用專屬服務帳戶和 AlloyDB 執行個體中的資料庫使用者存取 AlloyDB。採用這種做法後,每位 Gemini Enterprise 使用者都能看到相同的資料,不必進行使用者專屬的存取權控管。
服務帳戶是用來連結 AlloyDB 執行個體並與之互動。如要啟用這項功能,您需要在資料庫執行個體所在的 Google Cloud 專案中,設定 Identity and Access Management (IAM) 設定。
如要設定驗證,請按照下列步驟操作:
- 前往 AlloyDB 執行個體所在專案的 IAM 設定頁面。
將 Cloud AlloyDB 資料庫使用者角色授予下列主體:
service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
將
PROJECT_NUMBER
替換為使用 Gemini Enterprise 的專案編號。 Google Cloud在 AlloyDB 執行個體中,建立供 Gemini Enterprise 執行 SQL 查詢的資料庫使用者。
請務必授予這位使用者唯讀存取權,且僅限於應可從 Gemini Enterprise 存取的資料表、檢視區塊和資料欄。這能確保:
Gemini Enterprise 的查詢無法變更或刪除您的資料。 Gemini Enterprise 的設計宗旨是只從資料庫讀取資料,不會變更任何內容,但 Google 無法完全排除 AI 可能產生非預期寫入查詢的可能性。
Gemini Enterprise 使用者只能查看自己應有的資料。
例如:
CREATE ROLE USER_NAME WITH LOGIN PASSWORD 'PASSWORD'; GRANT SELECT ON TABLE "public"."TABLE_NAME_1" TO USER_NAME; GRANT SELECT ON TABLE "public"."TABLE_NAME_2" TO USER_NAME;
將 Gemini Enterprise 連結至 AlloyDB 時,請在
alloydbConnectionConfig
的「User」和「Password」欄位中提供使用者名稱和密碼。
將 Gemini Enterprise 連結至 AlloyDB
如要連線至 AlloyDB 執行個體,請按照下列步驟操作:
使用 API 在 Gemini Enterprise 中建立資料儲存庫,並提供 AlloyDB 連線詳細資料,包括
federatedSearchConfig.alloyDbConfig
。以下範例會執行下列操作:
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/LOCATION/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" -d '{ "displayName": "DATA_STORE_NAME", "federatedSearchConfig": { "alloyDbConfig": { "alloydbConnectionConfig": { "instance": "INSTANCE_PATH", "database": "DATABASE_NAME", "user": "DATABASE_USER_NAME", "password": "DATABASE_USER_PASSWORD", "authMode": "AUTH_MODE_SERVICE_ACCOUNT" }, "alloydb_ai_nl_config": { "nlConfigId": "NL_CONFIG_ID" } } }, "industryVertical": "GENERIC", "solutionTypes": ["SOLUTION_TYPE_SEARCH"] }'
更改下列內容:
PROJECT_ID
:您使用 Gemini Enterprise 的專案 ID。LOCATION
:資料存放區的位置。這應與 Gemini Enterprise 執行個體位於同一個位置。DATA_STORE_ID
:要建立的資料儲存庫 ID。這個 ID 只能包含小寫英文字母、數字、底線和連字號。DATA_STORE_NAME
:要建立的資料存放區顯示名稱。INSTANCE_PATH
:AlloyDB 執行個體的路徑,格式為projects/.../locations/.../clusters/.../instances/...
。DATABASE_NAME
:AlloyDB 資料庫的 ID。DATABASE_USER_NAME
:AlloyDB 資料庫使用者的 ID。DATABASE_USER_PASSWORD
:AlloyDB 資料庫使用者的密碼。NL_CONFIG_ID
:AlloyDB AI 自然語言設定的 ID。
將資料儲存庫附加至現有的 Gemini Enterprise 應用程式,或按照「建立應用程式」中的步驟,建立新的應用程式並選取連接器。
如要在設定應用程式後,預覽搜尋結果的顯示方式,請參閱「預覽搜尋結果」。