다음을 통해 공유


Delta 테이블 속성 참조

Delta Lake는 delta.로 시작하는 Delta 테이블 속성을 예약합니다. 이러한 속성에는 특정 의미가 있을 수 있으며 이러한 속성이 설정되면 동작이 영향을 받을 수 있습니다.

참고 항목

테이블 속성을 설정하거나 업데이트하는 모든 작업은 다른 동시 쓰기 작업과 충돌하여 작업 실패를 유발할 수 있습니다. Databricks의 권장 사항에 따라 테이블에 대한 동시 쓰기 작업이 없는 경우에만 테이블 속성을 수정하는 것이 좋습니다.

테이블 속성과 SparkSession 속성은 어떻게 상호 작용하나요?

델타 테이블 속성은 테이블별로 설정됩니다. 테이블에 속성이 설정된 경우 이 설정은 기본적으로 뒤에 오는 설정입니다.

일부 테이블 속성에는 항상 테이블 속성보다 우선하는 연결된 SparkSession 구성이 있습니다. 일부 예로는 테이블 수준이 아닌 SparkSession 수준에서 자동 압축 및 최적화된 쓰기를 켜는 spark.databricks.delta.autoCompact.enabled 구성 및 spark.databricks.delta.optimizeWrite.enabled 구성이 있습니다. Databricks는 대부분의 워크로드에 대해 테이블 범위 구성을 사용하는 것을 권장합니다.

모든 델타 테이블 속성에 대해 기본 제공 기본값을 재정의하는 방식으로 SparkSession 구성을 사용하여 새 테이블의 기본값을 설정할 수 있습니다. 이 설정은 새 테이블에만 영향을 미치며 기존 테이블에 설정된 속성을 재정의하거나 대체하지 않습니다. SparkSession에 사용되는 접두사는 테이블 속성에 사용되는 구성과 다릅니다. 이에 대한 내용은 다음 표에서 확인할 수 있습니다.

Delta Lake conf SparkSession conf
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

예를 들어 세션에서 만든 모든 새 Delta Lake 테이블에 대해 delta.appendOnly = true 속성을 설정하려면 다음을 설정합니다.

SET spark.databricks.delta.properties.defaults.appendOnly = true

기존 테이블의 테이블 속성을 수정하려면 SET TBLPROPERTIES를 사용합니다.

Delta 테이블 속성

사용 가능한 Delta 테이블 속성은 다음과 같습니다.

속성
delta.appendOnly

true 이 델타 테이블을 추가 전용으로 지정합니다. 추가 전용인 경우 기존 레코드를 삭제할 수 없으며 기존 값을 업데이트할 수 없습니다.

Delta 테이블 속성 참조를 참조하세요.

데이터 형식: Boolean

기본값: false
delta.autoOptimize.autoCompact

auto Delta Lake가 이 Delta 테이블에 대한 파일의 레이아웃을 자동으로 최적화합니다.

Azure Databricks에서 Delta Lake의 자동 압축을 참조하세요.

데이터 형식: Boolean

기본값: (none)
delta.autoOptimize.optimizeWrite

true Delta Lake가 작성 중에 이 Delta 테이블에 대한 파일의 레이아웃을 자동으로 최적화합니다.

Azure Databricks의 Delta Lake에 대한 최적화된 쓰기를 참조하세요.

데이터 형식: Boolean

기본값: (none)
delta.checkpoint.writeStatsAsJson

true Delta Lake에서 stats 열에 대한 JSON 형식의 검사점에서 파일 통계를 작성합니다.

검사점에서 열 수준 통계 관리를 참조하세요.

데이터 형식: Boolean

기본값: true
delta.checkpoint.writeStatsAsStruct

true Delta Lake에서 stats_parsed 열에 대한 구조체 형식의 검사점에서 파일 통계를 작성하고 파티션 값을 partitionValues_parsed에 대한 구조체로 작성합니다.

검사점에서 열 수준 통계 관리를 참조하세요.

데이터 형식: Boolean

기본값: (none)
delta.checkpointPolicy

classic: 클래식 Delta Lake 검사점의 경우 v2: v2 검사점의 경우

액체 클러스터링이 적용된 테이블과의 호환성을 참조하세요.

데이터 형식: String

기본값: classic
delta.columnMapping.mode

델타 테이블 열 및 다른 이름을 사용하는 해당 Parquet 열에 열 매핑을 사용할 수 있는지 여부입니다.

Delta Lake 열 매핑을 사용하여 열 이름 바꾸기 및 삭제를 참조하세요.

참고: delta.columnMapping.mode를 활성화하면 자동으로
delta.randomizeFilePrefixes;

데이터 형식: DeltaColumnMappingMode

기본값: none
delta.dataSkippingNumIndexedCols

데이터 건너뛰기에 대한 통계를 수집할 Delta Lake의 열 수입니다. -1 값은 모든 열에 대한 통계를 수집함을 의미합니다.

Delta Lake에 대한 데이터 건너뛰기를 참조하세요.

데이터 형식: Int

기본값: 32
delta.dataSkippingStatsColumns

데이터 건너뛰기 기능을 향상시키기 위해 Delta Lake에서 통계를 수집하는 열 이름의 쉼표로 구분된 목록입니다. 이 속성은 delta.dataSkippingNumIndexedCols 보다 우선 사용됩니다.

