Akselerasi kueri Azure Data Lake Storage
Akselerasi kueri memungkinkan aplikasi dan kerangka kerja analitik mengoptimalkan pemrosesan data secara dramatis dengan mengambil data yang diperlukan untuk melakukan operasi tertentu saja. Ini mengurangi waktu dan daya pemrosesan yang diperlukan untuk mendapatkan wawasan penting ke dalam data yang disimpan.
Gambaran Umum
Akselerasi kueri menerima predikat pemfilteran dan proyeksi kolom, yang memungkinkan aplikasi memfilter baris dan kolom pada saat data dibaca dari disk. Data yang memenuhi ketentuan predikat saja yang ditransfer melalui jaringan ke aplikasi. Ini mengurangi latensi jaringan dan biaya komputasi.
Anda dapat menggunakan SQL untuk menentukan predikat filter baris dan proyeksi kolom dalam permintaan akselerasi kueri. Permintaan hanya memproses satu file. Oleh karena itu, fitur relasional lanjutan SQL, seperti menggabungkan dan mengelompokkan menurut agregat, tidak didukung. Akselerasi kueri mendukung data berformat CSV dan JSON sebagai input untuk setiap permintaan.
Fitur akselerasi kueri tidak terbatas pada Data Lake Storage (akun penyimpanan yang memiliki namespace hierarki aktif). Akselerasi kueri kompatibel dengan blob di akun penyimpanan yang tidak memiliki namespace hierarkis yang diaktifkan di dalamnya. Ini berarti Anda dapat menjangkau penurunan yang sama dalam latensi jaringan dan biaya komputasi saat memproses data yang sudah disimpan sebagai blob dalam akun penyimpanan.
Untuk contoh cara menggunakan akselerasi kueri di aplikasi klien, lihat Memfilter data menggunakan akselerasi kueri Azure Data Lake Storage.
Aliran data
Diagram berikut mengilustrasikan cara aplikasi umum menggunakan akselerasi kueri untuk memproses data.
Aplikasi klien meminta data file dengan menentukan predikat dan proyeksi kolom.
Akselerasi kueri menguraikan kueri SQL yang ditentukan dan mendistribusikan pekerjaan untuk memilah dan memfilter data.
Prosesor membaca data dari disk, memilah data dengan format yang sesuai, lalu memfilter data dengan menerapkan predikat dan proyeksi kolom yang ditentukan.
Akselerasi kueri menggabungkan pecahan respons untuk dialirkan kembali ke aplikasi klien.
Aplikasi klien menerima dan memilah respons yang dialirkan. Aplikasi tidak perlu memfilter data lain dan dapat menerapkan perhitungan atau transformasi yang diinginkan secara langsung.
Performa lebih baik dengan biaya yang lebih rendah
Akselerasi kueri mengoptimalkan performa dengan mengurangi jumlah data yang ditransfer dan diproses oleh aplikasi Anda.
Untuk menghitung nilai agregat, aplikasi biasanya mengambil semua data dari file, lalu memproses dan memfilter data secara lokal. Analisis pola input/output untuk beban kerja analitik mengungkapkan bahwa aplikasi biasanya hanya memerlukan 20% data yang mereka baca untuk melakukan perhitungan tertentu. Statistik ini berlaku bahkan setelah menerapkan teknik seperti pemangkasan partisi. Ini berarti bahwa 80% dari data tersebut tidak perlu ditransfer ke seluruh jaringan, dipilah, dan difilter oleh aplikasi. Pola ini, dirancang untuk menghapus data yang tidak diperlukan, menimbulkan biaya komputasi yang signifikan.
Meskipun fitur Azure memiliki jaringan terdepan di industri, dalam hal throughput dan latensi, transfer data yang tidak diperlukan di seluruh jaringan tersebut masih mahal untuk performa aplikasi. Dengan memfilter data yang tidak diinginkan selama permintaan penyimpanan, akselerasi kueri memangkas biaya ini.
Selain itu, beban CPU yang diperlukan untuk memilah dan memfilter data yang tidak diperlukan mewajibkan aplikasi Anda untuk memprovisikan jumlah dan ukuran VM yang lebih besar untuk melakukan pekerjaannya. Dengan mentransfer beban komputasi ini ke akselerasi kueri, aplikasi dapat mewujudkan penghematan biaya yang signifikan.
Aplikasi dapat memperoleh keuntungan dari akselerasi kueri
Akselerasi kueri dirancang untuk kerangka kerja analitik terdistribusi dan aplikasi pemrosesan data.
Kerangka kerja analitik terdistribusi seperti Apache Spark dan Apache Hive, meliputi lapisan abstraksi penyimpanan dalam kerangka kerja. Mesin ini juga meliputi pengoptimal kueri yang dapat menggabungkan pengetahuan tentang kemampuan layanan I/O yang mendasarinya saat menentukan rencana kueri yang optimal untuk kueri pengguna. Kerangka kerja ini mulai mengintegrasikan akselerasi kueri. Akibatnya, pengguna kerangka kerja ini melihat latensi kueri yang ditingkatkan dan total biaya kepemilikan yang lebih rendah tanpa harus membuat perubahan apa pun pada kueri.
Akselerasi kueri juga dirancang untuk aplikasi pemrosesan data. Jenis aplikasi ini biasanya melakukan transformasi data skala besar yang mungkin tidak secara langsung mengarah ke wawasan analitik sehingga tidak selalu menggunakan kerangka kerja analitik terdistribusi yang dibuat. Aplikasi ini sering memiliki hubungan yang lebih langsung dengan layanan penyimpanan yang mendasarinya sehingga dapat memperoleh keuntungan langsung dari fitur seperti akselerasi kueri.
Untuk contoh cara integrasi aplikasi terhadap akselerasi kueri, lihat Memfilter data menggunakan akselerasi kueri Azure Data Lake Storage.
Harga
Karena peningkatan beban komputasi dalam layanan Azure Data Lake Storage, model harga untuk penggunaan akselerasi kueri berbeda dari model transaksi Azure Data Lake Storage normal. Akselerasi kueri membebankan biaya untuk sejumlah data yang dipindai serta biaya untuk sejumlah data yang dikembalikan ke pemanggil. Untuk informasi selengkapnya, lihat Harga Azure Data Lake Storage Gen2.
Meskipun ada perubahan pada model tagihan, model harga akselerasi Kueri dirancang untuk menurunkan total biaya kepemilikan untuk beban kerja, mengingat pengurangan biaya VM yang jauh lebih mahal.