Bagikan melalui


Mengoptimalkan untuk konkurensi tinggi dengan Azure Data Explorer

Aplikasi yang sangat bersamaan diperlukan dalam skenario dengan basis pengguna yang besar, di mana aplikasi secara bersamaan menangani banyak permintaan dengan latensi rendah dan throughput tinggi.

Kasus penggunaan mencakup dasbor pemantauan dan pemberitahuan skala besar. Contohnya termasuk produk dan layanan Microsoft seperti Azure Monitor, Azure Time Series Insights, dan Playfab. Semua layanan ini menggunakan Azure Data Explorer untuk melayani beban kerja konkurensi tinggi. Azure Data Explorer adalah layanan analitik big data yang cepat dan dikelola sepenuhnya untuk analitik real-time pada streaming data dalam volume besar dari aplikasi, situs web, perangkat IoT, dan banyak lagi.

Catatan

Jumlah kueri aktual yang dapat berjalan bersamaan pada kluster bergantung pada faktor-faktor seperti SKU kluster, volume data, kompleksitas kueri, dan pola penggunaan.

Untuk menyiapkan aplikasi konkurensi tinggi, rancang arsitektur back-end sebagai berikut:

Artikel ini menyajikan rekomendasi untuk setiap subjek sebelumnya yang dapat Anda terapkan untuk mencapai konkurensi tinggi dengan cara yang optimal dan hemat biaya. Fitur-fitur ini dapat digunakan sendiri atau dalam kombinasi.

Mengoptimalkan data

Untuk konkurensi tinggi, kueri harus mengonsumsi jumlah sumber daya CPU sekecil mungkin. Anda dapat menggunakan salah satu atau semua metode berikut:

Menggunakan praktik terbaik desain skema tabel

Gunakan saran desain skema tabel berikut untuk meminimalkan sumber daya CPU yang digunakan:

  • Kolom ID harus didefinisikan sebagai jenis data string terlepas dari apakah nilainya numerik. Pengindeksan untuk kolom string lebih canggih daripada untuk kolom numerik dan memberikan performa pemfilteran yang lebih baik.
  • Cocokkan jenis data kolom secara optimal dengan data aktual yang disimpan dalam kolom ini. Misalnya, jangan menyimpan nilai tanggalwaktu dalam kolom string.
  • Hindari tabel jarang besar dengan banyak kolom, dan gunakan kolom dinamis untuk menyimpan properti jarang.
  • Simpan properti yang sering digunakan di kolomnya sendiri dengan jenis data non-dinamis.
  • Denormalisasi data untuk menghindari gabungan yang menuntut sumber daya CPU yang relatif besar.

Data partisi

Data disimpan dalam bentuk jangkauan (pecahan data) dan dipartisi oleh waktu penyerapan secara default. Anda dapat menggunakan kebijakan partisi untuk mempartisi ulang jangkauan berdasarkan kolom string tunggal atau kolom tanggalwaktu tunggal dalam proses latar belakang. Partisi dapat memberikan peningkatan performa yang signifikan ketika sebagian besar kueri menggunakan kunci partisi untuk memfilter, mengagregasi, atau keduanya.

Catatan

Proses partisi itu sendiri menggunakan sumber daya CPU. Namun, pengurangan CPU selama waktu kueri harus melebihi CPU yang digunakan untuk partisi.

Pra-agregat data Anda dengan tampilan materialisasi

Pra-agregat data Anda untuk mengurangi sumber daya CPU secara signifikan selama waktu kueri. Contoh skenario termasuk meringkas titik data selama pengurangan jumlah bin waktu, menyimpan catatan terbaru dari rekaman tertentu, atau mendeduplikasi himpunan data. Gunakan tampilan materialisasi untuk tampilan agregat yang mudah dikonfigurasi melalui tabel sumber. Fitur ini menyederhanakan upaya pembuatan dan pemeliharaan tampilan agregat ini.

Catatan

Proses agregasi latar belakang menggunakan sumber daya CPU. Namun, pengurangan CPU selama waktu kueri harus melebihi konsumsi CPU untuk agregasi.

Mengonfigurasi kebijakan penembolokan

Konfigurasikan kebijakan penembolokan sehingga kueri berjalan pada data yang disimpan di penyimpanan panas, juga dikenal sebagai cache disk. Hanya jalankan skenario terbatas dan dirancang dengan hati-hati pada penyimpanan dingin, atau tabel eksternal.

Mengatur pola arsitektur pengikut pemimpin

Database pengikut adalah fitur yang mengikuti database atau sekumpulan tabel dalam database dari kluster lain yang terletak di wilayah yang sama. Fitur ini diekspos melalui Azure Data Share, Azure Resource Manager API, dan serangkaian perintah kluster.

