Databricks Unity 카탈로그 테이블 형식

Unity 카탈로그는 관리형, 외부 및 외장 테이블의 세 가지 기본 테이블 형식을 지원합니다. 각 형식은 데이터가 저장, 관리 및 관리되는 방식에 따라 다릅니다.

관리되는 테이블

관리되는 테이블은 기본 및 권장 테이블 형식입니다. Unity 카탈로그는 데이터 수명 주기, 스토리지 위치 및 최적화를 관리합니다. 관리되는 테이블을 삭제하면 메타데이터와 기본 데이터 파일이 모두 삭제됩니다.

관리되는 테이블은 Delta Lake 또는 Apache Iceberg에서 지원되며 다음을 제공합니다.

  • 스토리지 및 컴퓨팅 비용 절감을 위한 자동 최적화
  • 모든 클라이언트 유형에서 더 빠른 쿼리 성능
  • 자동 테이블 유지 관리
  • 개방형 API를 통해 비 Databricks 클라이언트에 대한 보안 액세스
  • 최신 플랫폼 기능으로 자동 업그레이드

데이터 파일은 테이블을 포함하는 스키마 또는 카탈로그에 저장됩니다. Azure Databricks에서 Delta Lake 및 Apache Iceberg에 대한 Unity Catalog 관리 테이블을 참조하세요.

외부 테이블

외부 테이블은 관리하는 클라우드 개체 스토리지에 저장된 데이터를 참조합니다. Unity 카탈로그는 데이터 액세스를 제어하지만 데이터 수명 주기, 최적화 또는 스토리지 레이아웃을 관리하지는 않습니다. 외부 테이블을 삭제하면 카탈로그 메타데이터만 제거되고 기본 데이터 파일은 그대로 유지됩니다.

Unity 카탈로그 외부 테이블은 Delta Lake, CSV, JSON, AVRO, PARQUET, ORC 및 TEXT 형식을 지원합니다. Databricks는 다른 형식이 사용하지 않는 트랜잭션 보장 및 성능 최적화가 있으므로 Delta Lake 형식을 사용하는 것이 좋습니다.

다음을 수행해야 하는 경우 외부 테이블을 사용합니다.

  • Unity 카탈로그 관리 테이블과 호환되지 않는 기존 데이터 등록
  • 다른 외부 액세스 패턴을 지원하지 않는 비 Databricks 클라이언트에서 직접 데이터 액세스 제공

외부 테이블 작업을 참조하세요.

외세 테이블

외장 테이블(페더레이션 테이블이라고도 함)은 Unity 카탈로그에 등록된 외세 카탈로그에서 관리하는 읽기 전용 테이블입니다. 외부 시스템은 데이터 및 메타데이터를 관리하고 Unity 카탈로그는 쿼리를 위한 데이터 거버넌스를 추가합니다.

Azure Databricks는 외세 테이블을 등록하는 두 가지 방법을 지원합니다.

  • 쿼리 페더레이션: PostgreSQL 및 MySQL과 같은 외부 데이터 시스템에 보안 JDBC 연결을 사용합니다.
  • 카탈로그 페더레이션: 외부 카탈로그를 연결하여 파일 스토리지에서 직접 데이터 쿼리

Delta Lake 형식을 사용하는 외세 테이블에는 Unity 카탈로그 관리 테이블에서 사용할 수 있는 많은 최적화가 없습니다. 프로덕션 워크로드 또는 자주 쿼리되는 데이터 세트의 경우 성능 향상을 위해 Unity 카탈로그 관리 테이블로 마이그레이션합니다. 외부 테이블 작업을 참조하세요.

테이블 형식 비교

다음 표에서는 세 가지 테이블 형식을 비교합니다.

Feature 관리되는 테이블 외부 테이블 외세 테이블
데이터 수명 주기 관리 Unity 카탈로그를 관리합니다 관리합니다 외부 시스템이 관리합니다.
스토리지 위치 Unity 카탈로그를 관리합니다 당신이 지정합니다. 외부 시스템이 관리합니다.
자동 최적화 Yes Limited No
지원되는 형식 Delta Lake, Apache Iceberg Delta Lake(권장), CSV, JSON, AVRO, PARQUET, ORC, TEXT 외부 시스템에 따라 다름
DROP TABLE에 삭제된 데이터 Yes No No
적합한 대상 프로덕션 워크로드, 자주 쿼리되는 데이터 레거시 통합, 기존 데이터 외부 시스템에서 마이그레이션, 임시 액세스

기타 테이블 형식

Azure Databricks는 특정 사용 사례에 대한 특수 테이블 형식도 지원합니다.

  • 스트리밍 테이블: 증분 처리 논리를 사용하여 Delta Lake에서 백업하는 Lakeflow Spark 선언적 파이프라인 데이터 세트
  • 구체화된 뷰: 관리 흐름 논리를 사용하여 쿼리 결과를 구체화하는 Delta Lake에서 지원되는 Lakeflow Spark 선언적 파이프라인 데이터 세트

레거시 테이블 형식

다음 레거시 테이블 형식은 이전 버전과의 호환성을 위해 지원되지만 새 개발에는 권장되지 않습니다.

Hive 테이블

Hive 테이블은 레거시 Hive 메타스토어에 의해 관리되며 Hive SerDe 코덱 및 Hive SQL 구문을 비롯한 레거시 패턴을 사용합니다. 기본적으로 레거시 Hive 메타스토어를 사용하여 등록된 테이블은 레거시 DBFS 루트에 데이터를 저장합니다.

Databricks는 레거시 HMS에서 Unity 카탈로그로 모든 테이블을 마이그레이션하는 것이 좋습니다. 레거시 Hive 메타스토어의 데이터베이스 개체를 참조하세요.

필요에 따라 Hive 메타스토어를 Unity 카탈로그에 페더레이션하고 Unity 카탈로그에서 테이블을 외세 테이블로 액세스할 수 있습니다. Hive 메타스토어 페더레이션을 참조하세요. Unity 카탈로그를 사용하여 Hive 메타스토어에 등록된 테이블을 제어합니다.

Apache Spark는 Hive 테이블 등록 및 쿼리를 지원하지만 Hive SerDe 코덱은 Azure Databricks 최적화되지 않습니다. 외부 시스템에서 작성한 데이터에 대한 쿼리를 지원해야 하는 경우에만 Hive 테이블을 등록합니다. Hive 테이블(레거시)을 참조하세요.

실시간 테이블

라이브 테이블이라는 용어는 이제 구체화된 뷰로 사용할 수 있는 기능의 이전 구현을 나타냅니다. 구체화된 뷰 구문을 사용하도록 라이브 테이블을 참조하는 레거시 코드를 업데이트합니다. Lakeflow Spark 선언적 파이프라인 및구체화된 뷰를 참조하세요.