Bagikan melalui


Pembuatan Cache Kueri

Penembolokan adalah teknik penting untuk meningkatkan performa sistem gudang data dengan menghindari kebutuhan untuk mengolah ulang atau mengambil data yang sama beberapa kali. Di Databricks SQL, penembolokan dapat mempercepat eksekusi kueri secara signifikan dan meminimalkan penggunaan gudang, menghasilkan biaya yang lebih rendah dan pemanfaatan sumber daya yang lebih efisien. Setiap lapisan penembolokan meningkatkan performa kueri, meminimalkan penggunaan kluster, dan mengoptimalkan pemanfaatan sumber daya untuk pengalaman gudang data yang mulus.

Penembolokan memberikan banyak keuntungan dalam gudang data, termasuk:

  • Kecepatan: Dengan menyimpan hasil kueri atau data yang sering diakses dalam memori atau media penyimpanan cepat lainnya, penembolokan dapat secara dramatis mengurangi waktu eksekusi kueri. Penyimpanan ini sangat bermanfaat untuk kueri berulang, karena sistem dapat dengan cepat mengambil hasil cache alih-alih merekomputasinya.
  • Mengurangi penggunaan kluster: Penembolokan meminimalkan kebutuhan akan sumber daya komputasi tambahan dengan menggunakan kembali hasil komputasi sebelumnya. Ini mengurangi waktu aktif gudang secara keseluruhan dan permintaan untuk kluster komputasi tambahan, yang menyebabkan penghematan biaya dan alokasi sumber daya yang lebih baik.

Jenis cache kueri di Databricks SQL

Databricks SQL melakukan beberapa jenis penembolokan kueri.

cache kueri

  • Cache UI Databricks SQL: Per penembolokan pengguna dari semua kueri dan dasbor menghasilkan UI Databricks SQL. Saat pengguna pertama kali membuka dasbor atau kueri SQL, cache UI Databricks SQL menampilkan hasil kueri terbaru, termasuk hasil dari eksekusi terjadwal.

    Cache UI Databricks SQL memiliki paling banyak siklus hidup 7 hari. Cache terletak di dalam sistem file Azure Databricks Anda di akun Anda. Anda dapat menghapus hasil kueri dengan menjalankan kembali kueri yang tidak lagi ingin Anda simpan. Setelah dijalankan kembali, hasil kueri lama dihapus dari cache. Selain itu, cache tidak valid setelah tabel yang mendasar diperbarui.

  • Cache hasil: Per penembolokan kluster hasil kueri untuk semua kueri melalui gudang SQL. Penembolokan hasil mencakup cache hasil lokal dan jarak jauh, yang bekerja sama untuk meningkatkan performa kueri dengan menyimpan hasil kueri dalam memori atau media penyimpanan jarak jauh.

    • Cache lokal: Cache lokal adalah cache dalam memori yang menyimpan hasil kueri untuk masa pakai kluster atau sampai cache penuh, mana pun yang lebih dulu. Cache ini berguna untuk mempercepat kueri berulang, menghilangkan kebutuhan untuk mengolah ulang hasil yang sama. Namun, setelah kluster dihentikan atau dimulai ulang, cache dibersihkan dan semua hasil kueri dihapus.
    • Cache hasil jarak jauh: Cache hasil jarak jauh adalah sistem cache khusus tanpa server yang mempertahankan hasil kueri dengan mempertahankannya sebagai data sistem ruang kerja. Akibatnya, cache ini tidak dibatalkan oleh penghentian atau mulai ulang gudang SQL. Cache hasil jarak jauh mengatasi titik nyeri umum dalam penembolokan kueri menghasilkan dalam memori, yang hanya tetap tersedia selama sumber daya komputasi berjalan. Cache jarak jauh adalah cache bersama persisten di semua gudang di ruang kerja Databricks.

    Mengakses cache hasil jarak jauh memerlukan gudang yang sedang berjalan. Saat memproses kueri, kluster pertama-tama terlihat di cache lokalnya dan kemudian melihat cache hasil jarak jauh jika perlu. Hanya jika hasil kueri tidak di-cache di salah satu cache, kueri dieksekusi. Cache lokal dan jarak jauh memiliki siklus hidup 24 jam, yang dimulai pada entri cache. Cache hasil jarak jauh bertahan melalui penghentian atau memulai ulang gudang SQL. Kedua cache tidak valid ketika tabel yang mendasar diperbarui.

    Cache hasil jarak jauh tersedia untuk kueri menggunakan klien ODBC / JDBC dan API Pernyataan SQL.

    Untuk menonaktifkan caching hasil kueri, Anda dapat menjalankan SET use_cached_result = false di editor SQL.

    Penting

    Anda harus menggunakan opsi ini hanya dalam pengujian atau pembandingan.

  • Cache disk: Penembolokan SSD lokal untuk data yang dibaca dari penyimpanan data untuk kueri melalui gudang SQL. Cache disk dirancang untuk meningkatkan performa kueri dengan menyimpan data pada disk, memungkinkan pembacaan data yang dipercepat. Data secara otomatis di-cache ketika file diambil, menggunakan format perantara yang cepat. Dengan menyimpan salinan file pada penyimpanan lokal yang dilampirkan ke simpul komputasi, cache disk memastikan data terletak lebih dekat dengan pekerja, menghasilkan peningkatan performa kueri. Lihat Mengoptimalkan kinerja dengan cache pada Azure Databricks.

Selain fungsi utamanya, cache disk secara otomatis mendeteksi perubahan pada file data yang mendasar. Ketika mendeteksi perubahan, cache tidak valid. Cache disk berbagi karakteristik siklus hidup yang sama dengan cache hasil lokal. Ini berarti bahwa ketika kluster dihentikan atau dimulai ulang, cache dibersihkan dan perlu diisi ulang.

Penembolokan hasil kueri dan tembolokan disk memengaruhi kueri di UI SQL Databricks dan BI serta klien eksternal lainnya.