Bagikan melalui


Referensi properti tabel Delta

Delta Lake memesan properti tabel Delta yang dimulai dengan delta.. Properti ini mungkin memiliki arti khusus, dan memengaruhi perilaku ketika properti ini diatur.

Catatan

Semua operasi yang mengatur atau memperbarui properti tabel bertentangan dengan operasi tulis bersamaan lainnya, menyebabkannya gagal. Databricks menyarankan Anda memodifikasi properti tabel hanya ketika tidak ada operasi tulis bersamaan pada tabel.

Bagaimana properti tabel dan properti SparkSession berinteraksi?

Properti tabel Delta diatur per tabel. Jika properti diatur pada tabel, maka ini adalah pengaturan yang diikuti secara default.

Beberapa properti tabel memiliki konfigurasi SparkSession terkait yang selalu diutamakan daripada properti tabel. Beberapa contoh termasuk spark.databricks.delta.autoCompact.enabled konfigurasi dan spark.databricks.delta.optimizeWrite.enabled , yang mengaktifkan pemadatan otomatis dan penulisan yang dioptimalkan pada tingkat SparkSession daripada tingkat tabel. Databricks merekomendasikan penggunaan konfigurasi cakupan tabel untuk sebagian besar beban kerja.

Untuk setiap properti tabel Delta, Anda dapat mengatur nilai default untuk tabel baru menggunakan konfigurasi SparkSession, mengganti default bawaan. Pengaturan ini hanya memengaruhi tabel baru dan tidak menimpa atau mengganti properti yang diatur pada tabel yang sudah ada. Awalan yang digunakan dalam SparkSession berbeda dari konfigurasi yang digunakan dalam properti tabel, seperti yang ditunjukkan dalam tabel berikut:

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

Misalnya, untuk mengatur properti delta.appendOnly = true untuk semua tabel Delta Lake baru yang dibuat dalam sesi, atur yang berikut ini:

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

Untuk mengubah properti tabel dari tabel yang sudah ada, gunakan SET TBLPROPERTIES.

Properti tabel Delta

Properti tabel Delta yang tersedia meliputi yang berikut ini:

Properti
delta.appendOnly

true agar tabel Delta ini menjadi tambahan-saja. Jika tambahkan-saja, rekaman yang ada tidak dapat dihapus, dan nilai yang ada tidak dapat diperbarui.

Lihat Referensi properti tabel Delta.

Jenis data: Boolean

Default: false
delta.autoOptimize.autoCompact

auto agar Delta Lake mengoptimalkan tata letak file secara otomatis untuk tabel Delta ini.

Lihat Pemadatan otomatis untuk Delta Lake di Azure Databricks.

Jenis data: Boolean

Default: (tidak ada)
delta.autoOptimize.optimizeWrite

true agar Delta Lake mengoptimalkan tata letak file secara otomatis untuk tabel Delta ini selama penulisan.

Lihat Penulisan yang dioptimalkan untuk Delta Lake di Azure Databricks.

Jenis data: Boolean

Default: (tidak ada)
delta.checkpoint.writeStatsAsJson

true agar Delta Lake menulis statistik file di titik pemeriksaan dalam format JSON untuk stats kolom .

Lihat Mengelola statistik tingkat kolom di titik pemeriksaan.

Jenis data: Boolean

Default: true
delta.checkpoint.writeStatsAsStruct

true agar Delta Lake menulis statistik file ke titik pemeriksaan dalam format struktur untuk stats_parsed kolom dan menulis nilai partisi sebagai struct untuk partitionValues_parsed.

Lihat Mengelola statistik tingkat kolom di titik pemeriksaan.

Jenis data: Boolean

Default: (tidak ada)
delta.checkpointPolicy

classic untuk titik pemeriksaan Delta Lake klasik. v2 untuk titik pemeriksaan v2.

Lihat Kompatibilitas untuk tabel dengan pengklusteran cairan.

Jenis data: String

Default: classic
delta.columnMapping.mode

Apakah pemetaan kolom diaktifkan untuk kolom tabel Delta dan kolom Parquet terkait yang menggunakan nama yang berbeda.

Lihat Mengganti nama dan meletakkan kolom dengan pemetaan kolom Delta Lake.

Catatan: Mengaktifkan delta.columnMapping.mode aktifkan secara otomatis
delta.randomizeFilePrefixes.

Jenis data: DeltaColumnMappingMode

Default: none
delta.dataSkippingNumIndexedCols

Jumlah kolom untuk Delta Lake untuk mengumpulkan statistik tentang untuk melewatkan data. Nilai -1 sarana untuk mengumpulkan statistik untuk semua kolom.

Lihat Melewatkan data untuk Delta Lake.

Jenis data: Int

Default: 32
delta.dataSkippingStatsColumns

Daftar nama kolom yang dipisahkan koma tempat Delta Lake mengumpulkan statistik untuk meningkatkan fungsionalitas melompati data. Properti ini lebih diutamakan daripada delta.dataSkippingNumIndexedCols.

Lihat Melewatkan data untuk Delta Lake.

Jenis data: String

Default: (tidak ada)
delta.deletedFileRetentionDuration

