Important
Unity 카탈로그 관리 테이블은 일반적으로 Delta Lake 테이블에 사용할 수 있습니다. Apache Iceberg 테이블의 경우 이 기능은 공개 미리 보기 로 제공되며 Databricks Runtime 16.4 LTS 이상에서 사용할 수 있습니다.
이 페이지에서는 Azure Databricks의 기본 및 권장 테이블 형식인 Delta Lake 및 Apache Iceberg의 Unity 카탈로그 관리 테이블에 대해 설명합니다. 관리되는 테이블은 읽기 및 쓰기 패턴에서 학습하기 때문에 이러한 테이블은 Unity 카탈로그에 의해 완전히 제어되고 최적화되어 성능, 운영 이점 및 외부테이블과 비교하여 스토리지 및 컴퓨팅 비용을 낮춥니다. Unity 카탈로그는 관리되는 테이블에 대한 모든 읽기, 쓰기, 스토리지 및 최적화 책임을 관리합니다. 외부 테이블을 관리형 Unity 카탈로그 테이블로 변환을 참조하세요.
관리되는 테이블의 데이터 파일은 스키마 또는 해당 테이블이 포함된 카탈로그에 저장됩니다. Unity 카탈로그관리되는 스토리지 위치 지정을 참조하세요.
Databricks는 관리 테이블을 사용하여 다음을 활용하는 것이 좋습니다.
- 스토리지 및 컴퓨팅 비용 절감.
- 모든 클라이언트 유형에서 더 빠른 쿼리 성능.
- 자동 테이블 유지 관리 및 최적화.
- 개방형 API를 통해 비 Databricks 클라이언트에 대한 액세스를 보호합니다.
- Delta Lake 및 Iceberg 형식에 대한 지원.
- 최신 플랫폼 기능으로 자동 업그레이드.
관리되는 테이블은 Delta Lake 및 Iceberg 클라이언트의 액세스를 허용하여 상호 운용성을 지원합니다. 개방형 API 및 자격 증명 자동 판매기를 통해 Unity 카탈로그를 사용하면 Trino, DuckDB, Apache Spark, Daft 및 Iceberg REST 카탈로그 통합 엔진(예: Dremio)과 같은 외부 엔진이 관리 테이블에 액세스할 수 있습니다. 개방형 API를 지원하지 않는 외부 클라이언트의 경우 호환성 모드 를 사용하여 Delta Lake 또는 Iceberg 클라이언트를 사용하여 관리되는 테이블을 읽을 수 있습니다. 오픈 소스 프로토콜인 델타 공유는 외부 파트너 및 플랫폼과 안전하고 관리되는 데이터 공유를 가능하게 합니다.
Azure Databricks에서 지원되는 모든 언어 및 제품에서 관리 테이블로 작업할 수 있습니다. 관리되는 테이블을 만들거나 업데이트하거나 삭제하거나 쿼리하려면 특정 권한이 필요합니다. Unity 카탈로그에서 권한 관리 를 참조하세요.
Note
이 페이지에서는 Unity 카탈로그 관리 테이블에 중점을 둡니다. 레거시 Hive 메타스토어의 관리되는 테이블은 레거시 Hive 메타스토어의 데이터베이스 개체를 참조하세요.
Unity 카탈로그 관리 테이블을 사용하는 이유는 무엇인가요?
Unity 카탈로그 관리 테이블은 자동 클러스터링, 파일 크기 압축 및 지능형 통계 수집과 같은 AI 기반 기술을 사용하여 스토리지 비용 및 쿼리 속도를 자동으로 최적화합니다. 이러한 테이블은 자동 진공 및 메타데이터 캐싱과 같은 기능으로 데이터 관리를 간소화하는 동시에 Delta 및 Iceberg 타사 도구와의 상호 운용성을 보장합니다.
다음 기능은 Unity 카탈로그 관리 테이블에 고유하며 외부 테이블 및 외장 테이블에는 사용할 수 없습니다.
| Feature | Benefits | 기본값으로 사용합니까? | 구성? |
|---|---|---|---|
| 예측 최적화 | AI를 사용하여 데이터 레이아웃 및 컴퓨팅을 자동으로 최적화하므로 관리되는 테이블에 대한 작업을 수동으로 처리할 필요가 없습니다. Databricks는 모든 관리되는 테이블에 대해 예측 최적화를 사용하도록 설정하여 스토리지 및 컴퓨팅 비용을 줄이는 것이 좋습니다. 예측 최적화는 자동으로 실행됩니다.
|
예, 2024년 11월 11일 이후에 만들어진 모든 새 계정에 대해 현재 계정의 경우 Azure Databricks는 기본적으로 예측 최적화를 롤아웃하기 시작합니다. 예측 최적화가 사용되는지 여부를 확인합니다. |
예. 예측 최적화 사용을 참조하세요. |
| 자동 액체 클러스터링 | 예측 최적화가 있는 테이블의 경우 자동 액체 클러스터링을 사용하도록 설정하면 Azure Databricks에서 클러스터링 키를 지능적으로 선택할 수 있습니다. 쿼리 패턴이 변경되면 Azure Databricks는 클러스터링 키를 자동으로 업데이트하여 성능을 향상시키고 비용을 절감합니다. | 아니오 | 예. 액체 클러스터링 사용을 참조하세요. |
| 메타데이터 캐싱 | 트랜잭션 메타데이터의 메모리 내 캐싱은 클라우드에 저장된 트랜잭션 로그에 대한 요청을 최소화하여 쿼리 성능을 향상시킵니다. 이 기능은 쿼리 성능을 향상시킵니다. | Yes | 아니요. 메타데이터 캐싱은 관리되는 테이블에 대해 항상 사용하도록 설정됩니다. |
명령 후 DROP TABLE 자동 파일 삭제 |
관리 테이블을 삭제 하는 경우 Azure Databricks는 8일 후에 클라우드 스토리지에서 데이터를 삭제하여 스토리지 비용을 절감합니다. 외부 테이블의 경우 스토리지 버킷으로 수동으로 이동하여 파일을 삭제해야 합니다. | Yes | 아니요. 관리되는 테이블의 경우 파일은 항상 8일 후에 자동으로 삭제됩니다. |
외부 시스템을 사용하여 Databricks 데이터에 액세스
관리되는 테이블은 Delta Lake 및 Iceberg 클라이언트의 액세스를 허용하여 상호 운용성을 지원합니다. Unity 카탈로그는 개방형 API 및 자격 증명 자동 판매기를 통해 Trino, DuckDB, Apache Spark, Daft 및 Iceberg REST 카탈로그 통합 엔진(예: Dremio 및 Snowflake)과 같은 외부 엔진이 관리되는 테이블에 액세스할 수 있도록 합니다. 지원되는 외부 엔진 목록에 대한 통합 을 참조하거나 이 목록에 포함되지 않은 경우 엔진의 설명서를 확인합니다.
다음 열린 API는 외부 시스템에서 Unity 카탈로그 관리 테이블에 액세스할 수 있도록 합니다.
- Unity REST API: 관리되는 델타 테이블에 대한 델타 클라이언트에 대한 읽기 전용 액세스를 제공합니다.
- IRC(Iceberg REST 카탈로그): Iceberg 클라이언트가 관리되는 Iceberg 테이블에 대한 읽기 및 쓰기 액세스 권한을 제공하고, Iceberg 읽기가 활성화된 델타 테이블에 대한 읽기 전용 액세스를 제공합니다(UniForm).
두 API 모두 자격 증명 자동 판매기를 지원하며, 이는 요청 중인 Azure Databricks 보안 주체의 권한을 상속하고 거버넌스 및 보안 제어를 유지 관리하는 임시 범위 자격 증명을 제공합니다.
또한 델타 공유 는 외부 파트너 및 플랫폼에 대한 안전하고 관리되는 데이터 액세스를 허용하는 오픈 소스 프로토콜입니다. 델타 공유를 사용하여 파트너에게 임시 읽기 전용 액세스 권한을 부여할 수 있습니다.
관리되는 테이블에 대한 모든 읽기 및 쓰기는 테이블 이름과 카탈로그 및 스키마 이름을 사용해야 합니다. 예: catalog_name.schema_name.table_name. Unity 카탈로그 관리 테이블에 대한 경로 기반 액세스는 Unity 카탈로그 액세스 제어를 무시하고 관리되는 테이블 기능이 제대로 작동하지 않도록 하기 때문에 호환성 모드를 제외하고 지원되지 않습니다.
관리되는 테이블 만들기
관리되는 테이블을 만들려면 다음이 있어야 합니다.
-
USE SCHEMA테이블의 부모 스키마에서 -
USE CATALOG테이블의 부모 카탈로그에 있습니다. -
CREATE TABLE테이블의 부모 스키마에서
다음 SQL 구문을 사용하여 SQL을 사용하여 빈 관리 테이블을 만듭니다. 자리 표시자 값을 바꾸세요.
-
<catalog-name>: 테이블을 포함할 카탈로그의 이름입니다. -
<schema-name>: 테이블을 포함하는 스키마의 이름입니다. -
<table-name>: 테이블의 이름입니다. -
<column-specification>: 각 열의 이름 및 데이터 형식입니다.
-- Create a managed Delta table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
);
-- Create a managed Iceberg table
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
<column-specification>
)
USING iceberg;
읽기 및 쓰기에 대한 성능을 유지하기 위해 Azure Databricks는 관리되는 Iceberg 테이블 메타데이터를 최적화하기 위한 작업을 주기적으로 실행합니다. 이 작업은 Iceberg 테이블에 대한 권한이 있는 MODIFY 서버리스 컴퓨팅을 사용하여 수행됩니다. 이 작업은 테이블의 메타데이터에만 쓰고 컴퓨팅은 작업 기간 동안 테이블에 대한 권한만 유지 관리합니다.
Note
Iceberg 테이블을 만들려면 명시적으로 지정합니다 USING iceberg. 그렇지 않으면 Azure Databricks는 기본적으로 Delta Lake 테이블을 만듭니다.
쿼리 결과 또는 DataFrame 쓰기 작업에서 관리 테이블을 만들 수 있습니다. 다음 문서에서는 Azure Databricks에서 관리되는 테이블을 만드는 데 사용할 수 있는 여러 패턴 중 일부를 보여 줍니다.
- CREATE TABLE [사용 중]
- CREATE TABLE LIKE
- 파일 업로드 사용하여 테이블 만들기 또는 수정
관리되는 테이블 삭제
관리되는 테이블을 삭제하려면 다음이 있어야 합니다.
-
MANAGE테이블 위에 있거나 테이블 소유자여야 합니다. -
USE SCHEMA테이블의 부모 스키마에서 -
USE CATALOG테이블의 부모 카탈로그에 있습니다.
관리 테이블을 삭제하려면 다음 SQL 명령을 실행합니다.
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Unity 카탈로그는 UNDROP TABLE 삭제된 관리 테이블을 8일 동안 복구하는 명령을 지원합니다. 8일 후에 Azure Databricks는 클라우드 테넌트에서 삭제할 기본 데이터를 표시하고 자동화된 테이블 유지 관리 중에 파일을 제거합니다.
UNDROP을 참조하세요.