데이터를 분석하기 위해 매번 SQL 쿼리를 짜야 했던 시대는 끝났습니다. Databricks가 2024년 GA(정식 출시)한 AI/BI Genie는 "매출 상위 10개 제품 보여줘"라고 입력하면, 자동으로 SQL을 생성하고 결과를 시각화해주는 대화형 분석 도구입니다.
이 글에서는 Genie Space(구 Genie Data Room)의 개념부터 실제 설정 방법, 운영 팁까지 실무 관점에서 정리합니다.
┌─────────────────────────────────────────────────────┐
│ Databricks AI/BI Suite │
│ │
│ ┌─────────────────┐ ┌─────────────────────┐ │
│ │ AI/BI Dashboard│ │ AI/BI Genie Space │ │
│ │ │ │ │ │
│ │ • 정기 보고용 │ │ • 자연어 대화형 │ │
│ │ • 고정 시각화 │ │ • 라스트마일 분석 │ │
│ │ • 팀 대시보드 │ │ • 자기주도 탐색 │ │
│ └─────────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────┘
Genie는 Databricks가 제공하는 대화형 데이터 탐색 인터페이스입니다. 비즈니스 사용자가 SQL을 몰라도 자연어로 데이터에 질문하고, 즉시 인사이트를 얻을 수 있게 설계되었습니다.
핵심 특징은 다음과 같습니다.
💡 Genie Space vs. Genie Data Room: 초기에는 "Genie Data Room"이라고 불렀으나, 현재는 "AI/BI Genie Space" 로 명칭이 통일되었습니다. 동일한 기능입니다.
📸 공식 UI 스크린샷 참고: Databricks 공식 문서 — What is a Genie Space
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이 올바른지 추가 검증합니다. 날짜 필터 오류, 잘못된 집계 기준 같은 문제를 스스로 찾아내고 수정하는 단계가 추가됩니다.
Genie Space를 만들기 전에 아래 사항을 반드시 확인하세요.
| 항목 | 요구사항 |
|---|---|
| 데이터 등록 위치 | Unity Catalog에 등록된 테이블/뷰 필수 |
| 컴퓨팅 | Pro 또는 Serverless SQL Warehouse |
| 최대 테이블 수 | 30개 (권장: 5개 이하) |
| 필요 권한 | Genie Space 생성 시 CAN EDIT 이상 |
| 처리량 (UI) | 워크스페이스당 분당 20 질문 |
| 처리량 (API) | 워크스페이스당 분당 5 질문 (Free Tier) |
Databricks 워크스페이스 좌측 사이드바에서 Genie 아이콘을 클릭한 뒤, 우측 상단 New 버튼을 누릅니다.
[Databricks 워크스페이스 화면]
사이드바 메인 화면
┌──────────┐ ┌──────────────────────────────┐
│ 🏠 Home │ │ Genie Spaces [+ New] │
│ 📊 SQL │ │──────────────────────────────│
│ 🧞 Genie │ ◀ 클릭 │ 즐겨찾기 인기 최근 수정 │
│ 📓 Note │ │ │
│ ⚙️ Settings│ │ [Space 1] [Space 2] ... │
└──────────┘ └──────────────────────────────┘
📸 상세 UI 가이드: Set up and manage a Genie space
Unity Catalog에서 분석에 사용할 테이블과 뷰를 선택합니다.
✅ 좋은 설계 예시 (5개 이하)
├── orders (주문 테이블)
├── customers (고객 테이블)
├── products (상품 테이블)
└── monthly_sales (집계 뷰 — 복잡한 조인을 미리 정의)
❌ 피해야 할 설계
└── raw_* 테이블 30개를 전부 추가 → 정확도 저하
Serverless SQL Warehouse를 사용하면 콜드 스타트 없이 즉시 쿼리가 실행되어 사용자 경험이 크게 향상됩니다. Pro Warehouse도 사용 가능하지만 초기 쿼리 실행까지 수초가 걸릴 수 있습니다.
Knowledge Store는 Genie가 우리 조직의 데이터를 올바르게 이해하도록 가르치는 공간입니다. 이 단계가 Genie 품질의 핵심입니다.
graph LR
A["Knowledge Store"] --> B["📝 테이블·컬럼 설명"]
A --> C["💡 예시 SQL 쿼리"]
A --> D["🔤 비즈니스 용어 매핑"]
B --> E["Genie 정확도 향상"]
C --> E
D --> E
-- Unity Catalog에서 컬럼에 설명을 추가하는 예시
COMMENT ON COLUMN orders.status IS
'주문 상태. 가능한 값: pending(대기), confirmed(확정),
shipped(배송중), delivered(배송완료), cancelled(취소)';
COMMENT ON TABLE customers IS
'전체 가입 고객 정보. 탈퇴 고객(is_deleted=true)은
일반적으로 분석에서 제외할 것.';
비즈니스 팀이 자주 묻는 질문과 그에 맞는 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;
우리 회사에서 "고객"이라고 부르는 것이 DB에는 user_account 테이블에 있다면, 이를 Genie에게 명시적으로 알려줘야 합니다.
| 비즈니스 용어 | 데이터 정의 |
|---|---|
| 고객 | customers 테이블 (is_deleted = false) |
| GMV | SUM(order_amount) where status != 'cancelled' |
| 활성 사용자 | last_login_at >= CURRENT_DATE - 30 |
| 신규 유저 | created_at >= CURRENT_DATE - 7 |
📸 실제 채팅 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% ← 가장 높음
🧑 "검색광고 전환율이 높은 이유 분석해줘"
──────────────────────────────────────────────
🤖 [상품 카테고리·지역·디바이스 기준 추가 분석 제공]
각 대화 스레드는 컨텍스트를 유지하므로, 이전 질문을 반복하지 않아도 됩니다.
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 또는 컬럼 마스킹을 먼저 설정하세요.
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 계정 팀에 문의 권장.
테이블 구성 전략: 5개 이하의 핵심 테이블을 선택하고, 복잡한 조인은 뷰(View)로 미리 만들어 추가합니다. 30개 이상의 테이블이 필요하다면 관련 테이블을 Metric View로 통합하는 것을 권장합니다.
컬럼 설명 작성: Unity Catalog의 테이블/컬럼 Comment를 반드시 작성합니다. 설명이 없는 컬럼은 Genie가 추론만으로 처리하므로 오류 가능성이 높아집니다.
예시 SQL 축적: 비즈니스 팀이 반복적으로 묻는 질문 TOP 20을 정리해 예시 SQL로 등록합니다. 초기 세팅 이후에도 지속적인 업데이트가 중요합니다.
피드백 루프 운영: Genie가 잘못된 답변을 내면 담당자에게 바로 피드백이 전달되도록 프로세스를 만듭니다. Genie Space의 품질은 지속적인 큐레이션으로 향상됩니다.
아무리 강력한 도구라도 한계는 있습니다.
Databricks AI/BI Genie는 단순한 BI 도구를 넘어, 데이터 팀과 비즈니스 팀의 협업 방식을 바꾸는 플랫폼입니다. 초기 설정에 공을 들일수록 — 특히 Knowledge Store 구성과 예시 SQL 등록 — 이후 비즈니스 팀이 자립적으로 데이터를 탐색할 수 있게 됩니다.
처음에는 테이블 3~5개와 핵심 예시 SQL 10개로 파일럿을 시작해보세요. 사용자 피드백을 반영해 지속적으로 개선하는 것이 성공의 열쇠입니다.