Partager via


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éfinie true, 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