1. 왜 시스템 테이블이 필요한가
관찰가능성 (Observability) 부재 문제
데이터 플랫폼을 운영하다 보면 다음과 같은 질문이 반복적으로 생깁니다.- “이번 달 클라우드 비용이 갑자기 왜 늘었지?”
- “누가 프로덕션 테이블을 실수로 삭제했을까?”
- “이 파이프라인 Job이 점점 느려지는 것 같은데, 언제부터였지?”
- “우리 팀에서 실제로 사용하지 않는 클러스터가 얼마나 되지?”
system 카탈로그 아래의 표준 테이블로 제공하여, 익숙한 SQL 한 줄로 플랫폼 전반을 관찰할 수 있게 합니다.
시스템 테이블로 해결하는 주요 과제
2. 시스템 테이블 개요
system 카탈로그 구조
활성화 방법
시스템 테이블은 Unity Catalog 가 활성화된 계정에서만 사용할 수 있습니다. 대부분의 테이블은 자동으로 활성화되지만, 일부 스키마는 Account Admin이 명시적으로 활성화해야 합니다. Account Console → Settings → System tables 메뉴에서 각 스키마를 활성화합니다. 또는 REST API로도 가능합니다.참고: System tables - Databricks Documentation
데이터 보존 기간 (Data Retention)
주의: 보존 기간은 Databricks 정책에 따라 변경될 수 있습니다. 장기 보관이 필요하다면 별도 테이블로 복사하는 파이프라인 구축을 권장합니다.
3. 주요 시스템 테이블 상세
3-1. system.billing.usage — 비용 분석
system.billing.usage 는 Databricks의 모든 워크로드에서 소비한 DBU (Databricks Unit) 사용량을 행 단위로 기록합니다. 클러스터, SQL Warehouse, Jobs, Serverless, DLT 파이프라인 등 모든 제품의 사용량이 포함됩니다.
주요 컬럼
system.billing.list_prices 를 조인하면 DBU를 실제 USD 비용으로 변환할 수 있습니다.
3-2. system.access.audit — 감사 로그
system.access.audit 는 Databricks 플랫폼에서 발생하는 모든 사용자 활동 을 기록합니다. 테이블 조회, 클러스터 생성, 권한 변경, 토큰 발급 등 모든 API 호출이 포함됩니다. 보안 감사(Security Audit), GDPR/규정 준수, 내부 보안 정책 이행 증빙에 핵심적으로 사용됩니다.
주요 컬럼
3-3. system.compute.clusters — 클러스터 사용 현황
system.compute.clusters 는 계정 내 모든 클러스터의 설정, 상태, 이벤트 이력 을 제공합니다. 비용 누수(자동 종료 미설정, 과도한 노드 수)를 발견하고, 클러스터 사용 패턴을 최적화하는 데 활용합니다.
주요 컬럼