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 otomatisdelta.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, SetTransaction s). 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) |