다음을 통해 공유


테이블이란 무엇인가?

테이블은 스키마에 상주하며 데이터 행을 포함합니다. Azure Databricks에서 만든 모든 테이블은 기본적으로 Delta Lake를 사용합니다. Delta Lake에서 지원되는 테이블을 델타 테이블이라고도 합니다.

델타 테이블은 데이터를 클라우드 개체 스토리지의 파일 디렉터리로 저장하고 카탈로그 및 스키마 내의 메타스토어에 테이블 메타데이터를 등록합니다. 모든 Unity 카탈로그 관리 테이블 및 스트리밍 테이블은 델타 테이블입니다. Unity 카탈로그 외부 테이블은 델타 테이블일 수 있지만 필요하지는 않습니다.

Delta Lake를 사용하지 않는 Databricks에 테이블을 만들 수 있습니다. 이러한 테이블은 델타 테이블의 트랜잭션 보장 또는 최적화된 성능을 제공하지 않습니다.

테이블은 데이터 행을 저장합니다. 테이블은 스키마에 상주하며 데이터 행을 포함합니다. 다음 예제에서는 5명의 직원에 대한 데이터가 포함된 테이블 prod.people_ops_employees 보여 줍니다. 메타데이터는 Unity 카탈로그에 등록되고 데이터는 클라우드 스토리지에 저장됩니다.

직원 데이터를 포함하는 예제 테이블

기본 테이블 사용 권한

테이블을 만들려면 사용자에게 스키마에 대한 CREATE TABLEUSE SCHEMA 권한과 해당 부모 카탈로그에 대한 USE CATALOG 권한이 있어야 합니다. 테이블을 쿼리하려면 테이블에 대한 사용 권한, SELECT 해당 부모 스키마에 대한 권한 및 USE SCHEMA 부모 카탈로그에 대한 권한이 있어야 합니다USE CATALOG.

Unity 카탈로그 권한에 대한 자세한 내용은 Unity 카탈로그의 권한 관리를 참조 하세요.

Unity 카탈로그의 테이블

Unity 카탈로그에서 테이블은 다음 표와 같이 세 번째 수준 네임스페이스(catalog.schema.table)의 세 번째 수준에 있습니다. Unity 카탈로그 외부 테이블은 델타 테이블일 수 있지만 필요하지는 않습니다.

테이블에 초점을 맞춘 Unity 카탈로그 개체 모델 다이어그램

델타 테이블

Delta Lake에서 지원되는 델타 테이블은 데이터를 클라우드 개체 스토리지의 파일 디렉터리로 저장하고 카탈로그 및 스키마 내의 메타스토어에 테이블 메타데이터를 등록합니다. 델타 테이블은 Databricks의 기본값이므로 테이블에 대한 대부분의 참조는 달리 언급하지 않는 한 델타 테이블의 동작을 설명합니다. 모든 Unity 카탈로그 관리 테이블 및 스트리밍 테이블은 델타 테이블입니다. Delta Lake란?을 참조하세요.

Databricks는 항상 파일 경로가 아닌 정규화된 테이블 이름을 사용하여 델타 테이블과 상호 작용하는 것이 좋습니다.

관리되는 테이블

관리되는 테이블은 메타스토어 등록과 함께 기본 데이터 파일을 관리합니다. Databricks는 새 테이블을 만들 때마다 관리되는 테이블을 사용하는 것이 좋습니다. Azure Databricks에서 테이블을 만들 때 Unity 카탈로그 관리 테이블은 기본값입니다. 항상 Delta Lake를 사용합니다. 관리되는 테이블 작업을 참조하세요.

외부 테이블

관리되지 않는 테이블이라고도 하는 외부 테이블은 클라우드 개체 스토리지와 같은 외부 스토리지 시스템의 Databricks 외부에 저장된 데이터를 참조합니다. 메타스토어 등록에서 기본 데이터 파일의 관리를 분리합니다. Unity 카탈로그 >Delta Lake를 비롯한 여러 형식의 외부 테이블을 지원합니다. Unity 카탈로그 외부 테이블은 외부 시스템에서 읽을 수 있는 일반적인 형식을 사용하여 데이터 파일을 저장할 수 있습니다. 외부 테이블 작업을 참조하세요.

스트리밍 테이블

스트리밍 테이블은 주로 증분 데이터를 처리하는 데 사용되는 델타 테이블입니다. 스트리밍 테이블에 대한 대부분의 업데이트는 새로 고침 작업을 통해 수행됩니다.

Databricks SQL을 사용하여 Unity 카탈로그에 스트리밍 테이블을 등록하거나 DLT 파이프라인의 일부로 정의할 수 있습니다. 스트리밍 테이블이 작동하는 방법, Databricks SQL에서 스트리밍 테이블을 사용하여 데이터 로드하는 방법, 그리고 DLT란 무엇인지 참조하세요..

외세 테이블

외장 테이블은 Lakehouse Federation을 통해 Azure Databricks에 연결된 외부 시스템에 저장된 데이터를 나타냅니다. 외장 테이블은 Azure Databricks에서 읽기 전용입니다. 레이크하우스 페더레이션이란 무엇인가?.

기능 설명표

기본 키가 있는 Unity 카탈로그에서 관리하는 델타 테이블은 기능 테이블입니다. 필요에 따라 짧은 대기 시간 사용 사례에 대해 온라인 기능 저장소를 사용하여 기능 테이블을 구성할 수 있습니다. 작업 영역 특성 저장소(레거시)에서 특성 테이블 작업하기를 참조하세요.

Hive 테이블(레거시)

Hive 테이블은 Azure Databricks에 대한 두 가지 고유한 개념을 설명하며, 둘 다 레거시 패턴이며 권장되지 않습니다.

레거시 Hive 메타스토어를 사용하여 등록된 테이블은 기본적으로 레거시 DBFS 루트에 데이터를 저장합니다. Databricks는 레거시 HMS에서 Unity 카탈로그로 모든 테이블을 마이그레이션하는 것이 좋습니다. 레거시 Hive 메타스토어의 데이터베이스 개체를 참조하세요.

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

라이브 테이블(사용되지 않음)

라이브 테이블이라는 용어는 이제 구체화된 뷰구현된 기능의 이전 구현을 나타냅니다. 라이브 테이블을 참조하는 모든 레거시 코드는 구체화된 뷰에 구문을 사용하도록 업데이트해야 합니다. DLT란?Databricks SQL에서 구체화된 뷰 사용하기.