📚 Databricks에서 말하는 Catalog란 무엇인가?
Databricks를 공부하다 보면 Catalog라는 단어가 자주 등장한다.
처음엔 익숙하지 않았지만, 정리해보니 기존 데이터베이스의 개념을 확장한 매우 중요한 단위라는 걸 알 수 있었다. 이 글에서는 Databricks의 Catalog가 무엇이고, 기존 DBMS와 어떤 차이가 있는지 정리해본다.
✅ 1. Catalog란?
Catalog는 Databricks에서 데이터 자산을 논리적으로 구분하고 관리하는 최상위 단위다.
Databricks의 구조는 다음과 같다:
Catalog > Schema > Table(View)
예를 들어 main.sales.customers라는 테이블이 있다면,
- main → Catalog
- sales → Schema (기존 DBMS의 Database처럼 보임)
- customers → Table
✅ 2. 전통적인 DBMS에서의 Catalog는?
사실 Catalog라는 단어는 새롭게 만들어진 개념이 아니다. PostgreSQL, Oracle, SQL Server 등 전통적인 데이터베이스 시스템에서도 pg_catalog, information_schema처럼 시스템 메타데이터를 관리하는 용도로 존재했다. 하지만 중요한 점은:
❌ 실데이터를 관리하거나, 권한 제어를 위해 사용하는 단위는 아니었다.
전통 DB에서는 권한은 보통 SCHEMA 또는 TABLE 단위로 설정한다.
✅ 3. Databricks의 Catalog는 어떻게 다를까?
Databricks에서는 이 Catalog를 조직의 데이터 거버넌스 단위로 재정의했다. 특히 Unity Catalog 도입 이후, Catalog는 다음과 같은 역할을 한다.
🔹 데이터 분리 | 조직/부서 단위로 데이터 공간을 나눌 수 있음 |
🔹 권한 제어 | Catalog 단위로 사용자 권한(RBAC) 설정 가능 |
🔹 감사/계보 관리 | 데이터 계보(lineage), 감사 로그 등을 catalog 단위로 추적 |
🔹 멀티워크스페이스 통합 | 여러 워크스페이스에서 동일한 Catalog 사용 가능 |
✅ 4. 실무에서의 사용 예시
-- 마케팅팀에게 marketing 카탈로그 접근 권한 부여
GRANT SELECT ON CATALOG marketing_data TO `marketing_team`;
-- 재무팀은 finance_data 카탈로그만 접근 가능
GRANT USAGE ON CATALOG finance_data TO `finance_team`;
이처럼 Catalog 단위로 누가 어떤 데이터를 볼 수 있는지 제어할 수 있어서 대규모 조직에서 매우 유용하다.
✅ 5. 기존 DBMS와의 차이 요약
항목 | 전통 DBMS | Databricks (Unity Catalog) |
Catalog 존재 여부 | ✅ 있음 (메타정보용) | ✅ 있음 (실데이터 포함) |
권한 제어 가능 여부 | ❌ 불가 (Schema/Table 단위로만) | ✅ 가능 (Catalog 단위로 권한 제어) |
용도 | 시스템 메타데이터 관리 | 데이터 거버넌스 + 분리 + 통합 관리 |
데이터 분리 단위 | Schema 또는 Database | Catalog 단위 |
다중 워크스페이스 공유 | ❌ 제한적 | ✅ 가능 |
✅ 한 줄 요약
📌 Databricks의 Catalog는 조직 전체의 데이터 자산을 분리하고, 권한과 거버넌스를 통합적으로 관리하기 위한 최상위 단위이다. 전통 DB의 catalog 개념을 실질적인 데이터 운영 단위로 확장한 것이다.