이 문서에서는 Unity 카탈로그를 사용하여 데이터를 사용하는 데 필요한 클라우드 스토리지 연결과 Unity 카탈로그가 클라우드 스토리지 및 외부 클라우드 서비스에 대한 액세스를 제어하는 방법에 대한 정보를 제공합니다.
Unity 카탈로그는 클라우드 스토리지를 어떻게 사용하나요?
Databricks는 Unity 카탈로그를 사용하여 클라우드 개체 스토리지에 저장한 모든 데이터에 대한 액세스를 관리하는 것이 좋습니다. Unity 카탈로그는 클라우드 개체 스토리지에 대한 보안 연결을 구성하는 도구 모음을 제공합니다. 이러한 연결은 다음 작업을 완료하기 위한 액세스를 제공합니다.
- 레이크하우스에 원시 데이터를 저장합니다.
- Unity 카탈로그 관리형 클라우드 스토리지에서 관리되는 테이블 과 관리되는 비정형 데이터의 볼륨 을 만들고 읽습니다.
- 클라우드 공급자가 관리하는 클라우드 스토리지에서 외부 테이블 및을 등록하거나 생성하여 테이블 형식 데이터 및 외부 볼륨 및을 포함하는 비구조적 데이터를 처리하세요.
- 구조화되지 않은 데이터를 읽고 씁니다(Unity 카탈로그 볼륨).
보다 구체적으로 말하자면 Unity 카탈로그는 다음과 같은 두 가지 기본 방법으로 클라우드 스토리지를 사용합니다.
- Databricks에서 만드는 관리되는 테이블 및 관리되는 볼륨(구조화되지 않은 테이블 형식이 아닌 데이터)에 대한 기본(또는 "관리되는" 스토리지 위치) 이러한 관리되는 스토리지 위치는 메타스토어, 카탈로그 또는 스키마 수준에서 정의할 수 있습니다. 클라우드 공급자에서 관리되는 스토리지 위치를 만들지만 해당 수명 주기는 Unity 카탈로그에서 완전히 관리됩니다.
- 외부 테이블 및 볼륨이 저장되는 스토리지 위치입니다. Azure Databricks에서 액세스하는 테이블과 볼륨은 Unity 카탈로그에서 관리되지만 데이터 수명 주기 및 파일 레이아웃은 클라우드 공급자 및 기타 데이터 플랫폼을 사용하여 관리됩니다. 일반적으로 외부 테이블을 사용하여 Azure Databricks에서 많은 양의 기존 데이터를 등록하거나 Azure Databricks 외부의 도구를 사용하여 데이터에 대한 쓰기 액세스가 필요한 경우.
관리되는 테이블과 외부 테이블 및 볼륨에 대한 자세한 내용은 Azure Databricks 테이블 및 Unity 카탈로그 볼륨이란?을 참조하세요.
경고
Unity 카탈로그가 아닌 ID 스토리지 수준에서 Unity 카탈로그 관리 테이블 또는 볼륨에 대한 액세스 권한을 부여하지 마세요. 이렇게 하면 데이터 보안 및 거버넌스가 훼손됩니다.
사용자, 서비스 주체 또는 관리 ID에 Unity 카탈로그 가 제어하고 있는 데이터를 포함한 Azure Data Lake Storage 컨테이너에 대한 직접 액세스 권한을 부여하면 Unity 카탈로그를 우회하게 됩니다. 이렇게 하면 감사가 복잡해지고 관리 오버헤드가 늘어나면서 과잉 사용 권한, 반출 및 무단 액세스에 데이터가 노출됩니다.
Unity 카탈로그 관리 테이블에는 직접 스토리지 액세스가 지원되지 않습니다.
Unity 카탈로그에서 지원하는 클라우드 스토리지 옵션
Unity 카탈로그는 Azure Databricks에 대해 다음과 같은 클라우드 스토리지 옵션을 지원합니다.
클라우드 스토리지 옵션 | 설명 |
---|---|
Azure Data Lake Storage 컨테이너 | Azure Data Lake Storage는 대부분의 Azure Databricks 사용 사례에 적합합니다. Azure Data Lake Storage에 연결하기 위한 스토리지 자격 증명 만들기를 참조하세요. |
AWS S3 버킷 | Azure Databricks는 S3 버킷에 대한 플랫폼 간 읽기 전용 액세스를 지원합니다. AWS S3에 연결하기 위한 스토리지 자격 증명 만들기(읽기 전용)를 참조하세요. |
Cloudflare R2 버킷 | Cloudflare R2는 주로 데이터 송신 요금을 방지하려는 델타 공유 사용 사례를 위한 것입니다. Cloudflare R2에 연결하기 위한 스토리지 자격 증명 만들기를 참조하세요. |
DBFS 루트 | DBFS 루트 는 레거시 클라우드 스토리지 위치입니다. Databricks는 DBFS 루트 스토리지에 데이터를 저장하지 않는 것이 좋다고 권장합니다. 그러나 이전 관행 때문에 작업 영역이 그렇게 할 수도 있습니다. DBFS 루트 외부 위치(레거시)에 대한 연결을 참조하세요. |
Unity 카탈로그는 클라우드 스토리지에 대한 액세스를 어떻게 제어하나요?
테이블과 볼륨을 보유하는 기본 클라우드 스토리지에 대한 액세스를 관리하기 위해 Unity Catalog는 클라우드 스토리지 위치의 경로와 해당 위치에 액세스하는 데 필요한 자격 증명을 정의하는 외부 위치이라는 보안 개체를 사용합니다. 이러한 자격 증명은 스토리지 자격 증명이라는 Unity 카탈로그 보안 개체에 정의됩니다. Unity 카탈로그의 외부 위치 보안 개체에 대한 액세스 권한을 부여하고 취소하면 클라우드 스토리지 위치의 데이터에 대한 액세스를 제어할 수 있습니다. Unity 카탈로그에서 스토리지 자격 증명 보안 개체에 대한 액세스 권한을 부여하고 취소하면 외부 위치 개체를 만드는 기능을 제어할 수 있습니다.
스토리지 자격 증명 개요
스토리지 자격 증명은 클라우드 테넌트에 저장된 데이터에 액세스하기 위한 인증 및 권한 부여 메커니즘을 나타냅니다. 예를 들어 스토리지 자격 증명은 Azure Data Lake Storage 컨테이너의 Azure 관리 ID 또는 서비스 주체 또는 Cloudflare R2 버킷에 대한 R2 API 토큰과 연결됩니다.
Unity 카탈로그에서 부여된 권한은 자격 증명을 사용하여 외부 위치를 정의할 수 있는 사용자 및 그룹을 제어합니다. 스토리지 자격 증명을 만들고 사용할 수 있는 권한은 외부 위치 개체를 만들어야 하는 사용자에게만 부여되어야 합니다.
외부 위치 개요
외부 위치는 클라우드 스토리지 경로와 지정된 경로에 대한 액세스 권한을 부여하는 스토리지 자격 증명을 결합합니다. 여러 외부 위치에서 동일한 스토리지 자격 증명을 사용할 수 있습니다. 외부 위치는 지원되는 클라우드 스토리지 옵션 중에서 스토리지 경로를 참조할 수 있습니다.
아래 다이어그램은 외부 위치가 스토리지 자격 증명 및 클라우드 스토리지 위치를 참조하는 방법을 보여 줍니다.
이 다이어그램에서는 다음을 수행합니다.
- 각 외부 위치는 스토리지 자격 증명 및 클라우드 스토리지 위치를 참조합니다.
- 여러 외부 위치에서 동일한 스토리지 자격 증명을 참조할 수 있습니다.
스토리지 자격 증명 1은 경로
bucket/tables/*
아래의 모든 항목에 대한 액세스 권한을 부여하므로 외부 위치 A 와 외부 위치 B 가 모두 참조합니다.
외부 위치는 외부 테이블 및 외부 볼륨과 같은 외부 데이터 자산과 관리되는 테이블 및 관리되는 볼륨과 같은 관리되는 데이터 자산 모두에 Unity 카탈로그에서 사용됩니다. Unity 카탈로그의 외부 데이터 자산과 관리되는 데이터 자산 간의 차이점에 대한 자세한 내용은 Azure Databricks 테이블 및 Unity 카탈로그 볼륨이란?을 참조하세요.
Unity 카탈로그에 부여된 권한은 외부 위치에 정의된 클라우드 스토리지 경로에 액세스할 수 있는 사용자 및 그룹을 제어합니다. 외부 위치를 만들고 사용할 수 있는 권한은 외부 테이블, 외부 볼륨 또는 관리되는 스토리지 위치를 만들어야 하는 사용자에게만 부여되어야 합니다.
외부 위치 사용에 대한 모범 사례에 대한 자세한 내용은 외부 위치를 참조하세요.
외부 테이블 및 볼륨을 만들 때 외부 위치 사용
Unity 카탈로그에 등록된 외부 테이블 및 외부 볼륨은 기본적으로 Azure Databricks 외부에서 관리하는 클라우드 스토리지의 데이터에 대한 포인터입니다. Unity 카탈로그에서 외부 테이블 또는 외부 볼륨을 만들 때 적절한 권한이 부여된 외부 위치 개체에 포함된 클라우드 스토리지 경로를 참조해야 합니다. Unity 카탈로그의 외부 데이터 자산과 관리되는 데이터 자산 간의 차이점에 대한 자세한 내용은 Azure Databricks 테이블 및 Unity 카탈로그 볼륨이란?을 참조하세요. 권한은 외부 위치에 대한 권한 부여를 참조 하세요.
관리되는 스토리지를 만들 때 외부 위치 사용
관리되는 테이블 및 관리되는 볼륨은 Unity 카탈로그에서 완전히 관리됩니다. 기본적으로 메타스토어, 카탈로그 또는 스키마 수준에서 정의할 수 있는 관리되는 스토리지 위치에 저장됩니다. 메타스토어, 카탈로그 또는 스키마에 관리되는 스토리지 위치를 할당하는 경우 외부 위치 개체를 참조해야 하며 이를 사용할 수 있는 적절한 권한이 있어야 합니다. Unity 카탈로그에 관리 스토리지 위치 지정 및 Unity 카탈로그 모범 사례를 참조하세요.
클라우드 스토리지의 데이터에 대한 경로 기반 액세스
Unity 카탈로그는 클라우드 스토리지 URI를 사용하여 외부 테이블 및 외부 볼륨에 대한 경로 기반 액세스를 지원하지만, Databricks는 사용자가 테이블 이름을 사용하여 모든 Unity 카탈로그 테이블을 읽고 쓰고 /Volumes
경로를 사용하여 볼륨의 데이터에 액세스하는 것이 좋습니다.
볼륨 대부분의 Azure Databricks 사용자가 클라우드 개체 스토리지의 테이블 형식이 아닌 데이터와 직접 상호 작용하는 데 사용해야 하는 보안 개체입니다.
Unity 카탈로그 볼륨이란 무엇인가?를 참조하십시오.
경고
Databricks가 아닌 클라이언트를 사용하거나 Databricks 내에서 경로 기반 액세스를 사용하여 외부 테이블 메타데이터를 업데이트하는 경우 해당 메타데이터는 Unity 카탈로그와 상태를 자동으로 동기화하지 않습니다. Databricks는 이러한 메타데이터 업데이트를 권장하지만 이를 수행하는 경우 MSCK REPAIR TABLE <table-name> SYNC METADATA
실행하여 Unity 카탈로그의 스키마를 최신 상태로 만들어야 합니다.
REPAIR TABLE을(를) 참조하세요.
Unity 카탈로그에서 클라우드 스토리지에 대한 액세스를 관리하기 위한 워크플로
Unity 카탈로그를 사용하여 클라우드 스토리지에 대한 액세스를 관리하려면 다음을 수행합니다.
- 클라우드 스토리지 경로에 액세스할 수 있는 Azure 관리 ID 또는 서비스 주체와 같은 장기 클라우드 자격 증명을 포함하는 스토리지 자격 증명 개체를 만듭니다.
- 스토리지 경로 및 스토리지 자격 증명 개체를 참조하는 외부 위치 개체를 만듭니다.
- 외부 테이블, 외부 볼륨 또는 기본 관리 스토리지 위치를 만들 때 외부 위치에 포함된 경로를 참조합니다. 외부 위치 또는 하위 경로에 정의된 정확한 경로일 수 있습니다.
Unity 카탈로그를 사용하는 Azure 클라우드 스토리지에 대한 모범 사례
Azure Databricks는 Unity 카탈로그 거버넌스를 사용하여 Azure Databricks에서 처리되는 데이터에 대한 Azure Storage 서비스로 Azure Data Lake Storage를 사용해야 합니다. Azure Data Lake Storage를 사용하면 스토리지 및 컴퓨팅 비용을 구분하고 Unity 카탈로그에서 제공하는 세분화된 액세스 제어를 활용할 수 있습니다. 데이터가 OneLake(Microsoft Fabric 데이터 레이크)에 저장되고 Databricks(Unity 카탈로그 무시)에서 처리되는 경우 번들 스토리지 및 컴퓨팅 비용이 발생할 수 있습니다. 번들로 제공되는 경우 데이터를 저장, 읽기 및 쓰기하기 위한 Azure Data Lake Storage Premium 계층에 비해 읽기의 경우 약 2배, 쓰기의 경우 2.6배 더 높은 비용이 발생할 수 있습니다. Azure Blob Storage는 Unity 카탈로그와도 호환되지 않습니다. Databricks는 패브릭에 종량제 가격 책정 모델을 사용하여 스토리지 및 컴퓨팅 옵션을 더 유연하게 사용할 것을 권장합니다.
특징 | Azure Blob Storage (애저 블롭 스토리지) | Azure Data Lake Storage | OneLake |
---|---|---|---|
Unity 카탈로그에서 지원 | X | ✓ | X |
추가 패브릭 용량 구매 필요 | X | X | ✓ |
외부 엔진에서 지원되는 작업 |
|
|
번들 컴퓨팅/스토리지 가격 책정 모델을 사용하는 경우 Azure Data Lake Storage에서 데이터를 읽는 데 비해 최대 2배의 비용이 발생하며, Azure Data Lake Storage 프리미엄 계층에 데이터를 쓰는 것과 비교하여 최대 2.6배의 비용이 발생합니다. 세부 정보는 OneLake 설명서를 참조하세요. |
배치 | 지역 | 지역 | 글로벌 |
인증 | Entra ID 공유 액세스 서명 | Entra ID 공유 액세스 서명 | Entra ID |
스토리지 이벤트 | ✓ | ✓ | X |
일시 삭제 | ✓ | ✓ | ✓ |
접근 제어 | RBAC | RBAC, ABAC, ACL | RBAC(테이블/폴더에만 해당, 바로 가기 ACL은 지원되지 않음) |
암호화 키 | ✓ | ✓ | X |
액세스 계층 | 온라인 보관함 | 뜨겁다, 시원하다, 차갑다, 아카이브 | 뜨겁게만 사용 |