Azure Databricks의 카탈로그란?
카탈로그는 Azure Databricks Unity 카탈로그 데이터 거버넌스 모델의 데이터 조직의 기본 단위입니다. 이 문서에서는 Unity 카탈로그의 카탈로그 개요와 카탈로그를 사용하는 가장 좋은 방법을 제공합니다.
카탈로그는 Unity 카탈로그의 3개 수준 네임스페이스(catalog.schema.table-etc
)의 첫 번째 계층입니다. 스키마를 포함하며, 테이블, 뷰, 볼륨, 모델 및 함수를 포함할 수 있습니다. 카탈로그는 Azure Databricks 계정의 Unity 카탈로그 메타스토어에 등록됩니다.
데이터를 카탈로그로 구성하려면 어떻게 해야 하나요?
데이터 거버넌스 모델을 디자인할 때는 만든 카탈로그를 신중하게 고려해야 합니다. 조직의 데이터 거버넌스 모델에서 가장 높은 수준으로 각 카탈로그는 데이터 격리의 논리적 단위와 데이터 액세스의 논리적 범주를 나타내야 하며, 이를 통해 효율적인 권한 부여 계층 구조가 스키마 및 해당 항목에 포함된 데이터 개체로 흘러 내려갈 수 있습니다. 따라서 카탈로그는 종종 조직 구성 단위 또는 소프트웨어 개발 수명 주기 범위를 미러링합니다. 예를 들어 프로덕션 데이터의 카탈로그와 개발 데이터의 카탈로그 또는 비고객 데이터에 대한 카탈로그와 중요한 고객 데이터에 대한 카탈로그를 포함하도록 선택할 수 있습니다.
카탈로그를 사용하여 데이터 격리
각 카탈로그에는 일반적으로 관리되는 테이블 및 볼륨을 저장할 자체 관리 스토리지 위치 가 있으므로 카탈로그 수준에서 물리적 데이터 격리를 제공합니다. 또한 메타스토어 수준에서 데이터를 저장하도록 선택하여 자체 관리 스토리지 위치가 없는 카탈로그에 대한 기본 스토리지 위치를 제공할 수도 있습니다. 보다 세분화된 데이터 격리를 위해 스키마 수준에서 스토리지를 추가할 수 있습니다.
Azure Databricks 계정에는 지역당 하나의 메타스토어가 있으므로 카탈로그는 기본적으로 지역별로 격리됩니다.
자세한 내용은 Azure Databricks의 데이터베이스 개체란?을 참조하세요. 데이터는 스토리지에서 물리적으로 구분됩니다.
카탈로그 수준 권한
Unity 카탈로그 개체에 대한 권한 부여는 해당 개체의 자식에 의해 상속되므로 카탈로그를 소유하거나 카탈로그에 대한 광범위한 권한을 갖는 것은 매우 강력합니다. 예를 들어 카탈로그 소유자는 카탈로그 및 카탈로그의 개체에 대한 모든 권한을 가지며 카탈로그의 모든 개체에 대한 액세스 권한을 부여할 수 있습니다. 카탈로그를 사용하는 SELECT
사용자는 카탈로그의 모든 테이블을 읽을 수 있습니다. 카탈로그를 사용하는 CREATE TABLE
사용자는 카탈로그의 모든 스키마에 테이블을 만들 수 있습니다.
사용자에게 필요한 작업을 수행하는 데 필요한 최소 액세스 권한이 있는 최소 권한 원칙을 적용하려면 일반적으로 사용자에게 필요한 계층 구조의 특정 개체 또는 수준에만 액세스 권한을 부여합니다. 그러나 카탈로그 수준 권한을 사용하면 카탈로그 소유자가 하위 수준 개체 소유자가 부여할 수 있는 것을 관리할 수 있습니다. 예를 들어 테이블과 같은 하위 수준 데이터 개체에 대한 액세스 권한이 사용자에게 부여된 경우에도 해당 테이블이 포함된 카탈로그에 대한 권한이 없으면 USE CATALOG
해당 테이블에 액세스할 수 없습니다.
자세한 내용은 Unity 카탈로그 개체 소유권, 일반 Unity 카탈로그 권한 유형 및 데이터 거버넌스 및 데이터 격리 구성 요소 관리를 참조하세요.
카탈로그 형식
카탈로그를 만들 때 다음 두 가지 옵션이 제공됩니다.
- 표준 카탈로그: Unity 카탈로그에서 데이터 개체를 구성하는 기본 단위로 사용되는 일반적인 카탈로그입니다. 이 문서에서 설명하는 카탈로그 유형입니다.
- 외신 카탈로그: Lakehouse Federation 시나리오에서만 사용되는 Unity 카탈로그 개체입니다. 외부 카탈로그는 외부 데이터 시스템의 데이터베이스를 미러링하여 Azure Databricks 작업 영역에서 해당 데이터 시스템에 대한 읽기 전용 쿼리를 수행할 수 있도록 합니다. 레이크하우스 페더레이션이란?을 참조하세요.
이러한 두 가지 카탈로그 유형 외에도 Azure Databricks는 새 작업 영역을 만들 때 다음 카탈로그를 자동으로 프로비전합니다.
hive_metastore
catalog: Azure Databricks 작업 영역의 레거시 Hive 메타스토어에서 관리하는 모든 데이터의 리포지토리입니다. 기존 비 Unity 카탈로그 작업 영역이 Unity 카탈로그로 변환되면 레거시 Hive 메타스토어에 등록된 모든 개체가 카탈로그의 Unity 카탈로그에hive_metastore
표시됩니다. Unity 카탈로그와 함께 Hive metastore를 사용하는 방법에 대한 자세한 내용은 Unity 카탈로그 및 레거시 Hive 메타스토어 작업을 참조 하세요. Hive 메타스토어는 더 이상 사용되지 않으며 모든 Azure Databricks 작업 영역은 Unity 카탈로그로 마이그레이션되어야 합니다.- 작업 영역 카탈로그: 모든 새 작업 영역에서 이 카탈로그는 기본적으로 만들어집니다. 일반적으로 해당 이름을 작업 영역 이름과 공유합니다. 이 카탈로그가 있는 경우 작업 영역의 모든 사용자(및 작업 영역만)는 기본적으로 해당 카탈로그에 액세스할 수 있으므로 사용자가 Unity 카탈로그에서 데이터 개체를 만들고 액세스하는 프로세스를 쉽게 시도할 수 있습니다. 1단계: 작업 영역이 Unity 카탈로그에 사용하도록 설정되어 있는지 확인합니다.
기본 카탈로그
기본 카탈로그는 Unity 카탈로그에 대해 사용하도록 설정된 각 작업 영역에 대해 구성됩니다. 기본 카탈로그를 사용하면 카탈로그를 지정하지 않고도 데이터 작업을 수행할 수 있습니다. 데이터 작업을 수행할 때 최상위 카탈로그 이름을 생략하면 기본 카탈로그가 사용됩니다.
Unity 카탈로그에 대해 작업 영역을 자동으로 사용하도록 설정한 경우 미리 프로비전된 작업 영역 카탈로그가 기본 카탈로그로 지정됩니다. 작업 영역 관리자는 필요에 따라 기본 카탈로그를 변경할 수 있습니다.
자세한 내용은 기본 카탈로그 관리를 참조 하세요.
작업 영역 카탈로그 바인딩
작업 영역을 사용하여 사용자 데이터 액세스를 격리하는 경우 작업 영역 카탈로그 바인딩을 사용할 수 있습니다. 작업 영역 카탈로그 바인딩을 사용하면 작업 영역 경계별로 카탈로그 액세스를 제한할 수 있습니다. 예를 들어 작업 영역 관리자와 사용자가 프로덕션 작업 영역 환경에서prod_workspace
만 프로덕션 데이터에 prod_catalog
액세스할 수 있도록 할 수 있습니다. 바인딩을 지정하지 않는 한 카탈로그는 현재 메타스토어에 연결된 모든 작업 영역과 공유됩니다. 데이터 구성 및 특정 작업 영역에 대한 카탈로그 액세스 제한 참조
작업 영역이 Unity 카탈로그에 자동으로 사용하도록 설정된 경우 미리 프로비전된 작업 영역 카탈로그는 기본적으로 작업 영역에 바인딩됩니다.