Azure Databricks는 Delta Lake 기능 호환성을 어떻게 관리하나요?
Delta Lake는 Linux Foundation의 거버넌스 하에 있는 독립적인 오픈 소스 프로젝트입니다. Databricks는 Databricks 런타임 릴리스에서 Delta Lake를 기반으로 하는 새로운 Delta Lake 기능 및 최적화를 지원합니다.
Delta Lake 기능을 활용하는 Azure Databricks 최적화는 호환성을 위해 OSS Delta Lake에서 사용되는 프로토콜을 준수합니다.
Azure Databricks의 다양한 최적화를 위해 table에서 Delta Lake 기능을 활성화해야 합니다. Delta Lake 기능은 항상 이전 버전과 호환되므로, 더 낮은 Databricks 런타임 버전으로 작성된 tables는 항상 더 높은 Databricks 런타임 버전에서 읽고 쓸 수 있습니다. 일부 기능을 사용하도록 설정하면 더 낮은 Databricks Runtime 버전에서 실행되는 워크로드와의 호환성이 중단됩니다. 호환성을 중단하는 기능의 경우 업그레이드된 tables 참조하는 모든 워크로드를 update 준수 Databricks 런타임 버전을 사용해야 합니다.
참고 항목
Azure Databricks에서 deletionVectors
, v2Checkpoint
, columnMapping
, typeWidening-preview
및 collations-preview
삭제할 수 있습니다.
드롭 델타 table 기능을 참조하세요.
Important
모든 프로토콜 변경 작업은 모든 동시 쓰기와 충돌합니다.
스트리밍 읽기는 table 메타데이터를 변경하는 커밋이 발생할 때 실패합니다. 스트림을 계속하려면 다시 시작해야 합니다. 권장 방법은 구조적 스트리밍에 대한 프로덕션 고려 사항을 참조하세요.
Databricks 런타임 업그레이드가 필요한 Delta Lake 기능은 무엇인가요?
다음 Delta Lake 기능은 호환성을 중단합니다. 기능은 table기준으로table에 기반하여 활성화됩니다. 이 table는 Azure Databricks에서 여전히 지원되는 Databricks 런타임 중 가장 낮은 버전을 나열합니다.
기능 | Databricks 런타임 버전 이상이 필요합니다. | 설명서 |
---|---|---|
CHECK 제약 조건 |
Databricks Runtime 9.1 LTS | Set CHECK constraint Azure Databricks |
데이터 피드 변경 | Databricks Runtime 9.1 LTS | Azure Databricks에서 Delta Lake 변경 데이터 피드 사용 |
생성된 columns | Databricks Runtime 9.1 LTS | Delta Lake에서 생성된 columns |
Column 매핑 | Databricks Runtime 10.4 LTS | Delta Lake column 매핑을(를) 사용하여 columns의 이름을 변경하고 삭제하기 |
아이덴티티 columns | Databricks Runtime 10.4 LTS | Delta Lake ID columns 사용 |
Table 기능 | Databricks Runtime 12.2 LTS | table 기능은 무엇인가요? |
삭제 벡터 | Databricks Runtime 12.2 LTS | 삭제 벡터란? |
TimestampNTZ | Databricks Runtime 13.3 LTS | TIMESTAMP_NTZ 형식 |
제복 | Databricks Runtime 13.3 LTS | Iceberg 클라이언트와 델타 tables 읽기 |
Liquid 클러스터링 | Databricks Runtime 13.3 LTS | Delta tables에 액체 클러스터링을 사용 |
행 추적 | Databricks Runtime 14.1 | Delta tables 행 추적 사용 |
형식 확대 | Databricks Runtime 15.2 | 형식 확장 |
변형 | Databricks Runtime 15.3 | Delta Lake의 Variant 지원 |
정렬 순서 | Databricks Runtime 16.1 | Delta Lake 대한 |
Databricks Runtime 릴리스 정보 버전 및 호환성을 참조하세요.
참고 항목
Delta Live Tables 및 Databricks SQL은 새로운 기능을 지원하기 위해 정규 릴리스로 런타임 환경을 자동으로 업그레이드합니다. Delta Live Tables 릴리스 정보와 릴리스 업그레이드 프로세스 및 Databricks SQL 릴리스 정보를 참조하십시오.
table 프로토콜 사양이란?
모든 델타 table에는 해당 table가 지원하는 기능의 set을 나타내는 프로토콜 사양이 있습니다. 프로토콜 사양은 table 지원하는 모든 기능을 처리할 수 있는지 확인하기 위해 table 읽거나 쓰는 애플리케이션에서 사용됩니다. 애플리케이션이 table프로토콜에서 지원되는 것으로 나열된 기능을 처리하는 방법을 모르는 경우 해당 애플리케이션은 해당 table읽거나 쓸 수 없습니다.
프로토콜 사양은 읽기 프로토콜과 쓰기 프로토콜의 두 가지 구성 요소로 구분됩니다.
Warning
대부분의 프로토콜 버전 업그레이드는 되돌릴 수 없으며, 프로토콜 버전을 업그레이드하면 기존 Delta Lake table의 읽기 기능, 쓰기 기능, 또는 두 기능 모두가 중단될 수 있습니다. Databricks는 필요한 경우에만, 예를 들어 Delta Lake의 새로운 기능을 활용하기 위해 특정 tables를 업그레이드하는 것을 권장합니다. 또한 모든 현재 및 미래의 프로덕션 도구가 새 프로토콜 버전으로 Delta Lake tables 지원하는지 확인해야 합니다.
프로토콜 다운그레이드는 일부 기능에 사용할 수 있습니다. 드롭 델타 table 기능를 참조하세요.
프로토콜 읽기
읽기 프로토콜은 table 지원하는 모든 기능과 table 올바르게 읽기 위해 애플리케이션이 이해해야 하는 기능을 나열합니다. table 읽기 프로토콜을 업그레이드하려면 모든 판독기 애플리케이션이 추가된 기능을 지원해야 합니다.
Important
Delta table에 작성을 하는 모든 애플리케이션은 table의 스냅샷을 생성할 수 있어야 한다. 따라서 Delta tables에 쓰는 워크로드는 읽기 및 쓰기 프로토콜 요구 사항을 모두 준수해야 합니다.
Azure Databricks의 워크로드에서 지원되지 않는 프로토콜이 발생하는 경우 해당 프로토콜을 지원하는 더 높은 Databricks 런타임으로 업그레이드해야 합니다.
프로토콜 작성
쓰기 프로토콜은 table이 지원하는 기능들과 애플리케이션이 table에 정확하게 쓰기 위해 이해해야 하는 모든 기능을 나열합니다. table 쓰기 프로토콜을 업그레이드하려면 모든 기록기 애플리케이션이 추가된 기능을 지원해야 합니다. 읽기 프로토콜도 업그레이드되지 않는 한 읽기 전용 애플리케이션에는 영향을 주지 않습니다.
어떤 프로토콜을 업그레이드해야 합니까?
일부 기능을 사용하려면 읽기 프로토콜과 쓰기 프로토콜을 모두 업그레이드해야 합니다. 다른 기능을 사용하려면 쓰기 프로토콜만 업그레이드해야 합니다.
예를 들어 제약 조건에 대한 CHECK
지원은 쓰기 프로토콜 기능입니다. 즉, 쓰기 애플리케이션만 제약 조건에 대해 CHECK
알고 적용해야 합니다.
반면, column 매핑을 사용하려면 읽기 및 쓰기 프로토콜을 모두 업그레이드해야 합니다. 데이터는 table에 다르게 저장되기 때문에 리더 애플리케이션은 데이터를 올바르게 읽을 수 있도록 column 매핑을 이해해야 합니다.
최소 판독기 및 기록기 버전
참고 항목
column 매핑을 사용하도록 설정할 때 table 프로토콜 버전을 명시적으로 업그레이드해야 합니다.
table델타 기능을 사용하도록 설정하면 table 프로토콜이 자동으로 업그레이드됩니다. Databricks는 minReaderVersion
및 minWriterVersion
table 속성을 변경하지 않도록 권장합니다. 이러한 table 속성을 변경해도 프로토콜 업그레이드가 방지되지는 않습니다. 이러한 values 낮은 값으로 설정해도 table다운그레이드되지 않습니다.
드롭 델타 table 기능를 참조하세요.
table 기능은 무엇인가요?
Databricks Runtime 12.2 LTS 이상에서 Delta Lake table의 기능은 지정된 table에서 지원되는 기능을 구체적으로 나타내는 세분화된 플래그를 도입합니다. Databricks Runtime 11.3 LTS 이하에서 Delta Lake 기능은 프로토콜 버전이라는 번들에서 사용하도록 설정되었습니다. Table 기능은 프로토콜 버전의 후속 기능이며 Delta Lake를 읽고 쓰는 클라이언트의 유연성 향상을 목표로 설계되었습니다. 프로토콜 버전이란?을 참조하세요.
참고 항목
Table 기능에는 프로토콜 버전 요구 사항이 있습니다. 프로토콜 버전별 기능을 참조하세요.
델타 table 기능은 table 특정 기능을 지원한다는 것을 나타내는 표식입니다. 모든 기능은 쓰기 프로토콜 기능(쓰기 프로토콜만 업그레이드) 또는 읽기/쓰기 프로토콜 기능입니다(읽기 및 쓰기 프로토콜이 기능을 사용하도록 업그레이드됨을 의미).
Delta Lake에서 지원되는 table 기능에 대한 자세한 내용은 Delta Lake 프로토콜참조하세요.
table 기능이 Delta Lake 기능의 사용 방식을 변경합니까?
Azure Databricks를 통해서만 Delta tables와 상호 작용하는 경우 최소 Databricks 런타임 요구 사항을 사용하여 Delta Lake 기능 지원을 계속 추적할 수 있습니다. Azure Databricks는 모든 Databricks Runtime LTS 릴리스에서 table 기능으로 업그레이드된 델타 tables을 읽기를 지원합니다. 단, table가 사용하는 모든 기능이 해당 릴리스에서 지원되는 경우에만 가능합니다.
다른 시스템을 사용하여 Delta tables 읽고 쓰는 경우 시스템에서 업그레이드된 프로토콜 버전을 이해할 수 없는 위험이 있으므로 table 기능이 호환성에 미치는 영향을 고려해야 할 수 있습니다.
Important
Table 기능은 기록기 버전 7 및 판독기 버전 3에 대한 Delta Lake 형식에 도입되었습니다. Azure Databricks는
프로토콜 버전이란?
프로토콜 버전은 table 기능의 특정 그룹을 나타내는 프로토콜 번호입니다. Databricks Runtime 11.3 LTS 이하에서는 table 기능을 개별적으로 사용하도록 설정할 수 없습니다. 프로토콜 버전은 기능 그룹을 번들로 묶습니다.
델타 tables 읽기 프로토콜 및 쓰기 프로토콜에 대한 별도의 프로토콜 버전을 지정합니다. Delta table 대한 트랜잭션 로그에는 Delta Lake 진화를 지원하는 프로토콜 버전 관리 정보가 포함되어 있습니다. 자세한설명과 함께
프로토콜 버전은 이전 프로토콜의 모든 기능을 번들로 묶습니다. 프로토콜 버전별 기능을 참조하세요.
참고 항목
기록기 버전 7 및 판독기 버전 3부터 Delta Lake는 table 기능의 개념을 도입했습니다. 이제 table 기능을 사용하여 데이터 에코시스템의 다른 클라이언트에서 지원하는 기능만 사용하도록 선택할 수 있습니다. table 기능이란 무엇인지 참고하십시오..
프로토콜 버전별 기능
다음 table Delta Lake 기능에 필요한 최소 프로토콜 버전을 보여줍니다.
참고 항목
Databricks 런타임 호환성에만 관심이 있는 경우 Databricks 런타임 업그레이드가 필요한 Delta Lake 기능을 참조 하세요. 델타 공유는 minReaderVersion
, = ,1
이 필요한 기능과 함께 tables 읽기만 지원합니다.
기능 | minWriterVersion |
minReaderVersion |
설명서 |
---|---|---|---|
기본 기능 | 2 | 1 | Delta Lake란? |
CHECK 제약 조건 |
3 | 1 | Set Azure Databricks에서 constraint를 체크 |
데이터 피드 변경 | 4 | 1 | Azure Databricks에서 Delta Lake 변경 데이터 피드 사용 |
생성된 columns | 4 | 1 | Delta Lake에서 생성된 columns |
Column 매핑 | 5 | 2 | Delta Lake |
정체성 columns | 6 | 2 | Delta Lake ID columns 사용 |
Table 기능 읽기 | 7 | 1 | table 기능은 무엇인가요? |
Table 기능 쓰기 | 7 | 3 | table 기능은 무엇인가요? |
행 추적 | 7 | 1 | Delta에 행 추적을 사용하십시오 tables |
삭제 벡터 | 7 | 3 | 삭제 벡터란? |
TimestampNTZ | 7 | 3 | TIMESTAMP_NTZ 형식 |
Liquid 클러스터링 | 7 | 3 | Delta tables에서 액체 클러스터링 사용 |
제복 | 7 | 2 | 델타 tables을 Iceberg 클라이언트로 읽기 |
형식 확대 | 7 | 3 | 형식 확장 |
변형 | 7 | 3 | Delta Lake의 Variant 지원 |
데이터 정렬을 | 7 | 3 | Delta Lake 대한 |