외부 테이블, 때때로 페더레이션 테이블이라고도 하는, Unity 카탈로그를 사용하여 외부 카탈로그의 일부로 등록된 테이블입니다. 외부 테이블에는 외부 시스템에서 관리하는 데이터 및 메타데이터가 포함되며, Unity 카탈로그는 이러한 테이블을 쿼리하기 위한 데이터 거버넌스를 추가합니다.
Azure Databricks는 외용 테이블을 등록하는 다음 메서드를 지원합니다.
- 쿼리 페더레이션 은 보안 JDBC 연결을 사용하여 PostgreSQL 및 MySQL과 같은 외부 데이터 시스템에 페더레이션합니다.
- 카탈로그 페더레이션 은 Hive Metastore 또는 Snowflake Horizon Catalog와 같은 외부 카탈로그를 연결하여 파일 스토리지에서 직접 데이터를 쿼리합니다.
Important
레거시 Apache Spark 및 Azure Databricks 워크로드와의 이전 버전과의 호환성을 위해 페더레이션된 Hive 메타스토어의 외장 테이블은 테이블이 Hive 관리 테이블인지 Hive 외부 테이블인지를 포함하여 Hive 메타스토어에서 메타데이터를 반환합니다.
외부 테이블을 사용하는 이유는 무엇인가요?
외장 테이블은 Azure Databricks를 기존 데이터 시스템과 통합하거나 레거시 시스템에서 마이그레이션할 때 유연성을 제공합니다.
많은 외래 테이블은 업스트림 ETL 워크플로에 대한 데이터 마이그레이션 또는 코드 리팩터링 없이도 빠른 솔루션을 제공하기 때문에 Azure Databricks에서 관리되지 않는 데이터에 직접 액세스하기 위한 임시 솔루션으로 사용됩니다. Databricks는 프로덕션 워크로드를 구동하거나 Unity 카탈로그 관리 테이블에 자주 쿼리되는 데이터 세트를 마이그레이션하는 것이 좋습니다. 관리되는 테이블은 최상의 성능을 제공하고 많은 기본 제공 최적화를 제공합니다. 외세 테이블을 관리형 Unity 카탈로그 테이블로 변환을 참조하세요.
쿼리 페더레이션은 Lakeflow Connect에서 지원되지 않는 외부 데이터 시스템에서 데이터를 로드하기 위한 무료 솔루션을 제공합니다. Databricks는 구체화된 뷰를 사용하여 외산 테이블을 Unity 카탈로그에 복제하는 것이 좋습니다. 구체화된 뷰를 사용하여 외부 테이블에서 데이터 로드에 대해 참조하세요.
외부 테이블 생성 또는 쓰기
충분한 권한이 있고 작업 영역이 내부 페더레이션 Hive 메타스토어로 구성된 경우 내부 페더레이션 Hive 메타스토어에서 지원되는 외세 테이블을 만들거나 쓸 수 있습니다. 외부 페더레이션 Hive 메타스토어 및 Lakehouse 페더레이션에서 지원되는 모든 외부 테이블은 읽기 전용입니다.
Azure Databricks는 외세 테이블에 대한 쓰기에 대한 메타데이터, 데이터 또는 의미 체계를 관리하지 않습니다. 외산 테이블은 Delta Lake 또는 Apache Iceberg와 같은 ACID 규격 형식으로 지원될 수 있지만 외세 테이블은 Unity 카탈로그 관리 테이블의 트랜잭션 보증을 제공하지 않습니다.
쿼리 성능, 향상된 쓰기 속도, 데이터 건너뛰기 및 메타데이터 전용 쿼리에 대한 대부분의 Azure Databricks 최적화에는 Unity 카탈로그가 필요합니다. Databricks는 최신 Databricks 런타임 버전을 사용하여 외래 테이블과 Unity 카탈로그 관리 테이블 간의 읽기 및 쓰기 쿼리 성능을 비교하여 대기 시간과 비용 차이를 평가하는 것이 좋습니다. Delta Lake 및 Apache Iceberg용 Azure Databricks에서 Unity 카탈로그 관리 테이블을 참조하세요.