Skip to main content

1. 왜 시스템 테이블이 필요한가

관찰가능성 (Observability) 부재 문제

데이터 플랫폼을 운영하다 보면 다음과 같은 질문이 반복적으로 생깁니다.
  • “이번 달 클라우드 비용이 갑자기 왜 늘었지?”
  • “누가 프로덕션 테이블을 실수로 삭제했을까?”
  • “이 파이프라인 Job이 점점 느려지는 것 같은데, 언제부터였지?”
  • “우리 팀에서 실제로 사용하지 않는 클러스터가 얼마나 되지?”
전통적인 데이터 플랫폼에서는 이런 질문에 답하려면 CloudWatch, CloudTrail, 별도 APM 도구, 혹은 수동 로그 분석이 필요했습니다. 도구가 분산되어 있고, 데이터 형식도 제각각이며, SQL로 바로 분석할 수 없다는 문제가 있었습니다. 시스템 테이블(System Tables) 은 이 문제를 해결합니다. Databricks 플랫폼이 스스로 생산하는 운영 데이터를 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 는 계정 내 모든 클러스터의 설정, 상태, 이벤트 이력 을 제공합니다. 비용 누수(자동 종료 미설정, 과도한 노드 수)를 발견하고, 클러스터 사용 패턴을 최적화하는 데 활용합니다. 주요 컬럼