QueryData는 AI 에이전트와 애플리케이션이 자연어를 사용하여 운영 데이터베이스를 쿼리할 수 있는 Conversational Analytics API의 자연어-SQL (NL2SQL) 도구입니다. 애플리케이션 또는 에이전트가 자연어를 사용하여 질문을 전송하면 QueryData는 질문을 언어별 SQL 쿼리로 변환하고 데이터베이스에 대해 쿼리를 실행한 후 생성된 SQL 및 QueryData가 질문을 해석한 방식에 대한 설명과 함께 쿼리 결과를 반환합니다.
데이터베이스에서 QueryData를 사용하는 방법에 대한 자세한 내용은 지원되는 데이터베이스 문서를 참조하세요.
- PostgreSQL용 AlloyDB: QueryData 개요
- MySQL용 Cloud SQL: QueryData 개요
- PostgreSQL용 Cloud SQL: QueryData 개요
- Spanner: QueryData 개요(GoogleSQL 언어 데이터베이스)
- MongoDB 호환성을 갖춘 Firestore: QueryData 개요
주요 기능
QueryData는 에이전트형 데이터베이스 애플리케이션에 다음과 같은 기능을 제공합니다.
- 높은 정확성: 데이터베이스 스키마 메타데이터를 선별한 컨텍스트 세트와 결합하여 비즈니스에 중요한 쿼리에서 100% 에 가까운 정확성을 달성합니다.
- 비즈니스 관련성: 원시 테이블 및 열 이름에만 의존하는 대신 조직의 도메인 용어, 측정항목 정의, 비즈니스 로직을 기반으로 SQL 생성을 그라운딩합니다.
- 설명 가능성: 합성된 SQL 쿼리 및 자연어 답변과 함께 인간이 읽을 수 있는 인텐트 설명을 생성하여 사용자와 사용자가 QueryData가 요청을 변환한 방식을 확인할 수 있습니다.
- 데이터 보안: AlloyDB, MySQL용 Cloud SQL, PostgreSQL용 Cloud SQL에서 파라미터화된 보안 뷰를 사용하여 행 수준 액세스 제어를 시행하고 프롬프트 인젝션으로부터 사용자 데이터를 보호합니다.
QueryData를 사용해야 하는 경우
QueryData는 운영 데이터베이스 데이터에 빠르고 예측 가능하며 정확하게 액세스해야 하는 대화형 애플리케이션과 AI 에이전트를 빌드하는 개발자를 위해 설계되었습니다. 예를 들어 QueryData는 다음과 같은 사용 사례에 적합합니다.
- 고객 서비스 자동화: '내 주문은 어디에 있나요?' 또는 '현재 계정 잔액은 얼마인가요?'와 같은 대량의 사용자 문의에 답변합니다.
- 전자상거래 및 카탈로그 검색 어시스턴트: 사용자가 'RAM이 16GB 이상이고 배터리 수명이 10시간 이상인 가벼운 노트북을 보여줘'와 같은 다중 기준 질문을 통해 구조화된 카탈로그를 필터링하고 탐색할 수 있도록 지원합니다.
- 현장 운영 및 내부 도구: 직원이 실시간 인벤토리 수준, 부품 가용성 또는 서비스 티켓 상태를 실시간으로 쿼리할 수 있습니다.
- 멀티 에이전트 워크플로: 에이전트 개발 키트 (ADK), 데이터베이스용 MCP 도구 상자 또는 LangChain과 같은 에이전트 프레임워크에서 구조화된 데이터베이스 쿼리를 도구로 노출합니다.
QueryData 작동 방식
일반 대규모 언어 모델 (LLM)에는 조직의 비공개 데이터 값, 암호화된 열 이름 또는 도메인별 비즈니스 규칙에 대한 정보가 없습니다. 사용자가 질문하는 방식과 데이터베이스가 데이터를 저장하는 방식 간의 격차를 해소하기 위해 QueryData는 다음과 같은 계층화된 컨텍스트를 사용합니다.
- 스키마 온톨로지: 테이블, 열, 상태 코드, 조인 관계의 비즈니스 의미를 설명하는 데이터베이스 카탈로그 또는 Knowledge Catalog의 보강된 테이블 및 열 설명입니다.
- 컨텍스트 세트: 다음 세 가지 구성요소를 정의하는 데이터베이스 인스턴스와 연결된 선별된 컬렉션입니다.
- 쿼리 템플릿: 검증되고 파라미터화된 SQL 문 및 인텐트 설명과 페어링된 대표적인 자연어 질문입니다.
- 쿼리 가짓수: QueryData가 쿼리 템플릿과 동적으로 결합하여 모든 필터 조합에 별도의 템플릿을 요구하지 않고도 가짓수 검색을 지원하는 모듈식 SQL 조건자 및 필터 프래그먼트입니다.
- 값 검색: 비공식적인 사용자 문구, 동의어 또는 맞춤법이 틀린 용어를 데이터베이스의 실제 값 및 열에 연결하는 정확한 검색, 퍼지 트라이그램 검색 또는 시맨틱 벡터 검색 쿼리입니다.
애플리케이션이 Conversational Analytics API에서 projects.locations.queryData 메서드를 호출하면 QueryData는 다음 단계를 수행합니다.
- 값 확인: 데이터베이스에 대해 값 검색 쿼리를 실행하여 프롬프트의 항목 문구 (예: 도시 이름, 제품 카테고리 또는 코드)를 정확한 데이터베이스 열 값에 매핑합니다.
- 인텐트 일치 및 모호성 해소: 사용자의 질문을 컨텍스트 집합의 쿼리 템플릿 및 상품 속성과 스키마 온톨로지와 일치시킵니다. 질문이 모호하거나 필수 매개변수가 누락된 경우 QueryData는 사용자의 인텐트를 명확히 하기 위해 모호성 해소 질문을 반환할 수 있습니다.
- 쿼리 합성: 일치하는 템플릿 구조, 적용 가능한 패싯, 확인된 리터럴 값을 결합하거나 일치하는 템플릿이 없는 경우 스키마 온톨로지에서 SQL을 생성하여 언어별 SQL 쿼리를 합성합니다.
- 쿼리 실행 및 응답: 대상 데이터베이스에 대해 생성된 SQL을 실행하고 테이블 형식 결과 집합, 생성된 SQL 쿼리, 의도 설명, 선택적 자연어 요약을 반환합니다.
정확도가 100% 에 가까운 Text-to-SQL을 달성하기 위한 전략
Text-to-SQL의 정확도를 100% 에 가깝게 달성하는 것은 힐 클라이밍이라고 하는 반복적인 엔지니어링 프로세스입니다. 가능한 모든 사용자 질문을 미리 예측하는 대신 기준 스키마 설명으로 시작하고, EvalBench를 사용하여 골든 SQL 쿼리의 대표 벤치마크를 기준으로 에이전트를 평가한 후 정확성 격차를 해결합니다.
아키텍처 다이어그램, SQL 예시, 평가 벤치마크를 포함하여 정확성 격차를 해결하기 위한 권장 전략 (또는 레시피)에 대한 자세한 내용은 정확도가 100% 에 가까운 텍스트-SQL을 달성하는 6가지 레시피를 참조하고 함께 제공되는 Codelab을 통해 이러한 텍스트-SQL 정확성 레시피를 구현하는 방법을 알아보세요.
요약하면 6가지 레시피는 다음과 같습니다.
- 레시피 0: 컨텍스트 세트를 초기화하고 애플리케이션을 연결합니다. 스키마의 설명 테이블 및 열 주석으로 시작하고 대화형 분석 API 클라이언트 라이브러리 또는 데이터베이스용 MCP 도구 상자의
cloud-gemini-data-analytics-query도구를 사용하여 애플리케이션을 QueryData에 연결합니다. - 방법 1: 쿼리 템플릿으로 해석을 삽입합니다. 가장 중요한 비즈니스 질문에 대해 검증된 SQL 쿼리 예시를 제공하고, 이를 파라미터화된 SQL 템플릿, 파라미터화된 인텐트 설명, 의미론적으로 동일한 질문 변형을 포착하는 매니페스트로 일반화합니다.
- 방법 2: 패싯 템플릿 사용 QueryData가 각 조건 조합에 대해 별도의 템플릿을 요구하지 않고도 다중 필터 쿼리를 동적으로 구성할 수 있도록 기본 쿼리 템플릿을 모듈식 쿼리 패싯 (자체 매니페스트 및 인텐트가 있는 재사용 가능한 SQL 조건)과 페어링합니다.
- 방법 3: 값 검색으로 모호성 해소 값 검색 쿼리를 정의하여 자연어 질문의 값 문구(내부 전용 용어, 동의어, 맞춤법 오류 포함)를 실제 데이터베이스 열 및 값에 연결하고, 용어가 여러 항목 유형과 일치하는 경우 QueryData가 명확한 설명을 요청하도록 합니다.
- 방법 4: 시맨틱 검색 및 AI 연산자 통합 정형 SQL 템플릿 및 패싯을 벡터 검색 및 데이터베이스 내 AI 연산자(예: AlloyDB의
AI.IF및AI.RANK)와 결합하여 시맨틱 기준을 사용해 비정형 텍스트 또는 멀티모달 데이터를 필터링하고 순위를 매깁니다. - 방법 5: 파라미터화된 보안 뷰 사용 AlloyDB, MySQL용 Cloud SQL, PostgreSQL용 Cloud SQL의 파라미터화된 보안 뷰에서 인증된 사용자 파라미터를 바인딩하여 엄격한 행 수준 보안을 적용하고 프롬프트 인젝션으로부터 사용자 데이터를 보호합니다.
이러한 레시피를 수동으로 적용하거나 오픈소스 컨텍스트 엔지니어링 에이전트를 사용하여 평가 세트 확장, EvalBench 평가 실행, 정확성 격차 분석, 새로운 템플릿, 패싯, 값 검색 제안과 같은 힐 클라이밍 워크플로를 자동화할 수 있습니다.
다음 단계
- 정확도가 100% 에 가까운 텍스트-SQL을 달성하는 6가지 레시피 백서를 읽어보세요.
- 데이터베이스의 QueryData 문서를 살펴봅니다.
- Conversational Analytics API에서 데이터베이스 데이터 소스의 데이터 에이전트 컨텍스트를 정의하는 방법을 알아보세요.
projects.locations.queryDataREST API 참조를 확인합니다.