Gunakan pola pengikut pemimpin untuk mengatur sumber daya komputasi untuk beban kerja yang berbeda. Misalnya, siapkan kluster untuk penyerapan, kluster untuk mengkueri atau melayani dasbor atau aplikasi, dan kluster yang melayani beban kerja ilmu data. Setiap beban kerja dalam hal ini akan memiliki sumber daya komputasi khusus yang dapat diskalakan secara independen, dan konfigurasi penembolokan dan keamanan yang berbeda. Semua kluster menggunakan data yang sama, dengan pemimpin menulis data dan pengikut menggunakannya dalam mode baca-saja.

Catatan

Database pengikut memiliki jeda dari pemimpin, biasanya beberapa detik. Jika solusi Anda memerlukan data terbaru tanpa latensi, solusi ini mungkin berguna. Gunakan tampilan pada kluster pengikut yang menyatukan data dari pemimpin dan pengikut serta mengkueri data terbaru dari pemimpin dan data lainnya dari pengikut.

Untuk meningkatkan performa kueri pada kluster pengikut, Anda dapat mengaktifkan konfigurasi tingkat prefetch. Gunakan konfigurasi ini dengan hati-hati, karena dapat memengaruhi kesegaran data dalam database pengikut.

Optimalkan kueri

Gunakan metode berikut untuk mengoptimalkan kueri Anda untuk konkurensi tinggi.

Ikuti praktik terbaik kueri sehingga kueri Anda seefisien mungkin.

Menggunakan cache hasil kueri

Ketika lebih dari satu pengguna memuat dasbor yang sama pada waktu yang sama, dasbor ke pengguna kedua dan berikut dapat dilayani dari cache. Penyiapan ini memberikan performa tinggi dengan hampir tidak ada penggunaan CPU. Gunakan fitur cache hasil kueri , dan kirim konfigurasi cache hasil kueri dengan kueri dengan menggunakan set pernyataan .

Grafana berisi pengaturan konfigurasi untuk cache hasil kueri di tingkat sumber data, sehingga semua dasbor menggunakan pengaturan ini secara default dan tidak perlu mengubah kueri.

Mengonfigurasi konsistensi kueri

Mode konsistensi kueri default sangat kuat. Dalam mode ini, simpul admin mengelola metadata dan penyerapan untuk kluster, serta perencanaan kueri dan mendelegasikan eksekusi ke simpul lain.

Dalam aplikasi konkurensi tinggi, mengelola kueri dapat menyebabkan penggunaan CPU simpul admin tinggi, sementara simpul lain kurang sibuk. Ini dapat menyebabkan penyempitan di mana jumlah kueri bersamaan tidak dapat bertambah. Namun, ini mungkin tidak terlihat dalam laporan CPU kluster (portal Azure > {your_cluster} > Metrik > CPU) yang menunjukkan penggunaan CPU rata-rata untuk kluster.

Untuk skenario ini, sebaiknya gunakan mode konsistensi yang lemah . Dalam mode ini, lebih banyak simpul dapat mengelola kueri, yang memungkinkan untuk menskalakan jumlah kueri bersamaan secara horizontal . Simpul dalam mode ini secara berkala me-refresh salinan metadata dan data yang baru diserap, yang menyebabkan latensi biasanya kurang dari satu menit saat data disinkronkan. Namun, latensi singkat ini lebih disukai daripada situasi penyempitan yang dapat muncul saat menggunakan mode konsistensi yang kuat .

Anda dapat mengatur mode konsistensi dalam kebijakan konsistensi kueri grup beban kerja, di properti permintaan klien, atau di konfigurasi sumber data Grafana.

Mengatur kebijakan kluster

Jumlah permintaan bersamaan dibatasi secara default dan dikendalikan oleh kebijakan Batas tingkat permintaan sehingga kluster tidak kelebihan beban. Anda dapat menyesuaikan kebijakan ini untuk situasi konkurensi tinggi. Kebijakan ini harus disesuaikan hanya setelah pengujian ketat, sebaiknya pada pola penggunaan dan himpunan data seperti produksi. Pengujian memastikan kluster dapat mempertahankan nilai yang dimodifikasi. Batas ini dapat dikonfigurasi berdasarkan kebutuhan aplikasi.

Memantau kluster Azure Data Explorer

Memantau kesehatan sumber daya kluster membantu Anda membangun rencana pengoptimalan dengan menggunakan fitur yang disarankan di bagian sebelumnya. Azure Monitor untuk Azure Data Explorer menyediakan tampilan komprehensif tentang performa, operasi, penggunaan, dan kegagalan kluster Anda. Dapatkan wawasan tentang performa kueri, kueri bersamaan, kueri yang dibatasi, dan berbagai metrik lainnya dengan memilih tab Wawasan (pratinjau) di bawah bagian Pemantauan kluster Azure Data Explorer di portal Azure.

Untuk informasi tentang kluster pemantauan, lihat Azure Monitor untuk Azure Data Explorer. Untuk informasi tentang metrik individual, lihat Metrik azure Data Explorer.