Kotak pasir
Berlaku untuk: ✅Azure Data Explorer
Kusto dapat menjalankan kotak pasir untuk alur tertentu yang harus dijalankan di lingkungan yang aman dan terisolasi. Contoh alur ini adalah skrip yang ditentukan pengguna yang berjalan menggunakan plugin Python atau plugin R.
Kotak pasir dijalankan secara lokal (artinya, pemrosesan dilakukan dekat dengan data), tanpa latensi tambahan untuk panggilan jarak jauh.
Prasyarat dan batasan
- Kotak pasir harus berjalan pada ukuran VM yang mendukung virtualisasi berlapis, yang diimplementasikan menggunakan teknologi Hyper-V dan tidak memiliki batasan.
- Gambar untuk menjalankan kotak pasir disebarkan ke setiap node kluster dan memerlukan ruang SSD khusus untuk dijalankan.
- Perkiraan ukurannya antara 10-20 GB.
- Hal ini mempengaruhi kapasitas data kluster, dan dapat mempengaruhi biaya kluster.
Runtime
- Operator kueri kotak pasir dapat menggunakan satu atau beberapa kotak pasir untuk eksekusinya.
- Kotak pasir hanya digunakan untuk satu kueri dan dibuang setelah kueri selesai.
- Ketika node dihidupkan ulang, misalnya, sebagai bagian dari peningkatan layanan, semua kotak pasir yang berjalan di atasnya dibuang.
- Setiap node mempertahankan jumlah kotak pasir yang telah ditentukan sebelumnya yang siap untuk menjalankan permintaan yang masuk.
- Setelah kotak pasir digunakan, yang baru secara otomatis tersedia untuk menggantikannya.
- Jika tidak ada kotak pasir yang telah dialokasikan sebelumnya yang tersedia untuk melayani operator kueri, kotak pasir tersebut akan dibatasi hingga kotak pasir baru tersedia. Untuk informasi selengkapnya, lihat Kesalahan. Alokasi kotak pasir baru bisa memakan waktu hingga 10-15 detik per kotak pasir, bergantung pada SKU dan sumber daya yang tersedia pada node data.
Parameter kotak pasir
Beberapa parameter dapat dikontrol menggunakan kebijakan kotak pasir kebijakan kluster, untuk setiap jenis kotak pasir.
- Jumlah kotak pasir per node: Jumlah kotak pasir per node terbatas.
- Permintaan yang dibuat ketika tidak ada kotak pasir yang tersedia akan dibatasi.
- Inisialisasi saat startup: jika diatur ke
false
(default), kotak pasir diinisialisasi dengan malas pada simpul, pertama kali kueri memerlukan kotak pasir untuk eksekusinya. Jika tidak, jika diatur ketrue
, kotak pasir diinisialisasi sebagai bagian dari startup layanan.- Ini berarti bahwa eksekusi pertama plugin yang menggunakan kotak pasir pada node akan mencakup periode pemanasan singkat.
- CPU: Tingkat maksimum CPU yang dapat dikonsumsi kotak pasir dari prosesor host-nya terbatas (default-nya adalah
50%
).- Ketika batas tercapai, penggunaan CPU kotak pasir dibatasi, tetapi eksekusi berlanjut.
- Memori: Jumlah maksimum RAM yang dapat dikonsumsi sandbox dari RAM host-nya terbatas.
- Memori default untuk teknologi Hyper-V adalah 1 GB, dan untuk sandbox warisan 20 GB.
- Mencapai batas dapat mengakibatkan penghentian kotak pasir, dan kesalahan eksekusi kueri.
Batasan kotak pasir
- Jaringan: Kotak pasir tidak dapat berinteraksi dengan sumber daya apa pun di mesin virtual (VM) atau di luarnya.
- Kotak pasir tidak dapat berinteraksi dengan kotak pasir lain.
Catatan
Sumber daya yang digunakan dengan kotak pasir tidak hanya bergantung pada ukuran data yang diproses sebagai bagian dari permintaan, tetapi juga pada logika yang berjalan di kotak pasir, dan implementasi pustaka yang digunakan olehnya.
Misalnya, untuk plugin python
dan r
, yang terakhir berarti skrip yang disediakan pengguna dan pustaka Python atau R yang dikonsumsi saat runtime.
Kesalahan
ErrorCode | Status | Pesan | Alasan potensial |
---|---|---|---|
E_SB_QUERY_THROTTLED_ERROR | TooManyRequests (429) | Kueri kotak pasir dibatalkan karena pembatasan. Mencoba lagi setelah beberapa backoff mungkin berhasil | Tidak ada kotak pasir yang tersedia pada node target. Kotak pasir baru akan tersedia dalam beberapa detik |
E_SB_QUERY_THROTTLED_ERROR | TooManyRequests (429) | Kotak pasir jenis '{kind}' belum diinisialisasi | Kebijakan kotak pasir baru-baru ini berubah. Kotak pasir baru yang mematuhi kebijakan baru akan tersedia dalam beberapa detik |
InternalServiceError (520) | Kueri kotak pasir dibatalkan karena kegagalan dalam menginisialisasi kotak pasir | Kegagalan infrastruktur yang tidak terduga. |
Ukuran VM yang mendukung virtualisasi berlapis
Tabel berikut mencantumkan semua ukuran VM modern yang mendukung teknologi kotak pasir Hyper-V.
Nama | Golongan |
---|---|
Standard_L8s_v3 | dioptimalkan untuk penyimpanan |
Standard_L16s_v3 | dioptimalkan untuk penyimpanan |
Standard_L8as_v3 | dioptimalkan untuk penyimpanan |
Standard_L16as_v3 | dioptimalkan untuk penyimpanan |
Standard_E8as_v5 | dioptimalkan untuk penyimpanan |
Standard_E16as_v5 | dioptimalkan untuk penyimpanan |
Standard_E8s_v4 | dioptimalkan untuk penyimpanan |
Standard_E16s_v4 | dioptimalkan untuk penyimpanan |
Standard_E8s_v5 | dioptimalkan untuk penyimpanan |
Standard_E16s_v5 | dioptimalkan untuk penyimpanan |
Standard_E2ads_v5 | dioptimalkan untuk komputasi |
Standard_E4ads_v5 | dioptimalkan untuk komputasi |
Standard_E8ads_v5 | dioptimalkan untuk komputasi |
Standard_E16ads_v5 | dioptimalkan untuk komputasi |
Standard_E2d_v4 | dioptimalkan untuk komputasi |
Standard_E4d_v4 | dioptimalkan untuk komputasi |
Standard_E8d_v4 | dioptimalkan untuk komputasi |
Standard_E16d_v4 | dioptimalkan untuk komputasi |
Standard_E2d_v5 | dioptimalkan untuk komputasi |
Standard_E4d_v5 | dioptimalkan untuk komputasi |
Standard_E8d_v5 | dioptimalkan untuk komputasi |
Standard_E16d_v5 | dioptimalkan untuk komputasi |
Standard_D32d_v4 | dioptimalkan untuk komputasi |