NL-to-SQL 파이프라인
| 단계 | 설명 |
|---|---|
| 스키마 분석 | AI가 연결된 테이블 구조와 컬럼 설명을 분석합니다 |
| SQL 생성 | 자연어 질문을 해당 DB 방언에 맞는 SQL로 변환합니다 |
| 안전 검증 | SELECT 쿼리만 허용하고 INSERT, UPDATE, DELETE 등은 차단합니다 |
| 쿼리 실행 | 검증된 SQL을 데이터베이스에서 실행합니다 |
| 자연어 응답 | 쿼리 결과를 자연어 텍스트 또는 차트로 변환합니다 |
지원 데이터베이스
기본적으로 6종의 데이터베이스를 지원합니다.| 데이터베이스 | 유형 | 특징 |
|---|---|---|
| PostgreSQL | RDBMS | 고급 기능, JSON 지원, 오픈소스 |
| MySQL | RDBMS | 가장 널리 사용되는 RDBMS |
| Microsoft SQL Server | RDBMS | 엔터프라이즈 환경 |
| Oracle | RDBMS | 대규모 엔터프라이즈 |
| SQLite | RDBMS | 경량 임베디드 데이터베이스 |
| Snowflake | Cloud DW | 클라우드 데이터 웨어하우스 |
관리자가
DBSPHERE_TYPES 환경 변수를 설정하면 Databricks, Azure Synapse, Microsoft Fabric 등 추가 DB 유형을 활성화할 수 있습니다.데이터베이스 연결
새 연결 생성
워크스페이스 > 데이터베이스 > ”+ 새 연결” 클릭 후 기본 정보를 입력합니다.
| 필드 | 설명 | 예시 |
|---|---|---|
| 이름 | 연결 표시 이름 | ”매출 분석 DB” |
| 설명 | 데이터베이스 용도 | ”영업팀 매출 데이터” |
| DB 유형 | 데이터베이스 종류 | PostgreSQL |
접속 정보 입력
데이터베이스 접속에 필요한 정보를 입력합니다.공통 필드:
| 필드 | 설명 |
|---|---|
| 호스트 | DB 서버 주소 |
| 포트 | 접속 포트 |
| 데이터베이스명 | 접속할 DB 이름 |
| 사용자명 | DB 계정 |
| 비밀번호 | DB 비밀번호 |
DB 유형별 추가 필드
DB 유형별 추가 필드
| DB 유형 | 추가 필드 | 설명 |
|---|---|---|
| Snowflake | Account, Warehouse, Role, Schema | Snowflake 계정 식별자, 사용 웨어하우스, 역할, 스키마 |
| PostgreSQL | Schema | 스키마 이름 (기본: public) |
| MSSQL | Schema | 스키마 이름 (기본: dbo) |
| SQLite | Database (파일 경로) | 호스트/포트/인증 불필요, DB 파일 경로만 입력 |
도구 설명 설정 (선택)
에이전트가 이 데이터베이스를 언제, 어떻게 활용할지 안내하는 도구 설명을 작성합니다.AI 자동 생성: 도구 설명 입력란 옆의 자동 생성 버튼을 클릭하면, 연결된 테이블 구조와 컬럼 정보를 분석하여 AI가 도구 설명을 자동 작성합니다.
도구 설명 예시
도구 설명 예시
데이터베이스 조회
에이전트에 연결
- 에이전트 편집 화면에서 “데이터베이스” 섹션의 ”+ 추가” 클릭
- 연결할 데이터베이스 선택
- 저장
채팅에서 사용
데이터베이스가 연결된 에이전트와 대화하면, AI가 질문을 분석하여 자동으로 SQL을 생성하고 실행합니다.질문 예시
- 매출 분석
- 고객 분석
- 재고 관리
- 인사 관리
보안
읽기 전용
DbSphere는 SELECT 쿼리만 실행합니다. 데이터 변경은 불가능합니다.| 허용 | 차단 |
|---|---|
| SELECT | INSERT, UPDATE, DELETE |
| 집계 함수 (COUNT, SUM, AVG) | DROP, ALTER, TRUNCATE |
| JOIN, 서브쿼리 | CREATE, GRANT |
자격 증명 보호
- 데이터베이스 비밀번호는 암호화하여 저장합니다
- 연결 정보는 접근 권한이 있는 사용자만 확인할 수 있습니다
베스트 프랙티스
데이터베이스 계정 설정
- 전용 계정 생성: AI 전용 읽기 전용 계정을 만드세요
- 최소 권한 부여: 필요한 테이블에 대해서만 SELECT 권한을 부여하세요
- 쿼리 제한: 타임아웃과 결과 행 수 제한을 설정하세요
테이블 선택
- 필요한 것만 선택: 모든 테이블을 연결하면 AI가 혼란스러워질 수 있습니다
- 민감 데이터 제외: 개인정보, 비밀번호가 포함된 테이블은 반드시 제외하세요
- 관련 테이블 함께 선택: JOIN이 필요한 테이블은 함께 선택하세요
스키마 설명 작성
- 한국어 설명 권장: 업무 용어를 사용하여 테이블과 컬럼을 설명하세요
- 비즈니스 컨텍스트 추가: “status” 컬럼의 가능한 값과 의미를 기술하세요
- 테이블 관계 명시: 외래 키 관계와 JOIN 조건을 설명하세요
트러블슈팅
연결 테스트가 실패합니다
연결 테스트가 실패합니다
| 원인 | 해결 방법 |
|---|---|
| 네트워크 문제 | 방화벽 규칙, VPN 연결 상태 확인 |
| 인증 실패 | 계정, 비밀번호, 권한 재확인 |
| 포트 차단 | DB 포트가 열려 있는지 확인 |
| SSL 설정 | SSL 인증서 요구 여부 확인 |
AI가 잘못된 SQL을 생성합니다
AI가 잘못된 SQL을 생성합니다
| 원인 | 해결 방법 |
|---|---|
| 스키마 설명 부족 | 테이블, 컬럼에 상세 설명 추가 |
| 관련 테이블 누락 | JOIN이 필요한 테이블을 함께 선택 |
| 질문이 모호함 | 구체적인 조건(날짜 범위, 필터)을 포함하여 질문 |
응답이 느립니다
응답이 느립니다
| 원인 | 해결 방법 |
|---|---|
| 대용량 데이터 | 날짜 범위 등 조건을 추가하여 질문 |
| 복잡한 쿼리 | 질문을 단순화하거나 여러 질문으로 분리 |
| DB 성능 문제 | 인덱스 최적화, DB 리소스 확인 |
FAQ
데이터가 변경될 수 있나요?
데이터가 변경될 수 있나요?
아니요, DbSphere는 읽기 전용입니다. SELECT 쿼리만 실행하며, 데이터를 수정하거나 삭제할 수 없습니다.
실행된 SQL을 볼 수 있나요?
실행된 SQL을 볼 수 있나요?
네, AI 응답에서 생성된 SQL을 확인할 수 있습니다.
여러 테이블을 JOIN할 수 있나요?
여러 테이블을 JOIN할 수 있나요?
네, 관련 테이블을 모두 선택하고 테이블 간 관계를 스키마 설명에 기술하면 AI가 적절한 JOIN 쿼리를 생성합니다.
한 에이전트에 여러 데이터베이스를 연결할 수 있나요?
한 에이전트에 여러 데이터베이스를 연결할 수 있나요?
네, 에이전트에 여러 데이터베이스를 연결하면 AI가 질문에 따라 적절한 데이터베이스를 자동으로 선택합니다. 이때 각 DB의 도구 설명을 구체적으로 작성하면 선택 정확도가 높아집니다.
