테이블 버전 관리

델타 테이블의 트랜잭션 로그에는 델타 Lake 진화를 지 원하는 버전 관리 정보가 포함 되어 있습니다. 델타 Lake는 최소한의 판독기 및 기록기 버전을 개별적으로 추적 합니다.

델타 Lake는 이전 버전과의 호환성을 보장 합니다. 더 높은 버전의 Databricks Runtime는 항상 더 낮은 버전으로 작성 된 데이터를 읽을 수 있습니다.

델타 Lake는 때때로 이전 버전과의 호환성을 중단 합니다. 더 낮은 버전의 Databricks Runtime는 더 높은 버전의 Databricks Runtime에서 작성 된 데이터를 읽고 쓸 수 없습니다. 너무 낮은 Databricks Runtime 버전의 테이블을 읽고 쓰려면 업그레이드 해야 한다는 오류 메시지가 표시 됩니다 (예를 들어,

테이블을 만들 때 델타 Lake는 스키마 나 테이블 속성 등의 테이블 특성에 따라 필요한 최소 프로토콜 버전을 선택 합니다. SQL 구성을 설정 하 여 기본 프로토콜 버전을 설정할 수도 있습니다.

  • spark.databricks.delta.properties.defaults.minWriterVersion = 2(기본값)
  • spark.databricks.delta.properties.defaults.minReaderVersion = 1(기본값)

테이블을 최신 프로토콜 버전으로 업그레이드 하려면 메서드를 사용 합니다 DeltaTable.upgradeTableProtocol .

Python

from delta.tables import DeltaTable
delta = DeltaTable.forPath(spark, "path_to_table") # or DeltaTable.forName
delta.upgradeTableProtocol(1, 3) # upgrades to readerVersion=1, writerVersion=3

Scala

import io.delta.tables.DeltaTable
val delta = DeltaTable.forPath(spark, "path_to_table") // or DeltaTable.forName
delta.upgradeTableProtocol(1, 3) // upgrades to readerVersion=1, writerVersion=3

중요

프로토콜 업그레이드는 되돌릴 수 없으므로 필요한 경우에만 특정 테이블을 업그레이드 하는 것이 좋습니다. 예를 들어 델타 Lake에서 새로운 기능을 옵트인 (opt in) 할 수 있습니다.