Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Delta Lake dan Apache Iceberg menggunakan properti tabel untuk mengontrol perilaku dan fitur tabel. Properti ini mungkin memiliki arti khusus dan memengaruhi perilaku ketika ditetapkan.
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.
Mengubah properti tabel
Untuk mengubah properti tabel tabel yang ada, gunakan SET TBLPROPERTIES.
Format Delta dan Iceberg
Tabel Delta Lake dan Apache Iceberg memiliki nama properti tabel yang sama, tetapi memerlukan awalan yang berbeda:
-
Tabel delta: Gunakan awalan
delta. -
Tabel gunung es: Gunakan awalan
iceberg.
Contohnya:
- Untuk mengaktifkan vektor penghapusan pada tabel Delta:
delta.enableDeletionVectors - Untuk mengaktifkan vektor penghapusan pada tabel Iceberg:
iceberg.enableDeletionVectors
Properti tabel dan properti SparkSession
Setiap tabel memiliki properti tabelnya sendiri yang mengontrol perilakunya. Beberapa konfigurasi SparkSession selalu mengambil alih properti tabel. Misalnya, autoCompact.enabled dan optimizeWrite.enabled aktifkan pemadatan otomatis dan penulisan yang dioptimalkan di tingkat SparkSession. Databricks merekomendasikan penggunaan konfigurasi yang berfokus pada tabel untuk sebagian besar beban kerja.
Anda dapat mengatur nilai default untuk tabel baru menggunakan konfigurasi SparkSession. Default ini hanya berlaku untuk tabel baru dan tidak memengaruhi properti tabel yang ada. Konfigurasi SparkSession 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:
-- For Delta tables
SET spark.databricks.delta.properties.defaults.appendOnly = true
-- For Iceberg tables
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 Delta dan iceberg. awalan untuk tabel Iceberg.
| Properti | Description |
|---|---|
autoOptimize.optimizeWrite |
true untuk mengoptimalkan tata letak file secara otomatis untuk tabel ini selama penulisan.Lihat Penulisan Teroptimasi. Jenis data: BooleanDefault: (tidak ada) |
dataSkippingNumIndexedCols |
Jumlah kolom untuk mengumpulkan statistik mengenai penghindaran data. Nilai -1 berarti mengumpulkan statistik untuk semua kolom.Lihat Data Skipping. Jenis data: IntBawaan: 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: StringDefault: (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 waktu. Jenis data: CalendarIntervalBawaan: interval 1 week |
enableDeletionVectors |
true untuk mengaktifkan vektor penghapusan dan I/O prediktif untuk pembaruan.Lihat Vektor penghapusan di Databricks dan Mengaktifkan vektor penghapusan. Jenis data: BooleanDefault: Bergantung pada pengaturan admin ruang kerja dan versi Databricks Runtime. Lihat Otomatis mengaktifkan vektor penghapusan. |
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 waktu. Jenis data: CalendarIntervalBawaan: 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: IntBawaan: 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: IntBawaan: 2 |
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: IntBawaan: 2 |
randomizeFilePrefixes |
true untuk menghasilkan awalan acak untuk jalur file alih-alih informasi partisi.Jenis data: BooleanBawaan: false |
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: StringDefault: (tidak ada) |
parquet.compression.codec |
Codec kompresi data untuk tabel. Nilai yang valid: ZSTD, , SNAPPYGZIP, LZ4, BROTLI (dukungan bervariasi menurut format)Properti ini memastikan bahwa semua penulisan di masa mendatang ke tabel menggunakan codec yang dipilih, menggantikan pengaturan bawaan kluster atau sesi ( spark.sql.parquet.compression.codec). Namun, pengaturan DataFrame .write.option("compression", "...") satu kali masih diutamakan. Tersedia di Databricks Runtime 16.0 dan yang lebih baru. Perhatikan bahwa file yang ada tidak ditulis ulang secara otomatis. Untuk mengkompresi ulang data yang ada dengan format yang Anda pilih, gunakan OPTIMIZE table_name FULL.Jenis data: StringBawaan: ZSTD |
parquet.format.version (Hanya Delta Lake) |
Versi format Parquet yang digunakan saat menulis file data. Menentukan 2.12.0 hasil dalam Databricks Runtime menggunakan pengodean Parquet dan header halaman data yang lebih canggih.Nilai yang valid adalah 1.0.0 dan 2.12.0, yang sesuai dengan rilis dari format Apache Parquet.Properti ini hanya untuk tabel Delta. Jangan atur properti ini untuk Iceberg, tabel UniForm, atau tabel yang diakses oleh mesin Runtime non-Databricks. Jenis data: StringBawaan: 1.0.0 |
appendOnly |
true untuk membuat tabel tambahan saja. Tabel khusus tambahan tidak memperbolehkan penghapusan rekaman yang ada atau memperbarui nilai yang ada.Jenis data: BooleanBawaan: 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: StringDefault: (tidak ada) |
checkpoint.writeStatsAsJson |
true untuk menulis statistik file pada titik pemeriksaan dalam format JSON untuk stats kolom.Jenis data: BooleanBawaan: 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: BooleanBawaan: 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: StringBawaan: 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 Ganti Nama dan hapus kolom dengan pemetaan kolom Delta Lake. Catatan: Mengaktifkan columnMapping.mode secara otomatis mengaktifkan randomizeFilePrefixes.Jenis data: DeltaColumnMappingModeBawaan: none |
compatibility.symlinkFormatManifest.enabled (Hanya Delta Lake) |
true untuk mengonfigurasi tabel Delta sehingga semua operasi tulis pada tabel secara otomatis memperbarui manifes.Jenis data: BooleanBawaan: false |
enableChangeDataFeed |
true untuk mengaktifkan perubahan umpan data.Lihat Mengaktifkan umpan data perubahan. Jenis data: BooleanBawaan: false |
enableTypeWidening |
true untuk mengaktifkan perluasan tipe.Lihat Pelebaran tipe. Jenis data: BooleanBawaan: false |
isolationLevel |
Tingkat isolasi transaksi dari modifikasi yang dilakukan oleh transaksi bersamaan. Nilai yang valid adalah Serializable dan WriteSerializable.Lihat Tingkat isolasi (WriteSerializable dan Serializable). Jenis data: StringBawaan: WriteSerializable |
randomPrefixLength |
Jumlah karakter yang dihasilkan untuk awalan acak ketika randomizeFilePrefixes adalah true.Jenis data: IntBawaan: 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: CalendarIntervalDefault: (tidak ada) |