Durasi terpendek bagi Delta Lake untuk menyimpan file data yang dihapus secara logis sebelum menghapusnya secara fisik. Hal ini untuk mencegah kegagalan pada pembaca kedaluwarsa setelah pemadatan atau penimpaan partisi.

Nilai ini harus cukup besar untuk memastikan bahwa:

- Ini lebih besar dari durasi pekerjaan sepanjang mungkin jika Anda menjalankan VACUUM ketika ada pembaca atau penulis bersamaan yang mengakses tabel Delta.
- Jika Anda menjalankan kueri streaming yang membaca dari tabel, kueri tersebut tidak berhenti lebih lama dari nilai ini. Jika tidak, kueri mungkin tidak dapat dimulai ulang, karena masih harus membaca file lama.

Lihat Mengonfigurasi retensi data untuk kueri perjalanan waktu.

Jenis data: CalendarInterval

Default: interval 1 week
delta.enableChangeDataFeed

true untuk mengaktifkan umpan data perubahan.

Lihat Mengaktifkan umpan data perubahan.

Jenis data: Boolean

Default: false
delta.enableDeletionVectors

true untuk mengaktifkan vektor penghapusan dan I/O prediktif untuk pembaruan.

Lihat Apa itu vektor penghapusan?.

Jenis data: Boolean

Default: Bergantung pada pengaturan admin ruang kerja dan versi Databricks Runtime. Lihat Mengaktifkan vektor penghapusan secara otomatis
delta.isolationLevel

Tingkat transaksi harus diisolasi dari modifikasi yang dilakukan oleh transaksi bersamaan.

Nilai yang berlaku adalah Serializable atau WriteSerializable.

Lihat Tingkat isolasi dan tulis konflik di Azure Databricks.

Jenis data: String

Default: WriteSerializable
delta.logRetentionDuration

Berapa lama riwayat untuk tabel Delta disimpan. VACUUM operasi mengambil alih ambang retensi ini.

Setiap kali titik pemeriksaan ditulis, Delta Lake secara otomatis membersihkan entri log yang lebih lama dari interval retensi. Jika Anda mengatur properti ini ke nilai yang cukup besar, banyak entri log yang dipertahankan. Ini seharusnya tidak memengaruhi kinerja karena operasi terhadap log adalah waktu yang konstan. Operasi pada sejarah bersifat paralel tetapi akan menjadi lebih mahal karena ukuran log meningkat.

Lihat Mengonfigurasi retensi data untuk kueri perjalanan waktu.

Jenis data: CalendarInterval

Default: interval 30 days
delta.minReaderVersion

Versi pembaca protokol minimum yang diperlukan untuk pembaca yang memungkinkan untuk membaca dari tabel Delta ini.

Databricks merekomendasikan untuk tidak mengonfigurasi properti ini secara manual.

Lihat Bagaimana Azure Databricks mengelola kompatibilitas fitur Delta Lake?.

Jenis data: Int

Default: 1
delta.minWriterVersion

Versi penulis protokol minimum yang diperlukan untuk penulis yang memungkinkan untuk menulis ke tabel Delta ini.

Databricks merekomendasikan untuk tidak mengonfigurasi properti ini secara manual.

Lihat Bagaimana Azure Databricks mengelola kompatibilitas fitur Delta Lake?.

Jenis data: Int

Default: 2
delta.randomizeFilePrefixes

true agar Delta Lake menghasilkan awalan acak untuk jalur file alih-alih informasi partisi.

Jenis data: Boolean

Default: false
delta.randomPrefixLength

Ketika delta.randomizeFilePrefixes diatur ke true, jumlah karakter yang dihasilkan Delta Lake untuk awalan acak.

Jenis data: Int

Default: 2
delta.setTransactionRetentionDuration

Durasi terpendek di mana rekam jepret baru akan mempertahankan pengidentifikasi transaksi (misalnya, SetTransactions). Ketika rekam jepret baru melihat pengidentifikasi transaksi yang lebih lama dari atau sama dengan durasi yang ditentukan oleh properti ini, rekam jepret menganggapnya kedaluwarsa dan mengabaikannya. Pengidentifikasi SetTransaction digunakan saat membuat penulisan idempotensi. Lihat Penulisan tabel idempotensi di foreachBatch untuk detailnya.

Jenis data: CalendarInterval

Default: (tidak ada)
delta.targetFileSize

Ukuran file target dalam byte atau unit yang lebih tinggi untuk penyetelan file. Contohnya,
104857600 (byte) atau 100mb.

Lihat Mengonfigurasi Delta Lake untuk mengontrol ukuran file data.

Jenis data: String

Default: (tidak ada)
delta.tuneFileSizesForRewrites

true untuk selalu menggunakan ukuran file yang lebih rendah untuk semua operasi pengoptimalan tata letak data pada tabel Delta.

false untuk tidak pernah menyetel ke ukuran file yang lebih rendah, yaitu, mencegah deteksi otomatis diaktifkan.

Lihat Mengonfigurasi Delta Lake untuk mengontrol ukuran file data.

Jenis data: Boolean

Default: (tidak ada)