Databricks AI/BI Genie 완전 정복: 자연어로 데이터와 대화하는 법

GarionNachal·2026년 2월 27일

databricks

목록 보기
30/45

데이터를 분석하기 위해 매번 SQL 쿼리를 짜야 했던 시대는 끝났습니다. Databricks가 2024년 GA(정식 출시)한 AI/BI Genie는 "매출 상위 10개 제품 보여줘"라고 입력하면, 자동으로 SQL을 생성하고 결과를 시각화해주는 대화형 분석 도구입니다.

이 글에서는 Genie Space(구 Genie Data Room)의 개념부터 실제 설정 방법, 운영 팁까지 실무 관점에서 정리합니다.


1. AI/BI Genie란 무엇인가?

┌─────────────────────────────────────────────────────┐
│              Databricks AI/BI Suite                 │
│                                                     │
│   ┌─────────────────┐    ┌─────────────────────┐   │
│   │  AI/BI Dashboard│    │  AI/BI Genie Space  │   │
│   │                 │    │                     │   │
│   │ • 정기 보고용   │    │ • 자연어 대화형    │   │
│   │ • 고정 시각화   │    │ • 라스트마일 분석  │   │
│   │ • 팀 대시보드   │    │ • 자기주도 탐색    │   │
│   └─────────────────┘    └─────────────────────┘   │
└─────────────────────────────────────────────────────┘

Genie는 Databricks가 제공하는 대화형 데이터 탐색 인터페이스입니다. 비즈니스 사용자가 SQL을 몰라도 자연어로 데이터에 질문하고, 즉시 인사이트를 얻을 수 있게 설계되었습니다.

핵심 특징은 다음과 같습니다.

  • 자연어 → SQL 자동 변환: 사용자의 질문을 SQL로 자동 변환해 실행
  • 대화 컨텍스트 유지: 이전 질문을 기반으로 후속 질문 가능
  • Compound AI 시스템: Chain-of-Thought 추론으로 복잡한 쿼리 처리
  • No-Code 분석: 데이터 팀 없이 비즈니스 팀이 직접 데이터 탐색
  • 2024년 GA: 추가 라이선스 없이 Databricks SQL 고객이라면 바로 사용 가능

💡 Genie Space vs. Genie Data Room: 초기에는 "Genie Data Room"이라고 불렀으나, 현재는 "AI/BI Genie Space" 로 명칭이 통일되었습니다. 동일한 기능입니다.

📸 공식 UI 스크린샷 참고: Databricks 공식 문서 — What is a Genie Space


2. 어떻게 동작하나? — 내부 구조 이해하기

flowchart TD
    A["👤 사용자 질문\n(자연어)"] --> B["🔍 관련 테이블·컬럼 식별\n(Knowledge Store 참조)"]
    B --> C["🧠 SQL 생성 계획\n(Chain-of-Thought 추론)"]
    C --> D["⚙️ SQL 쿼리 실행\n(SQL Warehouse)"]
    D --> E{"Inspect Mode\n활성화?"}
    E -- Yes --> F["🔎 쿼리 검증\n(날짜·필터 오류 체크)"]
    F --> G["📊 결과 시각화\n+ 텍스트 요약"]
    E -- No --> G
    G --> H["💬 사용자에게 답변"]

특히 Inspect Mode(베타)를 활성화하면 생성된 SQL이 올바른지 추가 검증합니다. 날짜 필터 오류, 잘못된 집계 기준 같은 문제를 스스로 찾아내고 수정하는 단계가 추가됩니다.


3. 사전 요구사항 체크리스트

Genie Space를 만들기 전에 아래 사항을 반드시 확인하세요.

항목요구사항
데이터 등록 위치Unity Catalog에 등록된 테이블/뷰 필수
컴퓨팅Pro 또는 Serverless SQL Warehouse
최대 테이블 수30개 (권장: 5개 이하)
필요 권한Genie Space 생성 시 CAN EDIT 이상
처리량 (UI)워크스페이스당 분당 20 질문
처리량 (API)워크스페이스당 분당 5 질문 (Free Tier)

4. Genie Space 생성하기 — 단계별 가이드

Step 1: 새 Genie Space 만들기

Databricks 워크스페이스 좌측 사이드바에서 Genie 아이콘을 클릭한 뒤, 우측 상단 New 버튼을 누릅니다.

[Databricks 워크스페이스 화면]

사이드바                  메인 화면
┌──────────┐            ┌──────────────────────────────┐
│ 🏠 Home  │            │ Genie Spaces         [+ New] │
│ 📊 SQL   │            │──────────────────────────────│
│ 🧞 Genie │ ◀ 클릭     │ 즐겨찾기  인기  최근 수정    │
│ 📓 Note  │            │                              │
│ ⚙️ Settings│           │  [Space 1]  [Space 2]  ...  │
└──────────┘            └──────────────────────────────┘

