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.
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: BooleanStandar: 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) |
autoOptimize.optimizeWrite |
true untuk mengoptimalkan tata letak file secara otomatis untuk tabel ini selama penulisan.Lihat Penulisan Teroptimasi. Jenis data: BooleanDefault: (tidak ada) |
checkpoint.writeStatsAsJson |
true untuk menulis statistik file pada titik pemeriksaan dalam format JSON untuk stats kolom.Jenis data: BooleanStandar: 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: BooleanStandar: 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: StringStandar: 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: DeltaColumnMappingModeStandar: 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: BooleanStandar: false |
dataSkippingNumIndexedCols |
Jumlah kolom untuk mengumpulkan statistik mengenai penghindaran data. Nilai -1 berarti mengumpulkan statistik untuk semua kolom.Lihat Data Skipping. Jenis data: IntStandar: 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 lintas waktu. Jenis data: CalendarIntervalStandar: interval 1 week |
enableChangeDataFeed |
true untuk mengaktifkan perubahan umpan data.Lihat Menggunakan umpan data perubahan. Jenis data: BooleanStandar: false |
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 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: BooleanDefault: (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: BooleanStandar: false |
enableTypeWidening |
true untuk mengaktifkan perluasan tipe.Lihat Pelebaran tipe. Jenis data: BooleanStandar: 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: IntStandar: 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: StringStandar: 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: CalendarIntervalStandar: 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: IntStandar: 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: IntStandar: 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: StringStandar: 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: StringStandar: 1.0.0 |
randomizeFilePrefixes |
true untuk menghasilkan awalan acak untuk jalur file alih-alih informasi partisi.Jenis data: BooleanStandar: false |
randomPrefixLength |
Jumlah karakter yang dihasilkan untuk awalan acak ketika randomizeFilePrefixes adalah true.Jenis data: IntStandar: 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) |
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) |
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: BooleanDefault: (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: StringDefault: (tidak ada) |