Referensi untuk properti tabel

Tabel Delta Lake dan Apache Iceberg menggunakan properti tabel untuk mengonfigurasi perilaku dan fitur, termasuk tata letak data, ukuran file, melompati data, tingkat isolasi, dan mengubah umpan data.

Note

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.

Mengubah properti tabel

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

Awalan properti Delta dan Iceberg

Tabel Delta Lake dan Apache Iceberg memiliki nama properti tabel yang sama, tetapi memerlukan awalan yang berbeda:

  • Tabel Delta Lake: Gunakan awalan delta.
  • Tabel gunung es: Gunakan awalan iceberg.

Misalnya, untuk mengaktifkan vektor penghapusan pada tabel:

Danau Delta

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

Iceberg

ALTER TABLE <table-name> SET TBLPROPERTIES ('iceberg.enableDeletionVectors' = true);

Properti dan SparkSession properti tabel

Setiap tabel memiliki properti tabelnya sendiri yang mengontrol perilakunya. Beberapa SparkSession konfigurasi selalu mengambil alih properti tabel. Misalnya, autoCompact.enabled dan optimizeWrite.enabled aktifkan pemadatan otomatis dan penulisan yang dioptimalkan pada tingkat tersebut SparkSession . Databricks merekomendasikan penggunaan konfigurasi yang berfokus pada tabel untuk sebagian besar beban kerja.

Anda dapat mengatur nilai default untuk tabel baru menggunakan SparkSession konfigurasi. Default ini hanya berlaku untuk tabel baru dan tidak memengaruhi properti tabel yang ada. SparkSession konfigurasi menggunakan awalan yang berbeda dari properti tabel, seperti yang diperlihatkan dalam tabel berikut:

Properti tabel konfigurasi SparkSession
delta.<conf>
iceberg.<conf>
spark.databricks.delta.properties.defaults.<conf>
spark.databricks.iceberg.properties.defaults.<conf>

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

Danau Delta

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

Iceberg

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

Pengaturan tabel

Sebagian besar properti tabel berikut tersedia untuk tabel Delta Lake dan Apache Iceberg, kecuali jika ditunjukkan. Gunakan awalan delta. untuk tabel Danau Delta dan iceberg. awalan untuk tabel Iceberg.

