Bagikan melalui


Penembolokan di pergudangan data Fabric

Berlaku untuk: Titik akhir analitik SQL dan Gudang di Microsoft Fabric

Mengambil data dari data lake adalah operasi input/output (IO) penting dengan implikasi besar untuk performa kueri. Di Microsoft Fabric, Synapse Data Warehouse menggunakan pola akses yang disempurnakan untuk meningkatkan pembacaan data dari penyimpanan dan meningkatkan kecepatan eksekusi kueri. Selain itu, ia dengan cerdas meminimalkan kebutuhan akan pembacaan penyimpanan jarak jauh dengan memanfaatkan cache lokal.

Penembolokan adalah teknik yang meningkatkan performa aplikasi pemrosesan data dengan mengurangi operasi IO. Penembolokan menyimpan data dan metadata yang sering diakses dalam lapisan penyimpanan yang lebih cepat, seperti memori lokal atau disk SSD lokal, sehingga permintaan berikutnya dapat dilayani dengan lebih cepat, langsung dari cache. Jika sekumpulan data tertentu sebelumnya telah diakses oleh kueri, kueri berikutnya akan mengambil data tersebut langsung dari cache dalam memori. Pendekatan ini secara signifikan mengurangi latensi IO, karena operasi memori lokal jauh lebih cepat dibandingkan dengan mengambil data dari penyimpanan jarak jauh.

Penembolokan sepenuhnya transparan kepada pengguna. Terlepas dari asalnya, apakah itu tabel gudang, pintasan OneLake, atau bahkan pintasan OneLake yang mereferensikan ke layanan non-Azure, kueri menyimpan semua data yang diaksesnya.

Ada dua jenis cache yang dijelaskan nanti dalam artikel ini:

  • Cache dalam memori
  • Tembolokan disk

Cache dalam memori

Saat kueri mengakses dan mengambil data dari penyimpanan, kueri melakukan proses transformasi yang mentranskode data dari format berbasis file aslinya ke dalam struktur yang sangat dioptimalkan dalam cache dalam memori.

Diagram yang menampilkan bagaimana cache dalam memori diisi.

Data dalam cache diatur dalam format kolom terkompresi yang dioptimalkan untuk kueri analitik. Setiap kolom data disimpan bersama-sama, terpisah dari yang lain, memungkinkan pemadatan yang lebih baik karena nilai data serupa disimpan bersama-sama, yang mengarah ke jejak memori yang berkurang. Saat kueri perlu melakukan operasi pada kolom tertentu seperti agregat atau pemfilteran, mesin dapat bekerja lebih efisien karena tidak perlu memproses data yang tidak perlu dari kolom lain.

Selain itu, penyimpanan kolumnar ini juga kondusif untuk pemrosesan paralel, yang dapat secara signifikan mempercepat eksekusi kueri untuk himpunan data besar. Mesin dapat melakukan operasi pada beberapa kolom secara bersamaan, memanfaatkan prosesor multi-core modern.

Pendekatan ini sangat bermanfaat untuk beban kerja analitik di mana kueri melibatkan pemindaian data dalam jumlah besar untuk melakukan agregasi, pemfilteran, dan manipulasi data lainnya.

Tembolokan disk

Himpunan data tertentu terlalu besar untuk diakomodasi dalam cache dalam memori. Untuk mempertahankan performa kueri yang cepat untuk himpunan data ini, Gudang menggunakan ruang disk sebagai ekstensi pelengkap ke cache dalam memori. Informasi apa pun yang dimuat ke dalam cache dalam memori juga diserialisasikan ke cache SSD.

Diagram yang menampilkan bagaimana cache dalam memori dan SSD diisi.

Mengingat bahwa cache dalam memori memiliki kapasitas yang lebih kecil dibandingkan dengan cache SSD, data yang dihapus dari cache dalam memori tetap berada dalam cache SSD untuk jangka waktu yang lama. Ketika kueri berikutnya meminta data ini, kueri diambil dari cache SSD ke dalam cache dalam memori pada tingkat yang jauh lebih cepat daripada jika diambil dari penyimpanan jarak jauh, pada akhirnya memberi Anda performa kueri yang lebih konsisten.

Diagram yang menampilkan bagaimana cache dalam memori diisi dari cache SSD.

Manajemen singgahan

Penembolokan tetap aktif secara konsisten dan beroperasi dengan mulus di latar belakang, tidak memerlukan intervensi pada bagian Anda. Menonaktifkan penembolokan tidak diperlukan, karena melakukannya pasti akan menyebabkan penurunan performa kueri yang nyata.

Mekanisme penembolokan diorkestrasi dan ditegakkan oleh Microsoft Fabric itu sendiri, dan tidak menawarkan kemampuan kepada pengguna untuk menghapus cache secara manual.

Konsistensi transaksional cache penuh memastikan bahwa setiap modifikasi pada data dalam penyimpanan, seperti melalui operasi Bahasa Manipulasi Data (DML), setelah awalnya dimuat ke dalam cache dalam memori, akan menghasilkan data yang konsisten.

Ketika cache mencapai ambang kapasitasnya dan data baru sedang dibaca untuk pertama kalinya, objek yang tetap tidak digunakan selama durasi terpanjang akan dihapus dari cache. Proses ini diberlakukan untuk menciptakan ruang untuk masuknya data baru dan mempertahankan strategi pemanfaatan cache yang optimal.