Skip to main content

Genie란?

💡 Genie자연어 로 데이터에 질문하면, AI가 적절한 SQL 쿼리를 자동으로 생성 하여 결과를 보여주는 Databricks의 AI 기반 데이터 탐색 도구입니다. SQL을 모르는 비즈니스 사용자도 “이번 달 서울 지역 매출이 얼마야?”라고 물으면 답변을 받을 수 있습니다.

Genie의 동작 방식

단계구성 요소설명
1사용자 질문”이번 달 서울 매출이 전월 대비 어떻게 됐어?“
2Genie AI질문을 이해하고, 테이블을 매핑하고, SQL을 생성합니다
3생성된 SQLSELECT month, SUM(amount)... WHERE city='서울'
4SQL Warehouse쿼리를 실행합니다
5결과 + 차트실행 결과를 차트와 함께 표시합니다
  1. 사용자가 자연어 로 질문을 입력합니다
  2. Genie AI가 질문을 분석하고, 등록된 테이블의 스키마와 지시사항을 참고하여 SQL을 생성 합니다
  3. 생성된 SQL이 SQL Warehouse 에서 실행됩니다
  4. 결과가 테이블과 차트 로 표시됩니다
  5. 사용자가 생성된 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 생성 방법

  1. NewGenie Space 클릭
  2. Space 이름 입력 (예: “매출 분석 Genie”)
  3. 테이블 추가: Unity Catalog에서 Gold 테이블들을 선택합니다
  4. 지시사항 작성: 비즈니스 맥락을 제공합니다
지시사항 예시:
- "매출"이라고 하면 total_revenue 컬럼을 사용하세요
- 금액의 단위는 원(KRW)입니다
- "이번 달"은 현재 월을 의미합니다
- "VIP 고객"은 tier = 'Gold' 또는 tier = 'Platinum'인 고객입니다
- 날짜 관련 질문에는 order_date 컬럼을 기준으로 답변하세요
- 답변은 항상 한국어로 제공하세요
  1. 인증된 답변 등록(선택): 핵심 비즈니스 질문에 검증된 SQL을 매핑합니다
  2. 공유: 비즈니스 사용자에게 Genie Space 접근 권한을 부여합니다

인증된 답변 (Trusted Assets)

💡 인증된 답변 은 특정 질문에 대해 사전 검증된 정확한 SQL 을 등록하는 기능입니다. Genie는 해당 질문이 들어오면 AI가 생성한 SQL 대신 인증된 SQL을 사용하므로, 정확도가 100% 보장 됩니다.

왜 필요한가요?

  • AI가 생성한 SQL이 항상 100% 정확하지는 않습니다
  • 비즈니스적으로 정의가 복잡한 지표(예: “순매출 = 총매출 - 반품 - 할인”)는 AI가 틀릴 가능성이 높습니다
  • 경영진에게 보고되는 핵심 KPI는 검증된 쿼리 를 사용해야 합니다

등록 방법

-- 인증된 답변으로 등록할 SQL 쿼리 예시
-- 질문: "이번 달 순매출은?"

SELECT
    DATE_TRUNC('MONTH', order_date) AS 월,
    SUM(CASE WHEN type = 'SALE' THEN amount ELSE 0 END)
    - SUM(CASE WHEN type = 'RETURN' THEN amount ELSE 0 END)
    - SUM(CASE WHEN type = 'DISCOUNT' THEN amount ELSE 0 END) AS 순매출
FROM gold.transactions
WHERE order_date >= DATE_TRUNC('MONTH', CURRENT_DATE())
GROUP BY 1;

Genie 활용 시나리오

경영진 의사결정 지원

👤 CEO: "지난 분기 대비 이번 분기 매출 성장률은?"
🧞 Genie: "2025년 1분기 매출은 45.2억원으로, 전 분기(42.8억원) 대비 5.6% 성장했습니다."
         [차트: 분기별 매출 추이 막대 그래프]

👤 CEO: "가장 성장이 빠른 지역은?"
🧞 Genie: "대전 지역이 전분기 대비 23.4% 성장으로 가장 높은 성장률을 보였습니다."
         [표: 지역별 성장률 순위]

마케팅 팀 캠페인 분석

👤 마케터: "3월 프로모션 기간 동안 신규 고객 수는?"
🧞 Genie: "3월 1일~15일 프로모션 기간 동안 신규 가입 고객은 1,847명입니다."

👤 마케터: "그 중 실제 구매한 고객 비율은?"
🧞 Genie: "1,847명 중 623명(33.7%)이 첫 구매를 완료했습니다."

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의 품질 문제에 대한 가장 강력한 방어 수단입니다.
권장 운영 전략:

1. 핵심 KPI (매출, DAU, 이탈률 등)
   → 반드시 Trusted Assets 등록 (정확도 100% 보장)

2. 자주 묻는 질문 Top 20
   → Trusted Assets 등록 (80/20 법칙 적용)

