Bacs à sable
S’applique à : ✅Azure Data Explorer
Kusto peut exécuter des bacs à sable pour des flux spécifiques qui doivent être exécutés dans un environnement sécurisé et isolé. Par exemple, ces flux sont des scripts définis par l’utilisateur qui s’exécutent à l’aide du plug-in Python ou du plug-in R.
Les bacs à sable sont exécutés localement (ce qui signifie que le traitement est effectué à proximité des données), sans latence supplémentaire pour les appels distants.
Conditions préalables et limitations
- Les bacs à sable doivent s’exécuter sur des tailles de machine virtuelle prenant en charge la virtualisation imbriquée, qui ont été implémentées à l’aide de la technologie Hyper-V et n’ont aucune limitation.
- L’image permettant d’exécuter les bacs à sable est déployée sur chaque nœud de cluster et nécessite l’exécution de l’espace SSD dédié.
- La taille estimée est comprise entre 10 et 20 Go.
- Cela affecte la capacité des données du cluster et peut affecter le coût du cluster.
Runtime
- Un opérateur de requête en bac à sable peut utiliser un ou plusieurs bacs à sable pour son exécution.
- Un bac à sable est utilisé uniquement pour une requête unique et est supprimé une fois cette requête terminée.
- Lorsqu’un nœud est redémarré, par exemple, dans le cadre d’une mise à niveau de service, tous les bacs à sable en cours d’exécution sont supprimés.
- Chaque nœud gère un nombre prédéfini de bacs à sable prêts à exécuter des requêtes entrantes.
- Une fois qu’un bac à sable est utilisé, un nouveau bac à sable est automatiquement disponible pour le remplacer.
- Si aucun bac à sable pré-alloué n’est disponible pour servir un opérateur de requête, il sera limité jusqu’à ce que les nouveaux bacs à sable soient disponibles. Pour plus d’informations, consultez Erreurs. La nouvelle allocation de bac à sable peut prendre jusqu’à 10 à 15 secondes par bac à sable, en fonction de la référence SKU et des ressources disponibles sur le nœud de données.
Paramètres de bac à sable
Certains des paramètres peuvent être contrôlés à l’aide d’une stratégie de bac à sable au niveau du cluster, pour chaque type de bac à sable.
- Nombre de bacs à sable par nœud : le nombre de bacs à sable par nœud est limité.
- Les demandes effectuées lorsqu’aucun bac à sable disponible n’est disponible seront limitées.
- Initialiser au démarrage : s’il est défini
false
sur (par défaut), les bacs à sable sont initialisés de manière différée sur un nœud, la première fois qu’une requête nécessite un bac à sable pour son exécution. Sinon, si la valeur est définietrue
, les bacs à sable sont initialisés dans le cadre du démarrage du service.- Cela signifie que la première exécution d’un plug-in qui utilise des bacs à sable sur un nœud inclut une courte période de préchauffement.
- PROCESSEUR : le taux maximal d’UC qu’un bac à sable peut consommer des processeurs de son hôte est limité (la valeur par défaut est
50%
).- Lorsque la limite est atteinte, l’utilisation du processeur du bac à sable est limitée, mais l’exécution se poursuit.
- Mémoire : la quantité maximale de RAM qu’un bac à sable peut consommer de la RAM de son hôte est limitée.
- La mémoire par défaut pour la technologie Hyper-V est de 1 Go et pour les bacs à sable hérités de 20 Go.
- Atteindre la limite entraîne l’arrêt du bac à sable et une erreur d’exécution de requête.
Limitations du bac à sable
- Réseau : un bac à sable ne peut interagir avec aucune ressource sur la machine virtuelle ou en dehors de celui-ci.
- Un bac à sable ne peut pas interagir avec un autre bac à sable.
Remarque
Les ressources utilisées avec le bac à sable dépendent non seulement de la taille des données traitées dans le cadre de la requête, mais également de la logique qui s’exécute dans le bac à sable et de l’implémentation des bibliothèques utilisées par celui-ci.
Par exemple, pour les plug-ins et r
les python
plug-ins, ce dernier signifie que le script fourni par l’utilisateur et les bibliothèques Python ou R qu’il consomme au moment de l’exécution.
Erreurs
ErrorCode | État | Message | Raison potentielle |
---|---|---|---|
E_SB_QUERY_THROTTLED_ERROR | TooManyRequests (429) | La requête en bac à sable a été abandonnée en raison de la limitation. Une nouvelle tentative après une interruption peut réussir | Il n’existe aucun bac à sable disponible sur le nœud cible. Les nouveaux bacs à sable doivent être disponibles en quelques secondes |
E_SB_QUERY_THROTTLED_ERROR | TooManyRequests (429) | Les bacs à sable de type « {kind} » n’ont pas encore été initialisés | La stratégie de bac à sable a récemment changé. De nouveaux bacs à sable obéissent à la nouvelle stratégie sera disponible en quelques secondes |
InternalServiceError (520) | La requête en bac à sable a été abandonnée en raison d’un échec lors de l’initialisation des bacs à sable | Une défaillance inattendue de l’infrastructure. |
Tailles de machine virtuelle prenant en charge la virtualisation imbriquée
Le tableau suivant répertorie toutes les tailles de machine virtuelle modernes qui prennent en charge la technologie de bac à sable Hyper-V.
Nom | Catégorie |
---|---|
Standard_L8s_v3 | Optimisé pour le stockage |
Standard_L16s_v3 | Optimisé pour le stockage |
Standard_L8as_v3 | Optimisé pour le stockage |
Standard_L16as_v3 | Optimisé pour le stockage |
Standard_E8as_v5 | Optimisé pour le stockage |
Standard_E16as_v5 | Optimisé pour le stockage |
Standard_E8s_v4 | Optimisé pour le stockage |
Standard_E16s_v4 | Optimisé pour le stockage |
Standard_E8s_v5 | Optimisé pour le stockage |
Standard_E16s_v5 | Optimisé pour le stockage |
Standard_E2ads_v5 | Optimisé pour le calcul |
Standard_E4ads_v5 | Optimisé pour le calcul |
Standard_E8ads_v5 | Optimisé pour le calcul |
Standard_E16ads_v5 | Optimisé pour le calcul |
Standard_E2d_v4 | Optimisé pour le calcul |
Standard_E4d_v4 | Optimisé pour le calcul |
Standard_E8d_v4 | Optimisé pour le calcul |
Standard_E16d_v4 | Optimisé pour le calcul |
Standard_E2d_v5 | Optimisé pour le calcul |
Standard_E4d_v5 | Optimisé pour le calcul |
Standard_E8d_v5 | Optimisé pour le calcul |
Standard_E16d_v5 | Optimisé pour le calcul |
Standard_D32d_v4 | Optimisé pour le calcul |