1. 왜 시스템 테이블 대시보드가 필요한가
Databricks 플랫폼이 커질수록 비용, 보안, 성능을 개별 도구로 따로 추적하는 방식은 한계에 부딪힙니다. 시스템 테이블 (System Tables) 은 Unity Catalog 내에 자동으로 적재되는 운영 메타데이터로, 단일 SQL 인터페이스로 세 가지 핵심 관심사를 동시에 다룰 수 있습니다.| 관심사 | 문제 | 시스템 테이블 해법 |
|---|---|---|
| 비용 가시성 (Cost Visibility) | 어떤 팀/프로젝트가 얼마나 쓰는지 모름 | billing.usage + billing.list_prices |
| 보안 감사 (Security Audit) | 누가 민감 데이터에 접근했는지 추적 불가 | access.audit |
| 운영 모니터링 (Ops Monitoring) | 실패 Job, 유휴 클러스터 자동 탐지 불가 | compute.clusters, lakeflow.job_run_timeline |
핵심 장점: 외부 로그 수집 파이프라인 없이 Databricks SQL + AI/BI 대시보드 만으로 운영 단일 창구(Single Pane of Glass)를 구성할 수 있습니다.
2. 시스템 테이블 활성화
필요 권한
- 계정 관리자 (Account Admin) 권한 필요
- Metastore에 Unity Catalog 활성화 필수
- 조회 권한 부여 시
system카탈로그에 대한USE CATALOG권한 및 각 스키마에SELECT권한 필요
UI로 활성화
- Account Console (accounts.azuredatabricks.net 또는 accounts.cloud.databricks.com) 접속
- Settings → Feature Enablement
- System Tables 항목에서 Enable 클릭
- 활성화 후 데이터 수집 시작까지 최대 24시간 소요
REST API로 활성화
특정 스키마만 선택적으로 활성화하거나 자동화 파이프라인에서 관리할 때 REST API를 사용합니다.조회 권한 부여
시스템 테이블 데이터는 읽기 전용 (Read-Only) 이며, system 카탈로그 내 각 스키마에 위치합니다. 활성화 이후 생성된 이벤트부터 데이터가 적재되며 소급 적용되지 않습니다.
3. 비용 모니터링 대시보드
billing.usage + list_prices 조인
billing.usage 단독으로는 DBU 수량만 알 수 있습니다. 실제 달러 비용을 계산하려면 billing.list_prices 와 조인해야 합니다.
팀별/프로젝트별 비용 분석
태그(Tag)를 클러스터와 Job에 부착하면custom_tags 컬럼으로 그룹화할 수 있습니다.
주별 비용 추이 (이상 탐지용)
4. 클러스터 운영 대시보드
비효율 클러스터 탐지
Auto-termination (자동 종료) 이 설정되지 않은 클러스터는 유휴 상태에서도 비용이 계속 발생합니다.장기 실행 클러스터 목록
5. 보안 감사 대시보드
로그인 실패 및 비정상 접근 패턴
민감 데이터 접근 로그
권한 변경 감사
6. Job 성능 대시보드
실패 Job 탐지
장기 실행 Job 탐지 (SLA 위반 탐지)
7. Databricks SQL Alert 설정
SQL Alert 는 Databricks SQL 쿼리 결과가 특정 조건을 충족할 때 Slack, 이메일, 웹훅으로 알림을 발송하는 기능입니다.비용 임계값 초과 알림
Alert 설정 절차
- Databricks SQL → Alerts → New Alert
- 위 쿼리를 연결하고 Trigger condition:
Value>0(결과가 1행 이상 반환되면 트리거) - Refresh schedule: 매일 오전 9시 (UTC+9 기준
0 0 * * *) - Notification destination 에서 Slack 채널 또는 이메일 그룹 지정
Alert는 SQL Warehouse 에서 실행됩니다. 비용 절감을 위해 Serverless SQL Warehouse 또는 Auto Stop이 짧은 Warehouse를 지정하세요.
보안 이상 탐지 Alert
8. 베스트 프랙티스
대시보드 새로고침 주기
| 대시보드 유형 | 권장 새로고침 주기 | 이유 |
|---|---|---|
| 비용 모니터링 | 1일 1회 (오전) | billing.usage 데이터 반영 지연 최대 3시간 |
| 보안 감사 | 1시간마다 | 이상 접근 패턴 조기 탐지 |
| Job 성능 | 30분마다 | 실패 Job 신속 대응 |
| 클러스터 현황 | 1시간마다 | 유휴 클러스터 비용 최소화 |
데이터 보존 (Data Retention) 관리
- 시스템 테이블 기본 보존 기간은 스키마마다 다릅니다 (
audit: 365일,billing.usage: 365일,compute: 365일) - 장기 보존이 필요한 경우 DEEP CLONE 또는 CTAS (CREATE TABLE AS SELECT) 로 별도 테이블에 스냅샷을 보관하세요
접근 권한 관리
- 최소 권한 원칙 (Least Privilege): 팀별로 필요한 스키마만 선택 부여
- 서비스 프린시펄 (Service Principal) 을 통한 대시보드 실행 권장 (개인 계정 의존성 제거)
- 접근 권한 변경은
system.access.audit로 자동 감사됨
권장 대시보드 패널 구성 요약
| 대시보드 | 주요 패널 | 데이터 소스 |
|---|---|---|
| 비용 관리 | 월별 DBU 추이, 팀별 비용, 비용 급증 알림 | system.billing.usage + system.billing.list_prices |
| 보안 감사 | 로그인 실패, 권한 변경, 대량 다운로드 | system.access.audit |
| Job 모니터링 | 실패율, 실행시간 추이, SLA 위반 | system.lakeflow.job_run_timeline |
| 클러스터 현황 | 유휴 클러스터, Auto-termination 미설정 | system.compute.clusters |
| 데이터 거버넌스 | 리니지 맵, 미사용 테이블, 접근 패턴 | system.lineage.*, system.access.audit |
정리
| 핵심 카테고리 | 대표 테이블 | 활용 |
|---|---|---|
| 감사 (Audit) | system.access.audit | 누가 무엇을 했는지 추적 |
| 빌링 (Billing) | system.billing.usage | 비용 분석, 예산 관리 |
| 컴퓨트 (Compute) | system.compute.clusters | 유휴 리소스 감지 |
| 워크플로우 (Workflow) | system.lakeflow.job_run_timeline | Job 성공/실패 모니터링 |
| 리니지 (Lineage) | system.lineage.table_lineage | 데이터 흐름 추적 |