Genie란?
💡 Genie 는 자연어 로 데이터에 질문하면, AI가 적절한 SQL 쿼리를 자동으로 생성 하여 결과를 보여주는 Databricks의 AI 기반 데이터 탐색 도구입니다. SQL을 모르는 비즈니스 사용자도 “이번 달 서울 지역 매출이 얼마야?”라고 물으면 답변을 받을 수 있습니다.
Genie의 동작 방식
| 단계 | 구성 요소 | 설명 |
|---|---|---|
| 1 | 사용자 질문 | ”이번 달 서울 매출이 전월 대비 어떻게 됐어?“ |
| 2 | Genie AI | 질문을 이해하고, 테이블을 매핑하고, SQL을 생성합니다 |
| 3 | 생성된 SQL | SELECT month, SUM(amount)... WHERE city='서울' |
| 4 | SQL Warehouse | 쿼리를 실행합니다 |
| 5 | 결과 + 차트 | 실행 결과를 차트와 함께 표시합니다 |
- 사용자가 자연어 로 질문을 입력합니다
- Genie AI가 질문을 분석하고, 등록된 테이블의 스키마와 지시사항을 참고하여 SQL을 생성 합니다
- 생성된 SQL이 SQL Warehouse 에서 실행됩니다
- 결과가 테이블과 차트 로 표시됩니다
- 사용자가 생성된 SQL을 확인하고, 필요하면 수정할 수 있습니다
Genie Space 구성
💡 Genie Space 는 Genie가 질문에 답변할 때 참조하는 전용 분석 공간 입니다. 어떤 테이블을 사용할지, 비즈니스 용어를 어떻게 해석할지, 자주 묻는 질문에 어떻게 답변할지를 사전에 정의합니다.
Genie Space의 구성 요소
| 구성 요소 | 설명 | 예시 |
|---|---|---|
| 테이블 선택 | Genie가 참조할 테이블을 지정합니다 | gold.daily_revenue, gold.customer_360 |
| 지시사항 (Instructions) | 비즈니스 맥락과 용어를 설명합니다 | ”매출”은 total_amount 컬럼을 의미합니다. 금액은 원 단위입니다 |
| 예시 질문 | 사용자가 물을 수 있는 질문의 예시를 등록합니다 | ”이번 달 매출 Top 5 지역”, “VIP 고객 수 추이” |
| 인증된 답변 (Trusted Assets) | 자주 묻는 질문에 대해 검증된 SQL 을 미리 등록합니다. AI가 생성한 SQL 대신 검증된 SQL을 사용합니다 | ”월별 매출” → 사전 검증된 정확한 SQL |
| 샘플 질문 | Genie Space에 처음 접속한 사용자에게 보여줄 추천 질문입니다 | ”가장 많이 팔린 상품은?”, “고객 이탈률은?” |
Genie Space 생성 방법
- New→ Genie Space 클릭
- Space 이름 입력 (예: “매출 분석 Genie”)
- 테이블 추가: Unity Catalog에서 Gold 테이블들을 선택합니다
- 지시사항 작성: 비즈니스 맥락을 제공합니다
- 인증된 답변 등록(선택): 핵심 비즈니스 질문에 검증된 SQL을 매핑합니다
- 공유: 비즈니스 사용자에게 Genie Space 접근 권한을 부여합니다
인증된 답변 (Trusted Assets)
💡 인증된 답변 은 특정 질문에 대해 사전 검증된 정확한 SQL 을 등록하는 기능입니다. Genie는 해당 질문이 들어오면 AI가 생성한 SQL 대신 인증된 SQL을 사용하므로, 정확도가 100% 보장 됩니다.
왜 필요한가요?
- AI가 생성한 SQL이 항상 100% 정확하지는 않습니다
- 비즈니스적으로 정의가 복잡한 지표(예: “순매출 = 총매출 - 반품 - 할인”)는 AI가 틀릴 가능성이 높습니다
- 경영진에게 보고되는 핵심 KPI는 검증된 쿼리 를 사용해야 합니다
등록 방법
Genie 활용 시나리오
경영진 의사결정 지원
마케팅 팀 캠페인 분석
Genie Space의 데이터 보안
Genie는 Unity Catalog의 권한 체계를 그대로 따릅니다.| 보안 사항 | 설명 |
|---|---|
| 테이블 권한 | 사용자가 SELECT 권한이 없는 테이블의 데이터는 Genie도 접근할 수 없습니다 |
| 행 필터 | Row Filter가 설정된 테이블은 Genie에서도 필터가 적용됩니다 |
| 컬럼 마스킹 | Column Mask가 설정된 컬럼은 Genie에서도 마스킹됩니다 |
| SQL 노출 | 사용자가 생성된 SQL을 볼 수 있으므로, 민감한 테이블 이름이 노출될 수 있습니다 |
Genie Space 품질 향상 팁
| 방법 | 설명 |
|---|---|
| 명확한 컬럼 이름 | amt 대신 total_revenue_krw처럼 의미가 명확한 컬럼 이름을 사용합니다 |
| 컬럼 설명 추가 | COMMENT ON COLUMN table.col IS '설명'으로 각 컬럼에 설명을 달아둡니다 |
| 상세한 지시사항 | 비즈니스 용어, 약어, 관계를 충분히 설명합니다 |
| 인증된 답변 활용 | 핵심 KPI에는 반드시 검증된 SQL을 등록합니다 |
| 피드백 활용 | 사용자가 “좋아요/싫어요”를 표시한 결과를 분석하여 지시사항을 개선합니다 |
| Gold 테이블 사용 | 복잡한 조인이 필요 없는 Gold 계층 테이블을 사용합니다 |
🆕 Genie Code (GA): 기존 Databricks Assistant가 확장되어, 단순 질문 답변을 넘어 멀티 스텝 데이터 작업(자산 검색, 코드 생성, 실행, 오류 수정, 결과 시각화)을 자율적으로 수행합니다.
심화: Genie 엔터프라이즈 운영
이 섹션에서는 Genie를 전사적으로 도입할 때 필요한 품질 관리, 성능 특성, 보안 패턴, 지속적 개선 프로세스를 다룹니다.품질 관리 — 할루시네이션과 정확도
Genie는 LLM 기반이므로, 잘못된 SQL을 생성하는 할루시네이션(Hallucination) 이 발생할 수 있습니다. 프로덕션 환경에서는 체계적인 품질 관리가 필수입니다.할루시네이션 유형
| 유형 | 예시 | 영향 |
|---|---|---|
| 존재하지 않는 컬럼/테이블 참조 | SELECT revenue FROM sales (실제 컬럼명: total_amount) | SQL 오류 → 사용자에게 오류 메시지 |
| 잘못된 비즈니스 로직 | ”순매출”을 SUM(amount)으로 계산 (정확: 매출-반품-할인) | 위험! 잘못된 숫자가 표시됨 |
| 잘못된 조인 | 관련 없는 테이블을 조인하여 카디널리티 폭발 | 부정확한 결과 + 높은 비용 |
| 집계 함수 오용 | COUNT 대신 SUM, AVG 대신 MEDIAN | 미묘하게 다른 결과 |
Trusted Assets로 품질 보장
인증된 답변(Trusted Assets)은 Genie의 품질 문제에 대한 가장 강력한 방어 수단입니다.테스트 패턴
⚠️ Gotcha — Genie의 SQL은 매번 달라질 수 있습니다: 동일한 질문에도 LLM의 특성상 미묘하게 다른 SQL이 생성될 수 있습니다. 테스트 시 정확한 SQL 문자열 매칭보다는 결과 값의 범위 검증, 필수 테이블/컬럼 포함 여부 등으로 검증하세요.
성능 특성
| 메트릭 | 일반적인 범위 | 설명 |
|---|---|---|
| 응답 지연시간 (p50) | 3~8초 | 질문 해석 + SQL 생성 + 쿼리 실행 |
| 응답 지연시간 (p99) | 15~30초 | 복잡한 질문, 대규모 테이블 |
| SQL 생성 시간 | 2~5초 | LLM이 SQL을 생성하는 시간 |
| 쿼리 실행 시간 | 1~25초 | SQL Warehouse에서 실행 (데이터 규모에 따라 다름) |
| 동시 사용자 | Space당 권장 20~30명 | 초과 시 SQL Warehouse 큐잉 발생 |
성능 최적화 팁
| 방법 | 효과 | 설명 |
|---|---|---|
| Gold 테이블 사용 | 쿼리 시간 50~90% 감소 | 사전 집계된 테이블은 조인/집계가 불필요 |
| 테이블 수 제한 | SQL 생성 정확도 향상 | Space당 5~10개 테이블 권장. 너무 많으면 LLM 혼란 |
| 컬럼 설명 추가 | SQL 정확도 향상 | LLM이 컬럼 의미를 정확히 파악 |
| Serverless Warehouse | 콜드스타트 감소 | 첫 쿼리 실행까지 대기 시간 최소화 |
⚠️ Gotcha — 테이블 수와 정확도의 반비례: Genie Space에 20개 이상의 테이블을 등록하면, LLM이 적절한 테이블을 선택하는 정확도가 떨어집니다. 도메인별로 별도 Genie Space 를 만들고, 각 Space에는 관련 테이블만 등록하세요.
엔터프라이즈 패턴
부서별 Genie Space 분리
데이터 보안 — UC Row Filter/Column Mask 연동
Genie는 Unity Catalog의 보안 정책을 그대로 상속합니다. Row Filter와 Column Mask를 설정하면 Genie에서도 동일하게 적용됩니다.⚠️ Gotcha — Genie에서 보안 정책 우회 가능성: Genie가 생성한 SQL에서 필터 조건을 교묘하게 구성하면, Row Filter를 논리적으로 우회하려는 시도가 가능합니다(예: “급여가 1억 이상인 직원이 있어?”라는 질문). UC의 Row Filter/Column Mask는 SQL 레벨에서 강제 적용 되므로 기술적으로 우회는 불가능하지만, SQL이 노출 되어 테이블/컬럼 이름 같은 메타데이터가 보일 수 있습니다. 민감한 테이블 이름을 사용하지 않도록 주의하세요.
피드백 루프 — 지속적 품질 개선
Genie를 도입한 후에는 사용자 피드백을 수집하고 지속적으로 개선 하는 프로세스가 필요합니다.개선 사이클
피드백 분석 체크리스트
| 피드백 유형 | 분석 방법 | 대응 |
|---|---|---|
| SQL 오류 | 생성된 SQL에 존재하지 않는 컬럼/테이블 | 지시사항에 정확한 컬럼명 명시 |
| 잘못된 숫자 | 결과를 수동 쿼리와 비교 | Trusted Asset으로 검증된 SQL 등록 |
| ”모르겠습니다” 응답 | 질문과 등록된 테이블 매핑 확인 | 테이블 추가 또는 지시사항에 매핑 규칙 추가 |
| 느린 응답 | 생성된 SQL의 실행 계획 분석 | Gold 테이블 추가, 인덱싱 개선 |
운영 지표 모니터링
| 지표 | 목표 | 측정 방법 |
|---|---|---|
| 질문 성공률 | > 85% | (응답 반환 횟수 / 전체 질문 수) |
| 사용자 만족도 | > 70% 👍 | (👍 수 / 전체 피드백 수) |
| Trusted Asset 적중률 | > 40% | (Trusted Asset 사용 횟수 / 전체 질문 수) |
| 평균 응답 시간 | < 10초 | SQL 생성 시간 + 쿼리 실행 시간 |
⚠️ Gotcha — 초기 도입 시 기대 관리: Genie 도입 초기에는 지시사항과 Trusted Asset이 부족하여 정확도가 낮을 수 있습니다(50~60%). 최소 2~4주의 튜닝 기간 을 계획하고, 초기에는 파워 유저 그룹(분석가, 데이터 엔지니어)과 함께 피드백을 수집하여 품질을 높인 후 전사 배포하세요.
정리
| 핵심 개념 | 설명 |
|---|---|
| Genie | 자연어로 데이터에 질문하는 AI 분석 도구입니다 |
| Genie Space | Genie가 참조할 테이블, 지시사항, 인증된 답변을 설정한 전용 공간입니다 |
| 인증된 답변 | 핵심 질문에 검증된 SQL을 매핑하여 정확도를 보장합니다 |
| 지시사항 | 비즈니스 용어와 맥락을 Genie에게 제공합니다 |
| Unity Catalog 보안 | 데이터 권한이 Genie에도 동일하게 적용됩니다 |
| 피드백 루프 | 사용자 피드백을 수집하여 지속적으로 품질을 개선합니다 |
| 부서별 분리 | 도메인별 Genie Space로 정확도와 보안을 동시에 확보합니다 |