개요
Genie Spaces는 Unity Catalog에 등록된 테이블 데이터를 자연어 챗봇 으로 변환합니다. 비즈니스 사용자가 SQL 없이도 데이터에 질문할 수 있으며, 내부적으로 자연어를 SQL로 변환하여 실행합니다. 적합한 유스케이스:- 비즈니스 데이터 탐색 (매출, 재고, 고객 분석)
- 셀프 서비스 분석 (비기술 사용자가 직접 데이터 조회)
- KPI/메트릭 확인 (일별/월별 성과 지표)
- 임원 대시보드 대체 (자연어로 원하는 데이터를 즉시 조회)
작동 원리
Genie는 단일 LLM이 아닌 복합 AI 시스템(Compound AI System) 입니다.- Unity Catalog 테이블/컬럼 메타데이터
- Knowledge Store (작성자가 큐레이션한 공간 수준 컨텍스트)
- 예시 SQL 쿼리 및 SQL 함수
- 텍스트 지시사항 및 대화 이력
참고 Genie는 읽기 전용 SQL만 생성 합니다. INSERT, UPDATE, DELETE 등의 쓰기 쿼리는 절대 실행되지 않으므로 데이터 안전성이 보장됩니다.
사전 요구사항
| 요구사항 | 설명 |
|---|---|
| SQL Warehouse | Pro 또는 Serverless SQL Warehouse |
| Unity Catalog | 데이터가 UC에 등록되어 있어야 함 |
| 테이블 제한 | 공간당 최대 30개 테이블/뷰 |
| 처리량 | UI: 20 질문/분, API: 5 질문/분 (무료 티어) |
| 용량 | 공간당 10,000 대화, 대화당 10,000 메시지 |
- Databricks SQL 워크스페이스 자격
- SQL Warehouse에 대한
CAN USE접근 - 데이터 객체에 대한
SELECT권한
생성 및 설정
Step 1: Genie Space 생성
- 좌측 메뉴에서 Genie> New 클릭
- Unity Catalog에서 데이터 소스 (테이블/뷰) 선택
- Create 클릭
Step 2: Knowledge Store 설정
생성 후 반드시 Knowledge Store를 설정하세요. 이것이 Genie의 정확도를 결정합니다.| 설정 항목 | 설명 | 예시 |
|---|---|---|
| 테이블/컬럼 설명 | 비즈니스 용어, 동의어 정의 | order_amt → “주문 금액 (원화, VAT 포함)“ |
| JOIN 관계 | 테이블 간 연결 정의 | orders.customer_id = customers.id |
| 재사용 가능 SQL 표현식 | 측정값, 필터, KPI용 표현식 | 월별 매출 합계, YoY 성장률 계산식 |
| 프롬프트 매칭 | 형식 지원, 엔터티 교정 | ”매출” → revenue, “이번 달” → CURRENT_MONTH |
Step 3: Instructions & Examples 추가 (최대 100개)
- 정적 또는 파라미터화된 SQL 쿼리 (자연어 제목 포함)
- Unity Catalog 함수 (복잡한 로직용)
- 텍스트 지시사항 (비즈니스 컨텍스트, 형식 규칙)
참고 예시 등록 팁: “이번 달 매출은?”이라는 질문에 대해 정확한 SQL을 등록해두면, 유사한 질문(“이번 달 수익은?”, “이달 매출 합계는?”)에도 올바른 SQL이 생성됩니다.
Step 4: 공간 설정
- 제목, 설명 (마크다운 지원)
- 기본 SQL Warehouse 설정
- 사용자 안내용 샘플 질문 등록
- 태그 분류
모니터링 및 개선
Monitoring 탭에서 다음을 확인할 수 있습니다:- 사용자가 질문한 모든 내용
- 사용자 피드백 (좋아요/싫어요)
- 플래그된 응답
Agent Bricks에서의 활용: Supervisor 서브 에이전트로 사용
Genie Spaces는 Supervisor Agent의 서브 에이전트 로 사용할 수 있습니다. 이를 통해 문서 Q&A(Knowledge Assistant)와 데이터 분석(Genie)을 하나의 멀티 에이전트 시스템으로 통합할 수 있습니다.전체 연결 흐름
SQL 분석 에이전트로서의 활용 예시
시나리오: 사내 HR봇에 “우리 팀 인원 현황”을 질문하면 데이터로 답변- KA: “회사 HR 정책, 복리후생, 규정 관련 질문을 처리합니다”
- Genie: “직원 수, 부서별 인원, 입퇴사 현황 등 HR 데이터를 조회합니다”
제한사항과 해결 방법
| 제한사항 | 상세 | 해결 방법 |
|---|---|---|
| 테이블 수 30개 제한 | 한 공간에 30개 초과 불가 | 비즈니스 도메인별로 Space를 분리하고 Supervisor로 통합 |
| API 처리량 제한 | 무료 티어 기준 5 질문/분 | 프로비전된 처리량(Provisioned Throughput) 사용 검토 |
| 복잡한 JOIN | 3단계 이상 JOIN은 정확도 저하 | 미리 JOIN된 뷰(View)를 생성하여 등록 |
| 비정형 데이터 | JSON, Array 등 복잡한 타입 지원 제한 | 정규화된 테이블로 변환 후 등록 |
| 실시간 데이터 | 스트리밍 데이터 직접 지원 안 함 | Delta Live Tables로 물리화 후 Genie에 연결 |
| 차트 커스터마이징 | 기본 차트만 제공, 세부 설정 제한 | Databricks Apps(Streamlit 등)와 연계하여 커스텀 시각화 구현 |
주의
Genie Space를 Supervisor에 연결하려면 해당 Space의 소유자이거나 CAN MANAGE 권한이 있어야 합니다. 또한 Supervisor의 서비스 프린시펄에게 Genie Space와 관련 테이블에 대한 접근 권한을 부여해야 합니다.
SQL 생성 메커니즘 심층 분석
Genie가 자연어를 SQL로 변환하는 과정은 단순한 “텍스트 → SQL” 변환이 아닙니다. 여러 단계의 AI 처리 파이프라인을 거치며, 각 단계에서 정확도를 높이기 위한 다양한 기법이 적용됩니다.SQL 생성 파이프라인 상세
SQL 생성 정확도에 영향을 미치는 요소
| 요소 | 영향도 | 설명 |
|---|---|---|
| 컬럼/테이블 설명 | 매우 높음 | Genie가 엔터티를 매핑하는 핵심 근거. “amt”보다 “주문 금액 (원화, VAT 포함)“이 훨씬 정확 |
| JOIN 관계 정의 | 높음 | 사전 정의된 JOIN이 없으면 잘못된 조인이 생성될 수 있음 |
| 예시 SQL | 높음 | 유사한 패턴의 질문에 대해 정확한 SQL을 학습 |
| 데이터 타입 | 중간 | 날짜가 STRING 타입이면 날짜 연산 SQL이 부정확해짐 |
| 테이블 수 | 중간 | 테이블이 많을수록 스키마 선택 단계에서 혼란 발생 |
| 컬럼 네이밍 | 중간 | col1, val 같은 모호한 이름은 매핑 정확도를 떨어뜨림 |
Genie Space와 Genie Code의 관계
Genie Space와 Genie Code는 모두 “자연어 → SQL” 기능을 제공하지만, 위치와 용도가 다릅니다.| 구분 | Genie Space | Genie Code |
|---|---|---|
| 위치 | 독립 애플리케이션 (좌측 메뉴 > Genie) | AI/BI Dashboard, 노트북 내장 |
| 대상 사용자 | 비즈니스 사용자 (비기술) | 데이터 분석가, 엔지니어 |
| 데이터 범위 | 사전 등록된 테이블만 (최대 30개) | Unity Catalog 전체 테이블 접근 가능 |
| 출력 형식 | 자연어 응답 + 테이블 + 차트 | SQL 코드 + 실행 결과 |
| 거버넌스 | Space 수준 접근 제어 | UC 권한 기반 |
| Agent Bricks 연동 | Supervisor 서브 에이전트로 사용 가능 | 직접 연동 불가 |
| Knowledge Store | 작성자가 큐레이션한 비즈니스 컨텍스트 | UC 메타데이터 자동 활용 |
| 맞춤 설정 | Instructions, Sample Questions, SQL 표현식 | 프롬프트 수준 설정 |
참고 사용 시나리오 구분: 비기술 사용자가 반복적으로 같은 데이터를 조회한다면 Genie Space, 분석가가 탐색적으로 다양한 데이터를 조회한다면 Genie Code 가 적합합니다. 두 기능은 경쟁 관계가 아닌 보완 관계 입니다.
데이터 보안: 사용자 권한 기반 SQL 실행
Genie Space의 가장 중요한 보안 특성은 “사용자 권한으로 SQL이 실행된다” 는 점입니다. 이를 통해 동일한 Genie Space를 여러 사용자가 공유하면서도, 각 사용자는 자신에게 허용된 데이터만 볼 수 있습니다.권한 실행 모델
보안 레이어 구조
| 레이어 | 적용 대상 | 설명 |
|---|---|---|
| Genie Space 접근 권한 | Space 자체 | CAN VIEW / CAN MANAGE / CAN RUN — Space에 접근할 수 있는지 |
| SQL Warehouse 권한 | 쿼리 실행 | CAN USE — SQL Warehouse를 사용할 수 있는지 |
| Unity Catalog 권한 | 데이터 객체 | SELECT, USE CATALOG/SCHEMA — 테이블/뷰에 접근할 수 있는지 |
| 행 수준 보안(RLS) | 데이터 행 | Dynamic View 또는 Row Filter로 행 단위 필터링 |
| 열 수준 보안(CLS) | 데이터 열 | Column Mask로 민감 컬럼 마스킹 |
주의 Supervisor Agent를 통한 접근 시: Supervisor Agent에서 Genie Space를 서브 에이전트로 사용할 때에도 On-Behalf-Of-User 모드가 적용됩니다. 즉, Supervisor에 질문한 사용자의 권한으로 Genie의 SQL이 실행되므로, 권한 없는 데이터에는 접근할 수 없습니다.
보안 설계 시 고려사항
- 테이블 권한은 UC에서 관리: Genie Space에서 별도 보안 설정을 하는 것이 아니라, UC의 GRANT/REVOKE로 관리
- Dynamic View 활용: 부서별/리전별로 다른 데이터를 보여줘야 한다면, 행 수준 보안이 적용된 Dynamic View를 생성하여 Genie Space에 등록
- 민감 컬럼 마스킹: 고객 개인정보(이름, 전화번호 등)는 Column Mask를 적용하여 권한 없는 사용자에게 마스킹
멀티테이블 분석 시 성능 고려사항
Genie Space에서 여러 테이블을 조합한 분석을 수행할 때, 성능과 정확도에 영향을 미치는 요소들을 이해해야 합니다.JOIN 복잡도에 따른 정확도 변화
| JOIN 단계 | 정확도 예상 | 설명 |
|---|---|---|
| 단일 테이블 | 90%+ | 단순 필터링, 집계. 거의 정확 |
| 2테이블 JOIN | 80~90% | JOIN 관계가 명확하면 높은 정확도 |
| 3테이블 JOIN | 60~80% | JOIN 순서, 조건이 복잡해지면서 오류 가능성 증가 |
| 4테이블+ JOIN | 50% 이하 | 권장하지 않음 — 뷰(View)로 사전 조합 필요 |
성능 최적화 전략
| 전략 | 설명 | 적용 시점 |
|---|---|---|
| 사전 조합 뷰(Materialized View) | 자주 사용되는 JOIN을 미리 뷰로 생성 | 3테이블 이상 JOIN이 빈번할 때 |
| 스타 스키마 설계 | 팩트 테이블 + 디멘전 테이블 구조로 정규화 | 새로운 데이터 모델 설계 시 |
| 집계 테이블 | 일별/월별 집계를 미리 계산한 테이블 생성 | 대용량 원본 테이블의 집계 쿼리가 느릴 때 |
| 파티셔닝 | 날짜, 리전 등으로 테이블 파티셔닝 | 대용량 테이블 스캔이 빈번할 때 |
| 불필요한 테이블 제거 | Space에 등록된 테이블 중 사용빈도 낮은 것 제거 | 스키마 선택 단계 혼란 방지 |
대용량 데이터 처리 시 SQL Warehouse 설정
| 설정 | 권장값 | 이유 |
|---|---|---|
| Warehouse 크기 | Medium 이상 (대용량 데이터) | 복잡한 JOIN + 집계 쿼리에 충분한 리소스 |
| Auto Stop | 10분 | 비용과 응답 속도의 균형 (Cold Start 방지) |
| Serverless | 권장 | 자동 스케일링으로 부하에 유연하게 대응 |
| 쿼리 타임아웃 | 300초 | 비효율적 SQL의 무한 실행 방지 |
참고 Genie의 쿼리 최적화 팁: Genie가 생성한 SQL이 비효율적이라면, Monitoring 탭에서 해당 쿼리를 확인하고, 더 효율적인 SQL을 Instructions의 예시 쿼리 로 등록하세요. 유사한 질문에 대해 Genie가 최적화된 SQL 패턴을 학습합니다.
Genie Space 운영 성숙도 모델
Genie Space를 처음 생성한 후 지속적으로 개선하는 과정을 4단계로 정리합니다.| 단계 | 이름 | 활동 | 목표 정확도 |
|---|---|---|---|
| Level 1 | 초기 설정 | 테이블 등록, 기본 컬럼 설명 추가, 2~3개 예시 쿼리 | 50~60% |
| Level 2 | 컨텍스트 보강 | 상세 컬럼 설명, JOIN 관계 정의, 10개 이상 예시 쿼리, 텍스트 지시사항 | 70~80% |
| Level 3 | 피드백 반영 | Monitoring 탭 분석, 실패 쿼리 원인 수정, 동의어/약어 추가, 20개 이상 예시 | 80~90% |
| Level 4 | 운영 최적화 | 사전 조합 뷰, 집계 테이블, 정기 피드백 루프, 비용 모니터링 | 90%+ |
주의 Level 1에서 바로 프로덕션 배포하지 마세요. 최소 Level 2 이상의 컨텍스트 보강을 완료한 후 배포해야 합니다. 컬럼 설명과 JOIN 관계 없이 배포하면 SQL 생성 정확도가 매우 낮아 사용자 신뢰를 잃게 됩니다.