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.
Membaca data dari penyimpanan objek cloud lebih lambat dibandingkan membaca dari disk lokal. Tanpa caching, kueri dan notebook yang membaca file data Parquet yang sama akan mengambilnya dari penyimpanan objek cloud setiap kali diakses.
Azure Databricks menggunakan caching disk untuk mempercepat pembacaan data. Ketika sebuah node mengambil file data Parquet dari penyimpanan jarak jauh, ia secara otomatis menyimpan salinannya di penyimpanan lokalnya dalam format perantara yang cepat. Pembacaan berikutnya atas data yang sama dijalankan secara lokal dan jauh lebih cepat. Cache berfungsi untuk semua file data Parquet, termasuk tabel Delta Lake.
Catatan
Di gudang SQL dan Databricks Runtime 14.2 ke atas, perintah CACHE SELECT diabaikan. Algoritma cache disk yang ditingkatkan digunakan sebagai gantinya.
Praktik terbaik
Cache disk paling membantu dengan beban kerja yang membaca data yang sama berkali-kali, seperti kueri berulang atau iteratif pada tabel yang sama. Azure Databricks mengaktifkannya secara otomatis pada tipe instance pekerja yang mendukungnya. Untuk membantu cache disk mempercepat pembacaan, ikuti praktik berikut:
- Pilih tipe instance pekerja yang mendukung cache disk. Lihat Menyeleksi jenis instans untuk penyimpanan sementara disk.
- Gunakan cache disk sebagai pengganti cache Apache Spark untuk pembacaan berulang data Parquet dan Delta Lake. Lihat Bandingkan cache disk dan cache Spark.
cache Delta diubah namanya menjadi cache disk
Cache disk di Azure Databricks sebelumnya disebut sebagai cache Delta dan cache DBIO. Perilaku penembolokan disk adalah fitur Azure Databricks hak milik. Perubahan nama ini berusaha menyelesaikan kebingungan bahwa hal ini merupakan bagian dari protokol Delta Lake.
Bandingkan cache disk dan cache Spark
cache disk pada Azure Databricks berbeda dari penembolokan Apache Spark. Databricks merekomendasikan penggunaan cache disk otomatis.
Tabel berikut ini meringkas perbedaan utama antara disk dan penembolokan Apache Spark sehingga Anda dapat memilih alat terbaik untuk alur kerja Anda:
| Fitur | tembolok disk | cache Apache Spark |
|---|---|---|
| Disimpan sebagai | File lokal pada simpul pekerja. | Blok dalam memori, tetapi itu tergantung pada tingkat penyimpanan. |
| Diterapkan pada | Setiap tabel Parquet yang disimpan di ABFS dan sistem file lainnya. | Setiap DataFrame atau RDD. |
| Dipicu | Secara otomatis, pada pembacaan pertama (jika cache diaktifkan). | Secara manual, hal ini memerlukan perubahan kode. |
| Dievaluasi | Dengan malas-malasan. | Dengan malas-malasan. |
| Ketersediaan | Diaktifkan secara bawaan pada tipe node tertentu. Anda mengaktifkan atau menonaktifkannya dengan flag konfigurasi. | Selalu tersedia. |
| Diusir | Secara otomatis dalam mode LRU atau setiap kali file berubah, secara manual saat memulai ulang kluster. | Secara otomatis dalam mode LRU, secara manual dengan unpersist. |
Pada komputasi serverless, df.cache() bekerja berbeda dari cache Apache Spark dalam tabel ini. Lihat Cache DataFrames pada komputasi serverless.
Konsistensi cache disk
Cache disk secara otomatis mendeteksi kapan file data dibuat, dihapus, dimodifikasi, atau ditimpa dan memperbarui kontennya. Anda dapat menulis, memodifikasi, dan menghapus data tabel tanpa perlu menginvalkan data cache secara eksplisit. Setiap entri yang usang secara otomatis dinyatakan tidak valid dan dibuang dari cache.
Memilih jenis instans untuk menggunakan penembolokan disk
Cara yang direkomendasikan (dan paling mudah) untuk menggunakan penembolokan disk adalah dengan memilih jenis pekerja dengan volume SSD saat Anda mengonfigurasi kluster Anda. Worker tersebut diaktifkan dan dikonfigurasi untuk cache disk.
Cache disk dikonfigurasi untuk menggunakan paling banyak setengah ruang yang tersedia pada SSD lokal yang disertakan dengan node pekerja. Untuk opsi konfigurasi, lihat Mengonfigurasi cache disk.
Mengonfigurasi cache disk
Databricks merekomendasikan agar Anda memilih tipe instance worker cache-accelerated untuk komputasi Anda. Instans tersebut secara otomatis dikonfigurasi secara optimal untuk cache disk.
Catatan
Ketika pekerja dikeluarkan dari layanan, cache Spark yang disimpan pada pekerja tersebut hilang. Jadi, jika penskalaan otomatis diaktifkan, ada beberapa ketidakstabilan dengan cache. Spark kemudian perlu membaca ulang partisi yang hilang dari sumber sesuai kebutuhan.
Konfigurasikan penggunaan disk
Untuk mengonfigurasi bagaimana cache disk menggunakan penyimpanan lokal node pekerja, tentukan pengaturan konfigurasi Spark berikut saat pembuatan klaster:
-
spark.databricks.io.cache.maxDiskUsage: ruang disk per simpul yang dicadangkan untuk data yang di-cache dalam byte -
spark.databricks.io.cache.maxMetaDataCache: ruang disk per simpul yang dicadangkan untuk metadata yang di-cache dalam byte -
spark.databricks.io.cache.compression.enabled: apakah data cache harus disimpan dalam format terkompresi
Konfigurasi contoh:
spark.databricks.io.cache.maxDiskUsage 50g
spark.databricks.io.cache.maxMetaDataCache 1g
spark.databricks.io.cache.compression.enabled false
Mengaktifkan atau menonaktifkan cache disk
Untuk melihat pengaturan cache disk saat ini, jalankan:
spark.conf.get("spark.databricks.io.cache.enabled")
Untuk mengaktifkan dan menonaktifkan cache disk, jalankan:
spark.conf.set("spark.databricks.io.cache.enabled", "[true | false]")
Menonaktifkan cache tidak mengakibatkan hilangnya data yang sudah ada di penyimpanan lokal. Sebaliknya, ini mencegah kueri menambahkan data baru ke cache dan membaca data dari cache.