📸 상세 UI 가이드: Set up and manage a Genie space

Step 2: 데이터 소스 연결

Unity Catalog에서 분석에 사용할 테이블과 뷰를 선택합니다.

✅ 좋은 설계 예시 (5개 이하)
├── orders          (주문 테이블)
├── customers       (고객 테이블)
├── products        (상품 테이블)
└── monthly_sales   (집계 뷰 — 복잡한 조인을 미리 정의)

❌ 피해야 할 설계
└── raw_* 테이블 30개를 전부 추가 → 정확도 저하

Step 3: SQL Warehouse 설정

Serverless SQL Warehouse를 사용하면 콜드 스타트 없이 즉시 쿼리가 실행되어 사용자 경험이 크게 향상됩니다. Pro Warehouse도 사용 가능하지만 초기 쿼리 실행까지 수초가 걸릴 수 있습니다.

Step 4: Knowledge Store 구성

Knowledge Store는 Genie가 우리 조직의 데이터를 올바르게 이해하도록 가르치는 공간입니다. 이 단계가 Genie 품질의 핵심입니다.


5. Knowledge Store 세팅 — Genie 정확도의 핵심

graph LR
    A["Knowledge Store"] --> B["📝 테이블·컬럼 설명"]
    A --> C["💡 예시 SQL 쿼리"]
    A --> D["🔤 비즈니스 용어 매핑"]
    B --> E["Genie 정확도 향상"]
    C --> E
    D --> E

5-1. 테이블·컬럼 설명 작성

-- Unity Catalog에서 컬럼에 설명을 추가하는 예시
COMMENT ON COLUMN orders.status IS
  '주문 상태. 가능한 값: pending(대기), confirmed(확정),
   shipped(배송중), delivered(배송완료), cancelled(취소)';

COMMENT ON TABLE customers IS
  '전체 가입 고객 정보. 탈퇴 고객(is_deleted=true)은
   일반적으로 분석에서 제외할 것.';

5-2. 예시 SQL 등록

비즈니스 팀이 자주 묻는 질문과 그에 맞는 SQL을 미리 등록해두면, Genie가 유사한 질문에 더 정확한 쿼리를 생성합니다.

-- 예시: "이번 달 매출 상위 10개 제품은?"
SELECT
    p.product_name,
    SUM(o.amount)    AS total_sales,
    COUNT(o.order_id) AS order_count
FROM orders o
JOIN products p ON o.product_id = p.product_id
WHERE DATE_TRUNC('month', o.created_at) = DATE_TRUNC('month', CURRENT_DATE)
  AND o.status != 'cancelled'
GROUP BY p.product_name
ORDER BY total_sales DESC
LIMIT 10;

5-3. 비즈니스 용어 매핑

우리 회사에서 "고객"이라고 부르는 것이 DB에는 user_account 테이블에 있다면, 이를 Genie에게 명시적으로 알려줘야 합니다.

비즈니스 용어데이터 정의
고객customers 테이블 (is_deleted = false)
GMVSUM(order_amount) where status != 'cancelled'
활성 사용자last_login_at >= CURRENT_DATE - 30
신규 유저created_at >= CURRENT_DATE - 7

6. 실제 사용 시나리오

📸 실제 채팅 UI 참고: Use a Genie space to explore business data

설정이 완료된 Genie Space를 비즈니스 팀이 사용하는 방법입니다.

대화 예시 — 마케팅 팀 활용:

🧑 "지난 분기 채널별 신규 가입자 수 보여줘"
──────────────────────────────────────────────
🤖  SQL 생성 → 실행 → 막대 그래프 생성

     채널별 신규 가입자 (2024 Q4)
     이메일     ████████  1,243명
     SNS        █████     876명
     검색광고   █████████████  2,104명

🧑 "그 중에서 30일 이내 구매 전환율은?"
──────────────────────────────────────────────
🤖  [이전 결과 컨텍스트 유지 → 추가 JOIN 쿼리 실행]

     이메일    12.3%
     SNS       8.7%
     검색광고  19.2%  ← 가장 높음

🧑 "검색광고 전환율이 높은 이유 분석해줘"
──────────────────────────────────────────────
🤖  [상품 카테고리·지역·디바이스 기준 추가 분석 제공]

각 대화 스레드는 컨텍스트를 유지하므로, 이전 질문을 반복하지 않아도 됩니다.


7. 대시보드와 Genie 연동

Databricks AI/BI 대시보드에서 Genie Space를 연동하면, 대시보드 뷰어에게 "Ask Genie" 버튼이 표시됩니다.