Harta benda Deskripsi
appendOnly true untuk membuat tabel tambahan saja. Tabel khusus tambahan tidak memperbolehkan penghapusan rekaman yang ada atau memperbarui nilai yang ada.
Jenis data: Boolean
Standar: false
autoOptimize.autoCompact Secara otomatis menggabungkan file kecil dalam partisi tabel untuk mengurangi masalah file kecil. Menerima (disarankan auto ), true, legacy, atau false.
Lihat Pemadatan otomatis.
Jenis data: String
Default: (tidak ada)
autoOptimize.optimizeWrite true untuk mengoptimalkan tata letak file secara otomatis untuk tabel ini selama penulisan.
Lihat Penulisan Teroptimasi.
Jenis data: Boolean
Default: (tidak ada)
checkpoint.writeStatsAsJson true untuk menulis statistik file pada titik pemeriksaan dalam format JSON untuk stats kolom.
Jenis data: Boolean
Standar: false
checkpoint.writeStatsAsStruct true untuk menulis statistik file ke titik pemeriksaan dalam format struct untuk kolom stats_parsed dan menulis nilai partisi sebagai struct untuk partitionValues_parsed.
Jenis data: Boolean
Standar: true
checkpointPolicy classic untuk titik pemeriksaan klasik. v2 untuk titik pemeriksaan v2.
Lihat Titik Pemeriksaan V2 dan Kompatibilitas untuk tabel dengan pengklusteran cairan.
Jenis data: String
Standar: classic
columnMapping.mode Mengaktifkan pemetaan kolom untuk kolom tabel dan kolom Parquet terkait yang menggunakan nama yang berbeda. Nilai yang valid adalah none, name, dan id.
Lihat mengganti nama dan menghapus kolom dengan menggunakan pemetaan kolom Delta Lake.
Catatan: Mengaktifkan columnMapping.mode secara otomatis mengaktifkan randomizeFilePrefixes.
Jenis data: DeltaColumnMappingMode
Standar: none
compatibility.symlinkFormatManifest.enabled (Hanya Delta Lake) true untuk mengonfigurasi tabel Delta Lake sehingga semua operasi tulis pada tabel secara otomatis memperbarui manifes.
Jenis data: Boolean
Standar: false
dataSkippingNumIndexedCols Jumlah kolom untuk mengumpulkan statistik mengenai penghindaran data. Nilai -1 berarti mengumpulkan statistik untuk semua kolom.
Lihat Data Skipping.
Jenis data: Int
Standar: 32
dataSkippingStatsColumns Daftar nama kolom yang dipisahkan koma untuk mengumpulkan statistik guna meningkatkan fungsionalitas melompati data. Properti ini lebih diutamakan daripada dataSkippingNumIndexedCols.
Lihat Data Skipping.
Jenis data: String
Default: (tidak ada)
deletedFileRetentionDuration Durasi terpendek untuk menyimpan file data yang dihapus secara logis sebelum menghapusnya secara fisik. Ini mencegah kegagalan pada pembaca usang setelah pemadatan atau penulisan ulang partisi.
Databricks merekomendasikan nilai default 7 hari atau lebih tinggi. Jika periode retensi Anda terlalu pendek, pekerjaan yang berlangsung lama mungkin akan memiliki file yang belum disetujui dihapus sebelum pekerjaan selesai.
Lihat Mengonfigurasi retensi data untuk kueri perjalanan lintas waktu.
Jenis data: CalendarInterval
Standar: interval 1 week
enableChangeDataFeed true untuk mengaktifkan perubahan umpan data.
Lihat Menggunakan umpan data perubahan.
Jenis data: Boolean
Standar: false
enableDeletionVectors true untuk mengaktifkan vektor penghapusan dan I/O prediktif untuk pembaruan.
Lihat Vektor penghapusan di Databricks dan Mengaktifkan vektor penghapusan.
Jenis data: Boolean
Default: Bergantung pada pengaturan admin ruang kerja dan versi Databricks Runtime. Lihat Mengaktifkan vektor penghapusan secara otomatis.
enableIcebergCompatV2 (Hanya Delta Lake) true untuk mengaktifkan IcebergCompatV2, yang menulis data dalam format yang kompatibel dengan pembaca Iceberg. Untuk mengaktifkan pembacaan Iceberg, atur properti ini bersama dengan universalFormat.enabledFormats.
Lihat Membaca tabel Delta Lake dengan klien Iceberg.
Jenis data: Boolean
Default: (tidak ada)
enableRowTracking (Hanya Delta Lake) true untuk mengaktifkan pelacakan baris, yang menetapkan ID baris stabil dan versi commit baris ke setiap baris untuk garis keturunan tingkat baris. Tersedia dalam Databricks Runtime 14.0 dan ke atas. Tabel Apache Iceberg v3 menyertakan pelacakan baris secara otomatis.
Lihat Pelacakan baris di Azure Databricks.
Jenis data: Boolean
Standar: false
enableTypeWidening true untuk mengaktifkan perluasan tipe.
Lihat Pelebaran tipe.
Jenis data: Boolean
Standar: false
format-version (Hanya tabel terkelola Apache Iceberg) Versi format tabel Iceberg.
Databricks merekomendasikan untuk tidak mengonfigurasi properti ini secara manual.
Lihat Menggunakan fitur Apache Iceberg v3.
Jenis data: Int
Standar: 2
isolationLevel Tingkat isolasi transaksi dari modifikasi yang dilakukan oleh transaksi bersamaan.
Nilai yang berlaku adalah Serializable atau WriteSerializable.
Lihat Tingkat isolasi (WriteSerializable dan Serializable).
Jenis data: String
Standar: WriteSerializable
logRetentionDuration Berapa lama riwayat tabel harus disimpan. VACUUM operasi menggantikan ambang retensi ini.
Databricks secara otomatis membersihkan entri log yang lebih lama dari interval retensi setiap kali titik pemeriksaan ditulis. Mengatur properti ini ke nilai yang besar akan mempertahankan banyak catatan log. Ini tidak memengaruhi performa karena operasi terhadap log adalah waktu konstan. Operasi pada riwayat bersifat paralel tetapi menjadi lebih mahal saat ukuran log meningkat.
Lihat Mengonfigurasi retensi data untuk kueri perjalanan lintas waktu.
Jenis data: CalendarInterval
Standar: interval 30 days
minReaderVersion (Hanya Delta Lake) Versi pembaca protokol minimum yang diperlukan untuk dibaca dari tabel ini.
Databricks merekomendasikan untuk tidak mengonfigurasi properti ini secara manual.
Lihat Kompatibilitas dan protokol fitur Delta Lake.
Jenis data: Int
Standar: 1
minWriterVersion (Hanya Delta Lake) Versi penulis protokol minimum yang diperlukan untuk menulis ke tabel ini.
Databricks merekomendasikan untuk tidak mengonfigurasi properti ini secara manual.
Lihat Kompatibilitas dan protokol fitur Delta Lake.
Jenis data: Int
Standar: 2
parquet.compression.codec Codec kompresi data untuk tabel.
Nilai yang valid: ZSTD, , SNAPPYGZIP, LZ4, BROTLI (dukungan bervariasi menurut format)
Tersedia di Databricks Runtime 16.0 dan ke atas, pengaturan properti ini menerapkan codec yang dipilih ke semua penulisan di tabel di masa depan, menggantikan default cluster atau sesi (spark.sql.parquet.compression.codec). Anda dapat menimpa properti tabel ini dengan DataFrame .write.option("compression", "..."). Mengatur properti tidak menulis ulang file yang sudah ada. Untuk mengompresi ulang data yang ada dengan codec pilihan Anda, gunakan OPTIMIZE table_name FULL. Untuk tabel Delta Lake yang dikelola oleh Unity Catalog, Databricks menulis parquet.compression.codec secara eksplisit (ZSTD) saat membuat tabel, sehingga default Delta spark.databricks.delta.properties.defaults.parquet.compression.codec terpisah tidak berpengaruh. Untuk tabel Delta Lake eksternal baru, gunakan spark.databricks.delta.properties.defaults.parquet.compression.codec.
Jenis data: String
Standar: ZSTD
parquet.format.version (Hanya Delta Lake) Versi format Parquet yang digunakan saat menulis file data. Mengatur ini untuk 2.12.0 mengaktifkan pengodean tingkat lanjut, header halaman data v2, dan INT64 tanda waktu, yang dapat meningkatkan performa kueri dan mengurangi jejak penyimpanan.
Nilai yang valid adalah 1.0.0 dan 2.12.0, yang sesuai dengan rilis dari format Apache Parquet.
Properti ini dapat diatur di tabel Delta Lake dan Apache Iceberg. Beberapa pembaca OSS Iceberg mungkin tidak mendukung pengodean Parquet v2. Lihat Batasan.
Lihat Parquet v2.
Jenis data: String
Standar: 1.0.0
randomizeFilePrefixes true untuk menghasilkan awalan acak untuk jalur file alih-alih informasi partisi.
Jenis data: Boolean
Standar: false
randomPrefixLength Jumlah karakter yang dihasilkan untuk awalan acak ketika randomizeFilePrefixes adalah true.
Jenis data: Int
Standar: 2
setTransactionRetentionDuration Durasi terpendek di mana rekam jepret baru mempertahankan pengidentifikasi transaksi (misalnya, SetTransactions). Cuplikan baru berakhir dan mengabaikan pengidentifikasi transaksi yang lebih lama dari atau sama dengan durasi yang ditetapkan oleh properti ini. Pengidentifikasi SetTransaction digunakan untuk memastikan penulisan data idempoten. Lihat Menggunakan foreachBatch untuk penulisan tabel idempotensi untuk detailnya.
Jenis data: CalendarInterval
Default: (tidak ada)
targetFileSize Ukuran file target dalam byte atau unit yang lebih tinggi untuk penyetelan file. Misalnya, 104857600 (byte) atau 100mb.
Lihat Mengontrol ukuran file data.
Jenis data: String
Default: (tidak ada)
tuneFileSizesForRewrites (Hanya Delta Lake) true untuk mengatur ukuran file sehingga operasi yang menulis ulang file, seperti MERGE, berjalan lebih cepat. Ini berguna untuk tabel yang sering menulis ulang file. false untuk mematikan penyetelan ini.
Saat tidak disetel, Databricks secara otomatis mendeteksi apakah tabel tersebut berat dengan penulisan ulang dan menyesuaikan ukuran file untuk operasi penulisan ulang seperti MERGE dan OPTIMIZE sesuai.
Lihat Mengontrol ukuran file data.
Jenis data: Boolean
Default: (tidak ada)
universalFormat.enabledFormats (Hanya Delta Lake) Daftar format yang dipisahkan koma untuk menghasilkan metadata, sehingga klien eksternal dapat membaca tabel Delta Lake (UniForm). Atur ke untuk iceberg menghasilkan metadata Iceberg. Pengaturan iceberg membutuhkan enableIcebergCompatV2 = true.
Lihat Membaca tabel Delta Lake dengan klien Iceberg.
Jenis data: String
Default: (tidak ada)