다음을 통해 공유


Unity 카탈로그 테이블에 대한 단순 클론

Important

Unity 카탈로그 관리 테이블에 대한 단순 클론 지원은 Databricks Runtime 13.3 이상에서 공개 미리 보기로 제공됩니다. Unity 카탈로그 외부 테이블에 대한 단순 클론 지원은 Databricks Runtime 14.2 이상에서 공개 미리 보기로 제공됩니다.

단순 클론을 사용하여 기존 Unity 카탈로그 테이블에서 새 Unity 카탈로그 테이블을 만들 수 있습니다. Unity 카탈로그에 대한 단순 복제 지원을 사용하면 기본 데이터 파일을 복사할 필요 없이 부모 테이블과 독립적으로 액세스 제어 권한이 있는 테이블을 만들 수 있습니다.

Important

Unity 카탈로그 관리 테이블을 Unity 카탈로그 관리 테이블 및 Unity 카탈로그 외부 테이블에만 복제할 수 있습니다. VACUUM 동작은 관리 테이블과 외부 테이블 간에 다릅니다. 진공 및 Unity 카탈로그 단순 클론을 참조하세요.

델타 복제에 대한 자세한 내용은 Azure Databricks에서 테이블 복제를 참조 하세요.

Unity 카탈로그 테이블에 대한 자세한 내용은 테이블 및 뷰란?을 참조하세요.

Unity 카탈로그에서 단순 클론 만들기

다음 구문 예제와 같이 제품 전체의 단순 클론에 사용할 수 있는 동일한 구문을 사용하여 Unity 카탈로그에서 단순 클론을 만들 수 있습니다.

CREATE TABLE <catalog-name>.<schema-name>.<target-table-name> SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>

Unity 카탈로그에서 단순 클론을 만들려면 다음 표에 설명된 대로 원본 및 대상 리소스에 대해 충분한 권한이 있어야 합니다.

리소스 필수 사용 권한
원본 테이블 SELECT
원본 스키마 USE SCHEMA
원본 카탈로그 USE CATALOG
대상 스키마 USE SCHEMA, CREATE TABLE
대상 카탈로그 USE CATALOG
대상 외부 위치(외부 테이블만 해당) CREATE EXTERNAL TABLE

다른 create table 문과 마찬가지로 단순 클론을 만드는 사용자는 대상 테이블의 소유자입니다. 대상 복제 테이블의 소유자는 원본 테이블과 독립적으로 해당 테이블에 대한 액세스 권한을 제어할 수 있습니다.

참고 항목

복제된 테이블의 소유자는 원본 테이블의 소유자와 다를 수 있습니다.

Unity 카탈로그에서 단순 복제 테이블 쿼리 또는 수정

Important

이 섹션의 지침에서는 공유 액세스 모드로 구성된 컴퓨팅에 필요한 권한을 설명합니다. 단일 사용자 액세스 모드의 경우 단일 사용자 액세스 모드에서 단순 복제 테이블 작업을 참조하세요.

Unity 카탈로그에서 단순 클론을 쿼리하려면 다음 표에 설명된 대로 테이블에 대한 충분한 권한과 리소스를 포함해야 합니다.

리소스 필수 사용 권한
카탈로그 USE CATALOG
스키마 USE SCHEMA
테이블 SELECT

다음 작업을 완료하려면 복제 작업의 대상에 대한 권한도 MODIFY 있어야 합니다.

  • 레코드 삽입
  • 레코드 삭제
  • 레코드 업데이트
  • MERGE
  • CREATE OR REPLACE TABLE
  • DROP TABLE

진공 및 Unity 카탈로그 단순 클론

Important

이 동작은 관리되는 테이블의 경우 Databricks Runtime 13.3 LTS 이상, 외부 테이블의 경우 Databricks Runtime 14.2 이상에서 공개 미리 보기로 제공됩니다.

단순 복제 작업의 원본 및 대상에 Unity 카탈로그 테이블을 사용하는 경우 Unity 카탈로그는 원본 및 복제 작업의 대상에 대한 안정성을 향상시키기 위해 기본 데이터 파일을 관리합니다. 단순 클론의 원본에서 실행 VACUUM 해도 복제된 테이블이 중단되지 않습니다.

