다음을 통해 공유


델타 테이블 기능 삭제

Important

델타 테이블 기능 삭제 및 프로토콜 버전 다운그레이드에 대한 지원은 Databricks Runtime 14.1 이상에서 공개 미리 보기 로 제공됩니다.

Azure Databricks는 테이블 기능 삭제에 대한 제한된 지원을 제공합니다. 테이블 기능을 삭제하려면 다음이 발생해야 합니다.

  • 테이블 기능을 사용하는 테이블 속성을 사용하지 않도록 설정합니다.
  • 테이블을 지원하는 데이터 파일에서 테이블 기능의 모든 추적을 제거합니다.
  • 트랜잭션 로그에서 테이블 기능을 사용하는 트랜잭션 항목을 제거합니다.
  • 테이블 프로토콜을 다운그레이드합니다.

지원되는 경우 이 기능을 사용하여 이전 Databricks 런타임 버전, 델타 공유 또는 기타 Delta Lake 판독기 또는 기록기 클라이언트와의 호환성을 지원해야 합니다.

Important

모든 DROP FEATURE 작업은 모든 동시 쓰기와 충돌합니다.

스트리밍 읽기는 테이블 메타데이터를 변경하는 커밋이 발생하면 실패합니다. 스트림을 계속하려면 다시 시작해야 합니다. 권장 방법은 구조적 스트리밍에 대한 프로덕션 고려 사항을 참조하세요.

델타 테이블 기능을 삭제하려면 어떻게 해야 하나요?

델타 테이블 기능을 제거하려면 명령을 실행합니다 ALTER TABLE <table-name> DROP FEATURE <feature-name> [TRUNCATE HISTORY] . ALTER TABLE을 참조하세요.

Databricks Runtime 14.1 이상을 사용해야 하며 MODIFY 대상 델타 테이블에 대한 권한이 있어야 합니다.

삭제할 수 있는 델타 테이블 기능은 무엇인가요?

다음 델타 테이블 기능을 삭제할 수 있습니다.

  • deletionVectors. 삭제 벡터가란?을 참조하세요.
  • v2Checkpoint. 액체 클러스터링이 있는 테이블의 호환성을 참조 하세요.
  • columnMapping. Delta Lake 열 매핑을 사용하여 열 이름 바꾸기 및 삭제를 참조 하세요.
  • typeWidening-preview. 형식 확대를 참조하세요.
  • checkConstraints. Azure Databricks의 제약 조건을 참조하세요.

다른 델타 테이블 기능은 삭제할 수 없습니다.

테이블 기능을 사용하여 레거시 기능 삭제

이 명령에는 DROP FEATURE 테이블 기능 읽기 및 쓰기를 지원하는 프로토콜 버전이 필요합니다. 이전 프로토콜 버전에서 checkConstraints 지원되었던 델타 기능 columnMapping 테이블에서 사용하도록 설정된 다른 기능에 따라 프로토콜 버전을 업그레이드해야 이러한 기능을 삭제할 수 있습니다.

다음 명령을 사용하여 열 매핑을 삭제하고 프로토콜을 다운그레이드할 수 있는 테이블 판독기 및 기록기 버전을 업그레이드할 수 있습니다.

ALTER TABLE <table-name> SET TBLPROPERTIES (
  'delta.minReaderVersion' = '3',
  'delta.minWriterVersion' = '7'
)

델타 테이블 기능은 어떻게 삭제하나요?

델타 테이블 기능은 판독기 및 기록기 프로토콜을 나타내므로 전체 제거를 위해 트랜잭션 로그에 완전히 없어야 합니다. 기능 삭제는 두 단계로 진행되며 완료되기 전에 경과하는 데 시간이 필요합니다. 기능 제거의 세부 사항은 기능에 따라 다르지만 다음 섹션에서는 일반적인 개요를 제공합니다.

테이블 기능 삭제 준비

첫 번째 단계에서 사용자는 테이블 기능을 삭제할 준비를 합니다. 다음은 이 단계에서 발생하는 작업을 설명합니다.

  1. 사용자가 명령을 실행합니다 DROP FEATURE .
  2. 특히 테이블 기능을 사용하도록 설정하는 테이블 속성에는 기능을 사용하지 않도록 설정된 값이 있습니다.
  3. 삭제된 기능과 연결된 동작을 제어하는 테이블 속성에는 기능이 도입되기 전에 기본값으로 설정된 옵션이 있습니다.
  4. 필요에 따라 업데이트된 테이블 속성을 기준으로 데이터 및 메타데이터 파일을 다시 작성합니다.
  5. 이 명령은 실행을 완료하고 기능 제거를 진행하기 위해 24시간을 기다려야 한다는 오류 메시지를 반환합니다.

먼저 기능을 사용하지 않도록 설정하면 프로토콜 다운그레이드를 완료하기 전에 대상 테이블에 계속 쓸 수 있지만 제거하려는 테이블 기능은 사용할 수 없습니다.

참고 항목

테이블을 이 상태로 두면 테이블에 대한 작업은 테이블 기능을 사용하지 않지만 프로토콜은 테이블 기능을 계속 지원합니다. 최종 다운그레이드 단계를 완료할 때까지 테이블 기능을 이해하지 못하는 델타 클라이언트에서 테이블을 읽을 수 없습니다.

프로토콜 다운그레이드 및 테이블 기능 삭제

테이블 기능을 삭제하려면 기능과 연결된 모든 트랜잭션 기록을 제거하고 프로토콜을 다운그레이드해야 합니다.

  1. 최소 24시간이 지나면 절을 DROP FEATURE 사용하여 명령을 다시 TRUNCATE HISTORY 실행합니다.
  2. 클라이언트는 지정된 보존 임계값의 트랜잭션이 테이블 기능을 사용하지 않는지 확인한 다음 테이블 기록을 해당 treshold로 자립니다.
  3. 프로토콜이 다운그레이드되어 테이블 기능이 삭제됩니다.
  4. 테이블에 있는 테이블 기능을 레거시 프로토콜 버전 minReaderVersion 으로 나타낼 수 있는 경우 테이블 및 minWriterVersion 테이블은 델타 테이블에서 사용하는 나머지 모든 기능을 정확히 지원하는 가장 낮은 버전으로 다운그레이드됩니다.

Important

실행 시 ALTER TABLE <table-name> DROP FEATURE <feature-name> TRUNCATE HISTORY 24시간 이전의 모든 트랜잭션 로그 데이터가 제거됩니다. 델타 테이블 기능을 삭제한 후에는 테이블 기록 또는 시간 이동에 액세스할 수 없습니다.

Azure Databricks에서 Delta Lake 기능 호환성을 관리하는 방법을 참조 하세요.