메뉴 닫기

자연어로 SQL을 자동 생성하는 대화형 데이터 어시스턴트 구축하기

AWS Bedrock를 활용한 대화형 데이터 어시스턴트 구축: 자연어를 SQL로 자동 변환하는 방법

도입

현재 많은 기업들이 데이터 분석을 필요한 시점에서 빠르게 진행하지 못하는 이유는 SQL 쿼리를 직접 작성해야 하기 때문입니다. 특히 비기술적 사용자에게는 SQL 문법을 이해하고 데이터베이스 스키마를 파악하는 것이 큰 장벽이 되며, 데이터팀에 반복적인 요청을 쏟아내게 됩니다. 이를 해결하기 위해 Amazon AWS는 Amazon Bedrock을 기반으로 한 대화형 데이터 어시스턴트(RRDA, Returns & ReCommerce Data Assist)를 구축했습니다. 이 글에서는 RRDA 아키텍처와 핵심 기능들을 통해 대화형 방식으로 자연어를 SQL로 변환하는 방법, 이를 실현한 기술과 자동화 전략에 대해 소개합니다.

본문

  1. 텍스트-투-SQL의 개요와 필요성

기존의 BI 도구들이 시각화를 제공하긴 하지만 여전히 쿼리 작성은 수작업에 의존하는 경향이 큽니다. 텍스트-투-SQL 솔루션은 사용자의 자연어 질문을 기반으로 SQL 쿼리를 자동 생성하여 이러한 문제를 해결합니다. 핵심 절차는 아래와 같습니다:

  • 사용자 의도 분석 및 정보 추출
  • 데이터베이스 스키마와의 매핑
  • 문법적으로 올바른 SQL 쿼리 생성
  1. RRDA 구성 아키텍처

Amazon WWRR 팀은 연간 45만 건 이상의 SQL 요청을 처리하는 Amazon Redshift 기반의 데이터 환경을 대상으로 RRDA를 구축했습니다. RRDA는 자연어 질문을 실시간으로 처리하며, Amazon API Gateway와 AWS Lambda를 통해 서버리스 구조로 동작합니다.

RRDA 아키텍처 다이어그램

위의 아키텍처는 두 가지 주요 흐름으로 나뉩니다: 상단 경로는 SQL 쿼리 생성을 위한 Bedrock Agent 경로이고, 하단 경로는 Amazon Q in QuickSight를 통한 시각화 요청 처리 경로입니다.

  1. 사용자 의도 및 도메인 분류 자동화

모든 사용자의 입력은 INFO, QUERY, SHOW_METRIC, UNKNOWN 네 가지로 분류되며, 각 의도에 따라 적절한 액션 그룹이나 시각화 도구로 라우팅됩니다. 이 분류는 Bedrock의 경량 파운데이션 모델(FM)을 사용하여 대화 이력을 고려해 실시간으로 수행됩니다. 동시에 비즈니스 도메인(RP, 프로모션 등)도 함께 분류됩니다.

QUERY 의도에 따른 SQL 생성 예시 화면

  1. Bedrock Agent 및 액션 그룹 구조

RRDA는 Amazon Bedrock의 에이전트 기능을 기반으로 다양한 작업을 수행합니다. Claude 3.5 Haiku 모델이 RetrieveFromKnowledgeBase, FetchTableSchema 등 여러 액션 그룹과 연동되고, SQL 생성을 위한 로직은 Claude 3.7 Sonnet에 위임됩니다.

RRDA 하이브리드 에이전트 시퀀스 다이어그램

  1. 메트릭 사전과 테이블 스키마 자동화

RRDA는 1,000개 이상의 메트릭 정의가 포함된 메트릭 사전을 바탕으로, 사용자의 질문에 도메인 필터링을 적용한 후 정확한 정의와 SQL 표현식을 불러옵니다.

테이블 정보는 AWS Glue, Redshift, DynamoDB, Step Functions 기반 파이프라인으로 자동 수집하여 메타데이터 저장소에 갱신하며, 컬럼 값 예시와 사용 설명까지 포함됩니다.

테이블 메타데이터 자동 수집 파이프라인 구성도

  1. 고품질 SQL 생성 및 실시간 유효성 검증

Bedrock Agent는 SQL의 반환 제어 기능을 통해 Claude 3.7 Sonnet이 생성한 SQL 코드를 받은 뒤, Redshift의 EXPLAIN 명령으로 구문 오류를 검증합니다. 오류가 발생할 경우 자동으로 수정을 반복하며 최종적으로 유효한 SQL을 사용자에게 제공합니다.

  1. 신뢰 기반 사용자 경험 설계

RRDA는 신뢰를 확보하기 위해 다음과 같은 기능을 제공합니다:

  • Agent 액션 로그 확인 기능
  • SQL 문법 검증 표시 배지

유효성 검증이 완료된 SQL 배지 표시

  • 확인된 질문에 대한 정답 캐시
  • 실시간 진행 현황 및 처리 상태 시각화 표시

실시간 에이전트 처리 상태 표시 예시

  1. 구축을 위한 활용 팁 및 배포 가이드

RRDA 구축에서 발견한 다음과 같은 베스트 프랙티스를 문서화했습니다:

  • 도메인 기반 맥락 적용으로 정확도 향상
  • 소형 모델과 대형 모델 하이브리드 아키텍처 활용
  • 실행하지 않고 SQL 유효성 검증만 수행
  • 메타데이터 자동화 파이프라인 구성
  • 사용자에게 과정을 시각적으로 공유하여 신뢰 구축

결론

Amazon WWRR의 RRDA 구축 사례는 자연어 기반 분석 자동화, 즉 텍스트-투-SQL의 활용 가능성을 잘 보여주고 있습니다. Bedrock Agent, Claude 모델, 실시간 Redshift 유효성 검증을 통합한 이 시스템은 비기술 사용자도 몇 분 이내에 정답에 다가갈 수 있도록 도와줍니다. 비즈니스 분석 자동화와 셀프서비스 데이터 접근성을 높이고 싶다면 RRDA 아키텍처는 최적의 참고사례가 될 것입니다.

원문: https://aws.amazon.com/blogs/machine-learning/build-a-conversational-data-assistant-part-1-text-to-sql-with-amazon-bedrock-agents/

AI, Cloud 관련한 문의는 아래 연락처로 연락주세요!

(주)에이클라우드
이메일 : acloud@a-cloud.co.kr
회사 번호 : 02-538-3988
회사 홈페이지 : https://www.a-cloud.co.kr/
문의하기


AI, Cloud 도입 상담 배너