3. 탐색적 질문
   → Genie AI가 생성 (지시사항으로 가이드)
   → 사용자가 SQL 검증 후 사용

테스트 패턴

# Genie Space 품질 테스트 자동화 예시
test_cases = [
    {
        "question": "이번 달 총 매출은?",
        "expected_columns": ["total_revenue"],
        "expected_range": (1_000_000, 1_000_000_000),  # 합리적 범위
        "must_contain_table": "gold.daily_revenue"
    },
    {
        "question": "VIP 고객 수는?",
        "expected_columns": ["customer_count"],
        "expected_sql_contains": "tier IN ('Gold', 'Platinum')",  # 비즈니스 로직 확인
    },
]

# Genie API로 자동 테스트 (SDK 활용)
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()

for tc in test_cases:
    # Genie Space에 질문 전송
    response = w.genie.start_conversation(
        space_id="<genie-space-id>",
        content=tc["question"]
    )
    # 생성된 SQL 검증
    generated_sql = response.attachments[0].query.query
    assert tc["must_contain_table"] in generated_sql, f"잘못된 테이블 참조: {generated_sql}"
⚠️ 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 분리

전사 Genie 아키텍처:

[경영진 Genie Space]
  - 테이블: gold.executive_summary, gold.kpi_monthly
  - 지시사항: 경영 지표 중심, 한국어 답변
  - 사용자: C-Level, VP

[영업팀 Genie Space]
  - 테이블: gold.sales_pipeline, gold.customer_360
  - 지시사항: 영업 용어 정의, 파이프라인 단계 설명
  - 사용자: 영업 담당자

[마케팅팀 Genie Space]
  - 테이블: gold.campaign_performance, gold.customer_segments
  - 지시사항: 캠페인 관련 용어, 전환율 계산 방법
  - 사용자: 마케터

[재무팀 Genie Space]
  - 테이블: gold.financial_ledger, gold.budget_vs_actual
  - 지시사항: 회계 용어, 기간 구분 규칙
  - 사용자: 재무팀

데이터 보안 — UC Row Filter/Column Mask 연동

Genie는 Unity Catalog의 보안 정책을 그대로 상속합니다. Row Filter와 Column Mask를 설정하면 Genie에서도 동일하게 적용됩니다.
-- 행 필터: 사용자가 담당하는 지역의 데이터만 조회 가능
CREATE FUNCTION gold.region_filter(region_col STRING)
RETURN IF(
    IS_ACCOUNT_GROUP_MEMBER('all-regions-access'),
    TRUE,
    region_col = CURRENT_USER_ATTRIBUTE('region')
);

ALTER TABLE gold.sales_data
SET ROW FILTER gold.region_filter ON (region);

-- 컬럼 마스크: 급여 컬럼을 HR 팀만 볼 수 있음
CREATE FUNCTION gold.salary_mask(salary_col DECIMAL)
RETURN IF(
    IS_ACCOUNT_GROUP_MEMBER('hr-team'),
    salary_col,
    NULL
);

ALTER TABLE gold.employee_data
SET COLUMN MASK gold.salary_mask ON salary;
⚠️ Gotcha — Genie에서 보안 정책 우회 가능성: Genie가 생성한 SQL에서 필터 조건을 교묘하게 구성하면, Row Filter를 논리적으로 우회하려는 시도가 가능합니다(예: “급여가 1억 이상인 직원이 있어?”라는 질문). UC의 Row Filter/Column Mask는 SQL 레벨에서 강제 적용 되므로 기술적으로 우회는 불가능하지만, SQL이 노출 되어 테이블/컬럼 이름 같은 메타데이터가 보일 수 있습니다. 민감한 테이블 이름을 사용하지 않도록 주의하세요.

피드백 루프 — 지속적 품질 개선

Genie를 도입한 후에는 사용자 피드백을 수집하고 지속적으로 개선 하는 프로세스가 필요합니다.

개선 사이클

[1] 사용자가 Genie에 질문

[2] Genie가 SQL 생성 + 결과 반환

[3] 사용자가 결과에 👍/👎 피드백

[4] 관리자가 👎 피드백 분석

[5-a] 반복적인 오류 → Trusted Asset 등록
[5-b] 용어 문제 → 지시사항 보완
[5-c] 데이터 문제 → 테이블/컬럼 설명 보완

[6] 다음 주기에 동일 질문으로 검증

피드백 분석 체크리스트

피드백 유형분석 방법대응
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 SpaceGenie가 참조할 테이블, 지시사항, 인증된 답변을 설정한 전용 공간입니다
인증된 답변핵심 질문에 검증된 SQL을 매핑하여 정확도를 보장합니다
지시사항비즈니스 용어와 맥락을 Genie에게 제공합니다
Unity Catalog 보안데이터 권한이 Genie에도 동일하게 적용됩니다
피드백 루프사용자 피드백을 수집하여 지속적으로 품질을 개선합니다
부서별 분리도메인별 Genie Space로 정확도와 보안을 동시에 확보합니다

참고 링크