일반적으로 지정된 보존 임계값에 대한 유효한 파일을 식별하는 경우 VACUUM 현재 테이블에 대한 메타데이터만 고려됩니다. Unity 카탈로그에 대한 단순 복제 지원은 복제된 모든 테이블과 원본 데이터 파일 간의 관계를 추적하므로 원본 테이블뿐만 아니라 단순 복제된 테이블에 대한 쿼리를 반환하는 데 필요한 데이터 파일을 포함하도록 유효한 파일이 확장됩니다.

즉, Unity 카탈로그 단순 복제 VACUUM 의미 체계의 경우 유효한 데이터 파일은 원본 테이블 또는 복제된 테이블에 대해 지정된 보존 임계값 내의 모든 파일입니다. 관리되는 테이블과 외부 테이블의 의미 체계는 약간 다릅니다.

이 향상된 메타데이터 추적은 다음 의미 체계를 사용하여 작업이 델타 테이블을 지원하는 데이터 파일에 미치는 영향을 변경 VACUUM 합니다.

  • 관리되는 테이블 VACUUM 의 경우 단순 복제 작업의 원본 또는 대상에 대한 작업은 원본 테이블에서 데이터 파일을 삭제할 수 있습니다.
  • 외부 테이블 VACUUM 의 경우 작업은 원본 테이블에 대해 실행할 때만 원본 테이블에서 데이터 파일을 제거합니다.
  • 원본 테이블에 유효하지 않은 데이터 파일 또는 원본에 대한 단순 클론만 제거됩니다.
  • 단일 원본 테이블에 대해 여러 단순 클론이 정의된 경우 복제된 테이블에서 실행 VACUUM 해도 다른 복제된 테이블에 대한 유효한 데이터 파일이 제거되지 않습니다.

참고 항목

Databricks는 지속적인 장기 실행 VACUUM 트랜잭션이 손상되지 않도록 7일 미만의 보존 설정으로 실행하지 않는 것이 좋습니다. 더 낮은 보존 임계값으로 실행 VACUUM 해야 하는 경우 Unity 카탈로그의 단순 클론이 Azure Databricks의 다른 복제된 테이블과 상호 작용하는 방식과 어떻게 다른지 VACUUM VACUUM 이해해야 합니다. Azure Databricks에서 테이블 복제를 참조하세요.

단일 사용자 액세스 모드에서 단순 복제 테이블 작업

단일 사용자 액세스 모드에서 Unity 카탈로그 단순 클론을 사용하는 경우 복제된 테이블 원본 및 대상 테이블에 대한 리소스에 대한 권한이 있어야 합니다.

즉, 대상 테이블에 필요한 권한 외에도 간단한 쿼리의 경우 원본 카탈로그 및 스키마에 대한 사용 권한과 SELECT 원본 테이블에 대한 사용 권한이 있어야 합니다USE. 대상 테이블에 레코드를 업데이트하거나 삽입하는 쿼리의 경우 원본 테이블에 대한 권한도 있어야 MODIFY 합니다.

Databricks는 Unity 카탈로그 단순 복제 대상 및 해당 원본 테이블에 대한 권한의 독립적인 진화를 허용하기 때문에 공유 액세스 모드를 사용하여 컴퓨팅에서 Unity 카탈로그 클론을 사용하는 것이 좋습니다.

제한 사항

  • 외부 테이블의 단순 클론은 외부 테이블이어야 합니다. 관리되는 테이블의 단순 클론은 관리되는 테이블이어야 합니다.
  • 델타 공유를 사용하여 단순 클론을 공유할 수 없습니다.
  • 얕은 클론을 중첩할 수 없습니다. 즉, 얕은 클론에서 얕은 클론을 만들 수 없습니다.
  • 관리되는 테이블의 경우 원본 테이블을 삭제하면 단순 클론에 대한 대상 테이블이 중단됩니다. 외부 테이블을 지원하는 데이터 파일은 작업에 의해 DROP TABLE 제거되지 않으므로 외부 테이블의 단순 클론이 원본을 삭제하여 영향을 받지 않습니다.
  • Unity 카탈로그를 사용하면 명령 UNDROP 후 약 7일 동안 테이블을 관리할 수 있습니다 DROP TABLE . Databricks Runtime 13.3 LTS 이상에서는 삭제된 관리 테이블을 기반으로 관리되는 단순 클론이 이 7일 동안 계속 작동합니다. 이 창에 원본 테이블이 없 UNDROP 으면 원본 테이블의 데이터 파일이 가비지 수집되면 단순 클론의 작동이 중지됩니다.