sequenceDiagram
    actor 뷰어
    participant 대시보드
    participant Genie Space
    participant SQL Warehouse

    뷰어->>대시보드: 대시보드 열람
    뷰어->>Genie Space: "Ask Genie" 버튼 클릭
    뷰어->>Genie Space: "지역별 데이터도 보여줘"
    Genie Space->>SQL Warehouse: SQL 쿼리 실행
    SQL Warehouse-->>Genie Space: 결과 반환
    Genie Space-->>뷰어: 시각화 + 설명 제공

⚠️ 보안 주의사항: 대시보드에 Genie를 연동할 때, 차트에 표시되지 않는 컬럼도 Genie가 쿼리할 수 있습니다. 민감한 데이터가 있다면 반드시 Row-Level Security 또는 컬럼 마스킹을 먼저 설정하세요.


8. Genie API 활용 — 챗봇에 데이터 분석 기능 연결

Genie는 REST API를 제공하여 사내 챗봇이나 Slack 봇에 데이터 분석 기능을 연동할 수 있습니다.

import requests, time

DATABRICKS_HOST  = "https://your-workspace.azuredatabricks.net"
DATABRICKS_TOKEN = "dapi..."
SPACE_ID         = "01ef..."

headers = {
    "Authorization": f"Bearer {DATABRICKS_TOKEN}",
    "Content-Type": "application/json"
}

# 1) 새 대화 시작
resp = requests.post(
    f"{DATABRICKS_HOST}/api/2.0/genie/spaces/{SPACE_ID}/start-conversation",
    headers=headers,
    json={"content": "지난 주 일별 주문 건수를 알려줘"}
)
data           = resp.json()
conversation_id = data["conversation_id"]
message_id      = data["message_id"]

# 2) 결과 폴링 (비동기)
while True:
    result = requests.get(
        f"{DATABRICKS_HOST}/api/2.0/genie/spaces/{SPACE_ID}"
        f"/conversations/{conversation_id}/messages/{message_id}",
        headers=headers
    ).json()
    if result["status"] == "COMPLETED":
        print(result["attachments"])  # SQL 결과 포함
        break
    time.sleep(1)

📌 API 무료 티어 (Public Preview): 워크스페이스당 분당 5 질문 제한. 프로덕션 활용 시 Databricks 계정 팀에 문의 권장.


9. 운영 모범 사례 요약

테이블 구성 전략: 5개 이하의 핵심 테이블을 선택하고, 복잡한 조인은 뷰(View)로 미리 만들어 추가합니다. 30개 이상의 테이블이 필요하다면 관련 테이블을 Metric View로 통합하는 것을 권장합니다.

컬럼 설명 작성: Unity Catalog의 테이블/컬럼 Comment를 반드시 작성합니다. 설명이 없는 컬럼은 Genie가 추론만으로 처리하므로 오류 가능성이 높아집니다.

예시 SQL 축적: 비즈니스 팀이 반복적으로 묻는 질문 TOP 20을 정리해 예시 SQL로 등록합니다. 초기 세팅 이후에도 지속적인 업데이트가 중요합니다.

피드백 루프 운영: Genie가 잘못된 답변을 내면 담당자에게 바로 피드백이 전달되도록 프로세스를 만듭니다. Genie Space의 품질은 지속적인 큐레이션으로 향상됩니다.


10. 한계점과 주의사항

아무리 강력한 도구라도 한계는 있습니다.

  • 복잡한 비즈니스 로직: 다단계 집계나 도메인 특화 로직은 Genie가 정확히 처리하지 못할 수 있습니다. 이럴 때는 예시 SQL로 명시적으로 가르치는 것이 효과적입니다.
  • 실시간 데이터: SQL Warehouse를 통해 Delta Lake를 쿼리하므로 밀리초 단위 실시간 분석에는 적합하지 않습니다.
  • 보안: Row-Level Security 설정이 없다면 Genie를 통해 모든 사용자가 동일 수준으로 데이터에 접근합니다.
  • 처리량 제한: 대규모 팀에서 동시 사용 시 분당 질문 수 제한에 걸릴 수 있습니다. API 활용 시 Rate Limit 처리 로직을 반드시 구현하세요.

마무리

Databricks AI/BI Genie는 단순한 BI 도구를 넘어, 데이터 팀과 비즈니스 팀의 협업 방식을 바꾸는 플랫폼입니다. 초기 설정에 공을 들일수록 — 특히 Knowledge Store 구성과 예시 SQL 등록 — 이후 비즈니스 팀이 자립적으로 데이터를 탐색할 수 있게 됩니다.

처음에는 테이블 3~5개와 핵심 예시 SQL 10개로 파일럿을 시작해보세요. 사용자 피드백을 반영해 지속적으로 개선하는 것이 성공의 열쇠입니다.


참고 자료

profile
AI를 꿈꾸는 BackEnd개발자

0개의 댓글