AlloyDB 인스턴스를 Gemini Enterprise에 연결하여 데이터에 실시간으로 액세스할 수 있습니다.
AlloyDB에서 가져오는 것과 비교할 때 연결에는 다음과 같은 이점이 있습니다.
- 데이터를 가져오고, 색인을 생성하고, 중복할 필요가 없습니다.
- 최대 데이터 업데이트 간격입니다.
- 추가 색인 생성 및 스토리지 비용이 없습니다.
- 구조화된 데이터를 균일한 레코드로 평탄화할 필요가 없습니다.
가져오기와 비교했을 때 연결의 단점은 다음과 같습니다.
- 이 접근 방식은 구조화된 쿼리만 지원하며 시맨틱 또는 반시맨틱 쿼리는 지원하지 않습니다.
- 데이터를 가져오는 것보다 설정이 약간 더 복잡합니다.
제한사항
AlloyDB에 연결하는 데는 다음과 같은 제한사항이 있습니다.
- Gemini Enterprise는 테이블, 열과 같은 데이터베이스 객체 수준에서 액세스 제어를 지원하지만 사용자별 수준에서는 지원하지 않습니다. Gemini Enterprise 앱에 액세스할 수 있는 모든 사용자가 동일한 데이터를 볼 수 있습니다.
- AlloyDB 데이터 스토어 만들기는 Google Cloud 콘솔이 아닌 API를 통해 지원됩니다.
시작하기 전에
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.
PROJECT_NUMBER
를 Gemini Enterprise를 사용하는 Google Cloud 프로젝트 번호로 바꿉니다.AlloyDB 인스턴스에서 Gemini Enterprise가 SQL 쿼리를 실행하는 데 사용할 DB 사용자를 만듭니다.
이 사용자에게 Gemini Enterprise에서 액세스할 수 있어야 하는 테이블, 뷰, 열에 대해서만 읽기 전용 액세스 권한을 부여하는 것이 매우 중요합니다. 이렇게 하면 다음과 같은 이점이 있습니다.
Gemini Enterprise의 쿼리는 데이터를 변경하거나 삭제할 수 없습니다. Gemini Enterprise는 데이터베이스에서 데이터만 읽고 아무것도 변경하지 않도록 설계되었지만, 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
의 사용자 및 비밀번호 필드에 사용자 이름과 비밀번호를 입력합니다.
Gemini Enterprise를 AlloyDB와 연결
AlloyDB 인스턴스를 연결하려면 다음 단계를 따르세요.
federatedSearchConfig.alloyDbConfig
를 비롯한 AlloyDB 연결 세부정보를 사용하여 API로 Gemini Enterprise에서 데이터 스토어를 만듭니다.예를 들면 다음과 같습니다.
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 앱에 연결하거나 새 앱을 만들고 커넥터를 선택합니다.
앱을 설정한 후 검색 결과가 표시되는 방식을 미리 보려면 검색 결과 미리보기를 참고하세요.