개발기록장/Data

[Databricks] 1-4장 Genie를 사용한 BI 만들기

노랭토끼 2026. 6. 3. 19:54
반응형

이번 장에서는 Databricks Genie를 활용하여 BI를 만들어 보려 합니다.
만든 BI를 누구나 접근할 수 있는 앱으로 마지막에 만드는 것이 목표입니다.

1. Genie Code에 데이터를 참고하여 분석을 맡기기

  • 만들어진 최종 데이터(Gold 테이블)를 확인하여 유의미한 분석 대시보드를 추천 해달라고 하였습니다.
  • 지니가 데이터를 확인하여 어떤 도표를 만드는게 좋은지 추천해줍니다.
  • 현업에 계실 경우 자사의 데이터를 학습 시키면 그 데이터를 토대로 Genie가 인사이트를 제공합니다.

2. 대시보드가 자동으로 만들어지는 과정

  • 1단계: 초기 설정
    • 빈 대시보드 "Bakehouse Sales & Performance Dashboard" 생성
    • 2개 데이터셋 준비:
      • 일별 매출 분석 데이터
      • 프랜차이즈 성과 데이터
    2단계: 위젯 스키마 확인
    • 최초 위젯 생성 시도시 오유효성 검사 오류로 실패
    • 문제 파악 후 리 트라이
      • 차트 encodings에 특정 속성 누락
      • 파이 차트에서 잘못된 encoding 이름 사용
      • 테이블에서 존재하지 않는 속성 사용
    • getVizTypeDefinition 도구로 6가지 위젯 타입의 정식 스키마 확인 (line, bar, scatter, pie, counter, table)
    3단계: 각 데이터에 맞는 위젯 생성 
    • Line 차트 - 시간별 매출 추이
    • Bar 차트 - 제품별 매출
    • Scatter 차트 - 프랜차이즈 성과
    • Pie 차트 - 카테고리별 분포
    • Counter - 총 매출
    • Table - 매출 상세 내역
    4단계: 데이터 오류 수정
    • getDashboardConfig로 대시보드 상태 확인
    • fetchWidgetRenderData로 6개 위젯 렌더링 검증
    • 4개 위젯에서 데이터 컬럼 불일치 발견
    • editWidgetsV2로 4개 위젯 업데이트
    • 재검증으로 모든 위젯 정상 작동 확인
  • 올바른 스키마 및 데이터로 6개 위젯 생성 성공

3. 완성된 BI 대시보드

  • 데이터 브릭스의 대시보드 란에 방금 만들어진 데이터가 BI로 잘 보이고 있습니다.
  • 위의 대시보드를 데이터브릭스에 접근 후에만 접근이 가능하다는 단점이 있습니다.
  • 3. 완성된 BI 대시보드

4. 심화(앱으로 배포하기)

아래 과정을 genie에게 시킴으로써 스스로 코드를 만들도록 유도하였습니다.
사용 방식 :  Databricks apps를 이용하여 대시보드를  Streamlit 앱을 생성

1단계: 앱 생성

  • Databricks App 생성
    • 주의점 : 앱 이름은 소문자, 숫자, 대시(-)만 허용

2단계: 앱 상태 확인

  • runDatabricksCli 로 앱 초기 상태 확인
  • Compute가 STARTING 상태임을 파악
    • 주의점 : STARTING 이 끝난 이후에 작업을 진행하여야 함
  • 생성된 앱 URL 주소 확인

3단계: 소스 파일 디렉토리 생성

  • 해당 앱의 소스를 보관할 디렉토리 생성

4단계: Streamlit 코드 작성(.py)

  • createAsset로 빈 파이썬 파일 생성
  • editAsset로 전체 Streamlit 코드 작성:
    • Databricks SQL 연결 함수
    • 두 테이블에서 데이터 로드
    • 사이드바 필터 (날짜 범위, 제품, 프랜차이즈)
    • 주요 지표 카드 (총 매출, 거래 수, 고객 수, 평균 거래 금액)
    • 5개 시각화: 라인 차트, 바 차트, 산점도, 파이 차트, 데이터 테이블
    • CSV 다운로드 기능

5단계: 앱 설정 파일 작성 (.yaml)

  • createAsset로 빈 yaml 파일 생성
  • editAsset로 앱 구성 작성:
    • Streamlit 실행 명령어 
    • 포트 설정$DATABRICKS_APP_PORT 환경 변수 사용 (하드코딩 금지)
    • 환경 변수: Databricks 서버 호스트, SQL Warehouse 경로, 토큰
    • 리소스: 기본 SQL Warehouse 연결

6단계: 의존성 파일 작성 (.txt)

  • createAsset로 빈 파일 생성
  • editAsset로 필요한 패키지 명시:
    • streamlit
    • pandas
    • plotly
    • databricks-sql-connector
    • pyarrow

7단계: 앱 배포

  • runDatabricksCli로 소스 코드 배포

8단계: 배포 확인

  • runDatabricksCli 로 최종 상태 확인
  • 앱 상태 체크
  • Compute 상태 체크
  • 로그 확인 시도 (PAT 인증 제한으로 실패, 하지만 앱은 정상 작동)