Data Engineering
[Databricks] Genie로 데이터 질문하고 대시보드 만들기 - 활용 2편
Genie Agent로 판매 데이터를 질문한 뒤 뉴욕 택시 데이터로 전환한다. Genie Code로 운행 추이·히트맵·지역 순위와 파라미터를 갖춘 대시보드를 자동 구성한다.
목차
활용 1편에서는 카드와 필터를 직접 만들었다. 이번에는 Genie에 한국어로 질문하고, AI로 대시보드까지 구성한다. 질문 실습은 1편의 판매 Gold로 시작하고, 대시보드 실습부터 뉴욕 택시 데이터로 전환한다.
대시보드가 정해 둔 지표를 반복해서 보는 화면이라면, Genie는 질문에 맞는 조회를 만드는 대화형 분석 도구다. 예를 들어 “상품별 판매 금액을 보여줘”라고 질문하면 그에 맞는 SQL과 결과를 만든다.
먼저 Genie Agent에서 데이터를 질문하고 SQL로 검산한다. 이어서 대시보드 편집 화면의 Genie Code에 카드·차트·파라미터 생성을 맡긴다. 두 기능은 실행 위치와 역할이 다르다. Genie Agent의 예전 이름은 Genie Space다. Genie Agent 개념
| 실습 | 실행 위치 | 결과 |
|---|---|---|
| 1~5절: 판매 데이터 질문 | Genie Agent 대화 | SQL과 결과 검산 |
| 6절: 택시 데이터 준비 | Notebook | 분석용 뷰와 기준값 |
| 7절: 택시 대시보드 자동 구성 | 대시보드의 Genie Code | 카드·추이·히트맵·지역 분석·입력 위젯 |
실습 화면은 2026년 10월 14일과 16일 Databricks Free Edition에서 촬영했다. 메뉴와 기능 설명은 10월 16일 공식 문서를 기준으로 작성했다. 답변의 문장·컬럼명·표현 순서는 달라질 수 있으므로 조회 조건과 계산 결과를 기준으로 확인한다.
1. 기준값 SQL로 확인하기
기초 5편의 두 번째 CSV 처리와 Gold 집계까지 마친 상태에서 시작한다. 질문 실습에 사용할 테이블은 다음 하나다.
| |
활용 1편에서 만든 bakehouse_bi_lab 폴더에 Python Notebook 01_check_genie를 추가하고, Compute는 Serverless로 선택한다. 첫 SQL 셀에서 아래 코드를 실행한다.
| |
예상 결과는 금액 67.00·수량 16·원본 판매 내역 3행·Gold 2행이다. 이 값을 Genie 답변의 비교 기준으로 사용한다.
Gold 한 행은 날짜·매장·상품별 집계다. 원본 판매 내역 수는 SUM(source_row_count) 이며, COUNT(*)는 집계된 Gold 행 수다. 이 차이를 알아야 “판매 내역이 몇 건인가?”라는 질문을 제대로 검산할 수 있다. 이 예제의 내역 수를 주문 수나 고객 수로 해석하지 않는다.
2. Genie Agent 만들기
- 왼쪽 Genie Agents를 누른다.
- 오른쪽 위 New를 누른다.
- 데이터 선택 창에서
workspace → bakehouse_file_lab → gold_daily_product_sales를 선택한다. - Create를 누른다.
Genie의 SQL은 Notebook Compute가 아닌 SQL warehouse에서 실행된다. 작성 계정에는 warehouse의 CAN USE와 대상 테이블의 조회 권한이 필요하다. 생성과 설정
이 Agent에는 Gold 테이블 하나만 연결한다. 1편의 daily_product_sales는 대시보드 안의 데이터셋 이름이다. 여기서는 원본 Unity Catalog 테이블을 선택한다.
생성 직후 Genie Code가 설명이나 예제 쿼리를 제안할 수 있다. 아래에서 직접 등록할 규칙과 충돌하지 않는지 확인한 뒤 채택한다.
3. 지표 규칙 등록하기
Genie는 컬럼 이름뿐 아니라 테이블이 어떤 단위로 집계됐는지 알아야 한다. 이번에는 모든 질문에 적용할 규칙을 짧은 텍스트로 등록한다. 규칙 구성
Configure → Instructions의 General Instructions에 아래 내용을 넣고 Save를 누른다.
| |
규칙에 정답인 67이나 16을 넣지 않는다. 값을 외우게 하는 대신 계산 방법을 알려주는 것이다. 규칙을 등록해도 생성된 SQL이 맞는지는 별도로 확인한다.
4. 예제 질문과 SQL 등록하기
텍스트 규칙은 의미를 설명하고, 예제 SQL은 질문을 실제 쿼리로 옮기는 방법을 보여준다. Configure → Examples → Add → Example query를 선택한다. 질문 제목에는 아래 문장을 넣는다.
| |
SQL 입력란에는 다음 코드를 넣고 저장한다. 여기에는 %sql을 붙이지 않는다.
| |
예제 SQL은 비슷한 질문을 처리할 때 참고하는 기준이다. 이후 질문에서 항상 이 쿼리를 그대로 쓴다는 뜻은 아니다. 예제 SQL과 텍스트 지침
5. 전체·상품별 결과 질문하기
Agent의 New chat을 열고 아래 질문을 입력한다. 모드 선택이 보이면 이번 단순 집계는 Chat 모드에서 진행한다.
| |
예상 값은 67.00·16·3이다. 답변의 Show code 또는 Show generated code를 열고 다음을 확인한다.
workspace.bakehouse_file_lab.gold_daily_product_sales를 조회했는가.- 금액·수량·내역 수에 각각
SUM을 썼는가. - 요청하지 않은 날짜·상품 조건이 붙지 않았는가.
문장이 자연스럽다는 이유만으로 정답으로 보지 않는다. SQL이 질문에 맞고 결과도 기준값과 같아야 한다. 질문과 생성 코드 확인
같은 대화에서 이어서 질문한다.
| |
| product | 판매 금액 | 판매 수량 | 원본 판매 내역 수 |
|---|---|---|---|
| Outback Oatmeal | 40.00 | 7 | 2 |
| Orchard Oasis | 27.00 | 9 | 1 |
01_check_genie의 새 SQL 셀에서 아래 코드를 실행해 비교한다.
| |
Genie의 SQL 문장이 달라도 같은 조건과 집계를 수행하면 된다. 전체 합계와 상품별 합계가 맞는지 확인한다.
Genie의 전체 합계는 67·16·3으로 기준값과 같았다. 상품별 답변도 Outback Oatmeal 40·7·2, Orchard Oasis 27·9·1로 나왔다.
6. 대시보드용 데이터 준비하기
여기부터는 판매 Gold 대신 뉴욕 택시 데이터를 사용한다. 판매 예제는 Gold 2행이라 결과를 검산하기 쉽다. 반면 다양한 차트를 만들기에는 날짜와 상품이 적다. 택시 데이터에는 시간·지역·거리·운임이 있어 AI가 여러 관점의 대시보드를 구성하는 과정을 살펴보기 좋다.
원본은 Databricks의 samples.nyctaxi.trips다. 별도 파일 업로드 없이 조회하는 샘플 테이블이며, 각 행은 운행 기록이다. 샘플 데이터
공통 분석 뷰 만들기
bakehouse_bi_lab 폴더에 Python Notebook 02_prepare_taxi 를 추가하고 Compute는 Serverless로 선택한다. 첫 SQL 셀에서 아래 코드를 실행한다.
| |
뷰는 원본 데이터를 복사하지 않고 조회 조건과 컬럼 계산을 저장한다. CREATE VIEW
이번 실습은 거리 0 초과·10마일 미만, 운임 0 초과·50달러 미만, 소요 시간 0 초과·120분 이하의 기록만 사용한다. 전체 뉴욕 택시 통계를 대표하는 데이터로 해석하지 않는다. 거리·운임 조건은 공식 대시보드 예제와 같으며, 소요 시간 조건은 이 실습에서 추가했다. 택시 대시보드 예제
duration_minutes는 승하차 시각의 차이를 초로 구한 뒤 분으로 환산한다. pickup_weekday는 일요일 1부터 토요일 7까지다. timestampdiff, dayofweek
2016년 기준값 확인
같은 Notebook의 새 SQL 셀에서 실행한다.
| |
위 SQL은 2016년 범위에서 실제 기록이 있는 첫날·마지막 날과 지표를 조회한다. 아래 대시보드 캡처에서는 2016-01-01~2016-02-29가 표시됐다.
이 출력으로 사용할 데이터의 기간과 규모를 확인한다. 0행이면 원본과 조회 조건을 확인한다.
택시 데이터의 fare_amount는 운임이다. 팁·통행료 등을 합친 전체 결제액이나 순이익으로 표시하지 않는다.
7. Genie Code로 택시 대시보드 자동 구성하기
Genie Agent 대화창에서 나와 Dashboards로 이동한다. 판매 Agent는 그대로 두고 택시용 대시보드를 새로 만든다. 판매 Agent의 지침은 새 대시보드에 자동 전달되지 않으므로, 필요한 규칙을 이번 프롬프트에 넣는다.
- Dashboards → Create로 새 대시보드를 만든다.
- 이름을
NYC Taxi 운행 분석으로 바꾼다. - Canvas 중앙의 Genie Code 입력란을 사용한다. 보이지 않으면 Genie Code 사이드 패널을 연다.
- 모드 선택이 보이면 Agent를 선택한다.
대시보드 자동 작성에는 지원 지역과 AI 기능 설정 조건이 있다. 기능이 보이지 않으면 해당 workspace에서 사용할 수 있는지 확인한다. 자동 작성과 요구 조건
아래 내용을 대시보드의 Genie Code에 입력한다. @로 뷰를 검색해 컨텍스트에 추가할 때는 workspace.nyctaxi_bi_lab.trips_dashboard인지 확인한다.
| |
Genie Code가 계획이나 변경 승인을 요청하면 사용할 뷰와 생성할 요소를 확인한 뒤 진행한다. 작업 중에는 현재 탭을 열어 둔다. 배치와 데이터셋 이름은 실행마다 달라질 수 있다. 자동 작성 흐름
설명만 나오면 같은 대화에 다음을 입력한다.
| |
구성이 끝나면 화면을 살펴보고 필요하다면 후속 요청한다.
| |
AI가 구성한 대시보드
운행 개요에는 입력 컨트롤 네 개, 핵심 지표 카드 네 개, 일별 추이와 요일×시간대 히트맵이 배치됐다. 전체 개요 화면의 카드는 운행 건수 2.07만, 운임 합계 21.71만, 평균 운임 10.5, 평균 거리 2.21로 표시됐다. 앞의 두 값은 화면에서 축약된 표시다.
일별 추이는 운행 건수를 막대, 운임 합계를 선으로 표시한 Combo 차트로 만들어졌다. 다음 캡처는 2016-02-27을 선택한 상태다. 운행 건수 394 등 카드 값은 전체 합계와 구분한다.
지역·운행 특성 페이지에는 출발·도착 우편번호별 운행 순위, 거리와 운임의 산점도, 소요 시간 분포가 배치됐다. 이 캡처에도 차트 선택 조건이 남아 있다. 산점도는 요청한 대로 최대 2,000행 표시로 제목이 붙었다.
마무리
판매 데이터에서는 Genie Agent가 질문을 SQL로 바꾸는 과정을 살펴봤다. 택시 데이터로 전환한 뒤에는 Genie Code에 분석할 항목과 화면 구성을 요청해 카드·추이 차트·히트맵·지역 순위·입력 컨트롤을 갖춘 두 페이지 대시보드를 구성했다.
1편에서 직접 배치했던 데이터셋과 위젯을 이번에는 AI가 생성했다. AI에 사용할 데이터와 지표 계산법, 필요한 차트를 구체적으로 전달하고, 후속 요청으로 화면을 다듬는 데까지가 이번 실습이다.
시리즈
Databricks 활용
- [Databricks] Gold 테이블로 BI 판매 대시보드 만들기 - 활용 1편
- [Databricks] Genie로 데이터 질문하고 대시보드 만들기 - 활용 2편 현재 글









