Text to SQL(TTS)이란?
Text-to-SQL(TTS)은 사용자가 자연어로 입력한 질문을 SQL 쿼리로 변환해 주는 기능입니다. 사용자는 데이터베이스와 스키마를 선택한 뒤 질문을 입력하고, 생성된 SQL을 실행해 결과를 확인할 수 있습니다.
TTS는 설정된 LLM(대형 언어 모델)을 사용해 SQL을 생성합니다. 생성된 쿼리는 실행 전에 반드시 내용을 확인해 주세요.
사용 전 확인사항
•
조회하려는 데이터베이스와 스키마에 접근 권한이 있어야 합니다.
•
메타 테이블을 사용하도록 설정되어 있다면, TTS에서 사용할 테이블은 메타 테이블에 등록되어 있어야 합니다.
•
질문은 조회하려는 데이터, 조건, 집계 기준을 구체적으로 작성할수록 정확도가 높아집니다.
사용 방법
1.
상단 메뉴바에서 SQL ▾ → SQL Lab을 클릭합니다.
2.
좌측 패널에서 조회하려는 데이터베이스와 스키마를 선택합니다.
3.
우측 질문 입력칸에 질문을 입력한 뒤 생성하기 버튼을 클릭합니다.
4.
화면에 SQL 쿼리가 생성되면 제공되는 쿼리 생성 이유를 확인하고, 쿼리 내용을 확인합니다.
5.
실행하기 버튼을 클릭해 결과를 확인합니다.
6.
실행 결과와 질문 의도가 일치하는지 검토합니다.
결과 활용 방법
결과 데이터 활용
결과 창 상단의 버튼을 사용해 쿼리 결과를 다음 방식으로 활용할 수 있습니다.
1.
차트 생성: 결과 데이터를 기반으로 차트를 생성합니다. 차트를 저장하면 해당 쿼리로 구성된 가상 테이블도 함께 저장됩니다.
2.
CSV 형식으로 다운로드: 쿼리 결과 데이터를 CSV 파일로 다운로드합니다.
3.
클립보드에 복사하기: 쿼리 결과 데이터를 시스템 클립보드에 복사합니다.
쿼리 또는 가상 테이블로 저장
생성된 SQL을 ABI에 쿼리 또는 가상 테이블로 저장하려면 저장하기 또는 저장하기 우측 화살표 버튼을 클릭합니다.
1.
저장하기 : 작성된 쿼리를 ABI에 저장합니다. 저장된 쿼리는 상단 메뉴바의 SQL → 저장된 쿼리에서 확인할 수 있습니다.
2.
데이터셋 저장하기 : 작성된 쿼리로 구성된 가상 테이블을 ABI에 저장합니다. 저장된 테이블은 상단 메뉴바의 데이터셋에서 확인할 수 있습니다.
주의사항
메타 테이블 관리(관리자 기능)
TTS는 데이터의 내용, 구조, 업무 규칙을 스스로 정확히 파악할 수 없습니다.
정확한 SQL 생성을 위해 관리자는 메타 테이블에 테이블 설명, 컬럼 설명, 코드값 의미, 조인 규칙, 중복값 처리 방식 등 LLM이 참고할 수 있는 정보를 등록해야 합니다.
컬럼명 | 설명 | 예시 |
db_name | superset에 등록된 데이터베이스명 입력 | PostgreSQL |
schema_name | SQL 편집기(SQL Editor)에서 조회할 스키마명 입력 | adventureworks |
table_name | 테이블명 입력 | adventureworks_product_categories |
column_name | 컬럼명 입력 | 제품카테고리키, 카테고리명 |
table_yn | 테이블 여부 확인. | Y 또는 N |
similar_word | 유사 단어 입력 | 제품대분류, 상품대분류 |
comment | 설명 입력 | 고객 정보 테이블
adventureworks_sales 테이블과 고객고유키로 조인할 수 있음 |
remark | 컬럼 설명 및 조인 관련된 참고 사항 입력 | 생년월일:
문자형식, 예) 'MM/DD/YYYY'
연봉정보:
문자형식, 예) ‘$80,000’
쿼리에 사용할 땐 숫자만 추출 후 숫자타입으로 변환하여 사용해야함 |
메타 테이블에는 다음 정보가 포함되어야 합니다.
•
테이블의 업무상 의미
•
주요 컬럼명과 컬럼 설명
•
코드값 또는 약어의 의미
•
테이블 간 조인 기준
•
스키마에 명시되지 않은 업무 규칙
•
중복값 처리, 형 변환, 집계 기준 등 쿼리 작성 시 필요한 참고사항
메타 테이블을 사용하도록 설정되어 있다면, 메타 테이블에 등록된 테이블만 TTS에서 사용할 수 있습니다. (메타 테이블 사용여부는 관리자에게 문의하세요.)
토큰 초과 시 대응 방법
TTS 요청에서 사용하는 메타데이터가 많으면 LLM 토큰 제한을 초과할 수 있습니다. 토큰 초과가 발생하면 다음 방법을 검토합니다.
1.
메타 테이블에 등록된 테이블 목록을 필요한 범위로 줄입니다.
2.
테이블 및 컬럼 주석을 짧고 명확하게 요약합니다.
3.
테이블명과 컬럼명을 의미를 추측할 수 있는 이름으로 정리하고, 중복 설명은 제거합니다.
4.
자주 사용하지 않는 컬럼 설명은 제외하거나 별도 문의 흐름으로 분리합니다.
5.
더 큰 토큰 수를 지원하는 모델로 변경이 필요한 경우 관리자에게 문의합니다.
좋은 질문 작성 팁
•
기간, 조건, 정렬 기준을 함께 입력합니다.
•
필요한 집계 방식이 있다면 합계, 평균, 건수, 최대값처럼 명확히 작성합니다.
•
특정 테이블이나 컬럼을 알고 있다면 질문에 포함합니다.
•
결과 개수가 많을 수 있는 질문은 상위 N개, 최근 N일처럼 범위를 제한합니다.
•
생성된 SQL이 의도와 다르면 조건을 더 구체적으로 바꿔 다시 생성합니다.







