Bagikan melalui


Referensi properti tabel Delta

Delta Lake menyimpan properti tabel Delta yang diawali dengan delta.. Properti-properti tersebut mungkin memiliki makna tertentu dan dapat memengaruhi perilaku ketika properti tersebut disetel.

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 pada tabel Delta ditetapkan untuk setiap 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 konfigurasi spark.databricks.delta.autoCompact.enabled dan spark.databricks.delta.optimizeWrite.enabled, yang mengaktifkan pemadatan otomatis dan pengoptimalan penulisan pada tingkat SparkSession, bukan pada tingkat tabel. Databricks merekomendasikan penggunaan konfigurasi yang berfokus pada 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 konferensi 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 tabel yang ada, gunakan SET TBLPROPERTIES.

Properti tabel Delta

Properti tabel Delta yang tersedia meliputi yang berikut ini:

Properti
delta.appendOnly
true agar tabel Delta ini hanya dapat ditambahkan. Jika tambahkan-saja, rekaman yang ada tidak dapat dihapus, dan nilai yang ada tidak dapat diperbarui.
Lihat referensi properti tabel Delta .
Jenis data: Boolean
Bawaan: false
delta.autoOptimize.autoCompact
auto untuk Delta Lake agar secara otomatis mengoptimalkan tata letak file pada tabel Delta ini.
Lihat Pemadatan otomatis untuk Delta Lake di Azure Databricks.
Jenis data: Boolean
Default: (tidak ada)
delta.autoOptimize.optimizeWrite
true untuk Delta Lake untuk mengoptimalkan tata letak file secara otomatis pada tabel Delta ini saat penulisan data.
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 dalam format JSON pada titik pemeriksaan untuk kolom stats.
Lihat Mengelola statistik tingkat kolom pada titik pemeriksaan.
Jenis data: Boolean
Bawaan: true
delta.checkpoint.writeStatsAsStruct
true agar Delta Lake menuliskan statistik berkas ke titik pemeriksaan dalam format struktur untuk kolom stats_parsed dan menuliskan nilai partisi sebagai struktur untuk partitionValues_parsed.
Lihat Mengelola statistik tingkat kolom pada titik pemeriksaan.
Jenis data: Boolean
Default: (tidak ada)
delta.checkpointPolicy
classic untuk titik pemeriksaan Delta Lake yang klasik. v2 untuk titik pemeriksaan v2.
Lihat Kompatibilitas untuk tabel dengan pengklusteran cair.
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 Ganti Nama dan hapus 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 yang akan digunakan Delta Lake untuk mengumpulkan statistik terkait pengabaian data. Nilai -1 berarti mengumpulkan statistik untuk semua kolom.
Lihat Melewatkan data untuk Delta Lake.
Jenis data: Int
Default: 32
delta.dataSkippingStatsColumns
Daftar nama kolom yang dipisahkan dengan koma di mana Delta Lake mengumpulkan statistik untuk meningkatkan fungsionalitas dalam melewati 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. Ini dilakukan untuk mencegah kegagalan pada pembaca yang tidak aktif setelah pemampatan atau penimpaan partisi.
Nilai ini harus cukup besar untuk memastikan bahwa:
  • Ini lebih lama daripada durasi terpanjang yang mungkin dari suatu pekerjaan jika Anda menjalankan VACUUM ketika ada pembaca atau penulis yang mengakses tabel Delta secara bersamaan.
  • 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 perubahan umpan data.
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 isolasi transaksi dari modifikasi yang dilakukan oleh transaksi bersamaan.
Nilai yang valid adalah Serializable dan WriteSerializable.
Lihat Tingkat isolasi dan tulis konflik di Azure Databricks.
Jenis data: String
Default: WriteSerializable
delta.logRetentionDuration
Berapa lama riwayat tabel Delta disimpan. VACUUM operasi menggantikan 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 riwayat bersifat paralel tetapi akan memerlukan lebih banyak sumber daya seiring 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
Bawaan: 1
delta.minWriterVersion
Versi penulis protokol minimum yang dibutuhkan untuk dapat 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 untuk Delta Lake menghasilkan awalan acak untuk jalur file, bukan informasi partisi.
Jenis data: Boolean
Default: false
delta.randomPrefixLength
Saat delta.randomizeFilePrefixes diatur ke true, jumlah karakter yang Delta Lake hasilkan 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 untuk membuat penulisan menjadi idempoten. Lihat penulisan tabel Idempotent 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 menghindari penyetelan ke ukuran file yang lebih rendah, yaitu mencegah agar deteksi otomatis tidak diaktifkan.
Lihat Mengonfigurasi Delta Lake untuk mengontrol ukuran file data.
Jenis data: Boolean
Default: (tidak ada)