Delta Lake에 대한 데이터 건너뛰기를 참조하세요.

데이터 형식: String

기본값: (none)
delta.deletedFileRetentionDuration

Delta Lake에서 물리적으로 삭제하기 전에 논리적으로 삭제된 데이터 파일을 유지하는 가장 짧은 기간입니다. 압축 또는 파티션 덮어쓰기 후 부실 판독기의 오류를 방지하기 위한 것입니다.

이 값은 다음을 보장할 수 있을 만큼 커야 합니다.

- 델타 테이블에 액세스하는 동시 판독기 또는 기록기가 있을 때 VACUUM을 실행하는 경우 작업의 가능한 가장 긴 기간보다 깁니다.
- 테이블에서 읽는 스트리밍 쿼리를 실행하는 경우 해당 쿼리는 이 값보다 오래 중지되지 않습니다. 그렇지 않으면 이전 파일을 계속 읽어야 하므로 쿼리를 다시 시작하지 못할 수 있습니다.

시간 이동 쿼리에 대한 데이터 보존 구성을 참조하세요.

데이터 형식: CalendarInterval

기본값: interval 1 week
delta.enableChangeDataFeed

true 변경 데이터 피드를 활성화합니다.

변경 데이터 피드 사용을 참조하세요.

데이터 형식: Boolean

기본값: false
delta.enableDeletionVectors

true로 설정하면 삭제 벡터와 업데이트를 위한 예측 I/O를 활성화합니다.

삭제 벡터란?을 참조하세요.

데이터 형식: Boolean

기본값: 작업 영역 관리자 설정 및 Databricks 런타임 버전에 따라 달라집니다. 삭제 벡터 자동 사용을 참조하세요.
delta.isolationLevel

트랜잭션이 동시 트랜잭션에 의해 수정되지 않도록 격리해야 하는 정도입니다.

유효한 값은 SerializableWriteSerializable입니다.

Azure Databricks의 격리 수준 및 쓰기 충돌을 참조하세요.

데이터 형식: String

기본값: WriteSerializable
delta.logRetentionDuration

델타 테이블에 대한 기록이 유지되는 기간입니다. VACUUM 작업은 이 보존 임계값을 재정의합니다.

검사점이 작성될 때마다 Delta Lake에서 보존 간격보다 오래된 로그 항목을 자동으로 정리합니다. 이 속성을 충분히 큰 값으로 설정하면 많은 로그 항목이 보존됩니다. 로그에 대한 작업이 일정한 시간이므로 성능에 영향을 주지 않습니다. 기록에 대한 작업은 병렬이지만 로그 크기가 증가함에 따라 더 많은 비용이 듭니다.

시간 이동 쿼리에 대한 데이터 보존 구성을 참조하세요.

데이터 형식: CalendarInterval

기본값: interval 30 days
delta.minReaderVersion

이 델타 테이블에서 읽을 수 있는 판독기에 필요한 최소 프로토콜 판독기 버전입니다.

Databricks는 이 속성을 수동으로 구성하는 것을 권장하지 않습니다.

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

데이터 형식: Int

기본값: 1
delta.minWriterVersion

이 델타 테이블에 쓸 수 있는 기록기에 필요한 최소 프로토콜 작성기 버전입니다.

Databricks는 이 속성을 수동으로 구성하는 것을 권장하지 않습니다.

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

데이터 형식: Int

기본값: 2
delta.randomizeFilePrefixes

true Delta Lake가 파티션 정보 대신 파일 경로에 대한 임의의 접두사를 생성하도록 합니다.

데이터 형식: Boolean

기본값: false
delta.randomPrefixLength

delta.randomizeFilePrefixestrue로 설정된 경우 Delta Lake에서 임의 접두사에 대해 생성하는 문자 수입니다.

데이터 형식: Int

기본값: 2
delta.setTransactionRetentionDuration

새 스냅샷이 트랜잭션 식별자를 유지하는 가장 짧은 기간(예: SetTransaction)입니다. 새 스냅샷에 이 속성에 지정된 기간보다 오래되었거나 같은 트랜잭션 식별자가 표시되면 스냅샷은 만료된 것으로 간주하고 무시합니다. SetTransaction 식별자는 쓰기 idempotent를 만들 때 사용됩니다. 자세한 내용은 foreachBatch의 Idempotent 테이블 쓰기를 참조하세요.

데이터 형식: CalendarInterval

기본값: (none)
delta.targetFileSize

파일 튜닝을 위한 대상 파일 크기(바이트 이상). 예를 들면 다음과 같습니다.
104857600(바이트) 또는 100mb.

데이터 파일 크기를 제어하도록 Delta Lake 구성을 참조하세요.

데이터 형식: String

기본값: (none)
delta.tuneFileSizesForRewrites

true 항상 더 작은 파일 크기를 델타 테이블의 모든 데이터 레이아웃 최적화 작업에 사용합니다.

false 더 낮은 파일 크기로 튜닝하지 않도록 합니다. 즉, 자동 검색이 활성화되지 않도록 합니다.

데이터 파일 크기를 제어하도록 Delta Lake 구성을 참조하세요.

데이터 형식: Boolean

기본값: (none)