Implémentation automatique WLM - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Implémentation automatique WLM

Grâce à la gestion automatique de la charge de travail (WLM), Amazon Redshift gère la simultanéité des requêtes et l'allocation de mémoire. Vous pouvez créer jusqu’à huit files d’attente avec les identificateurs de classe de service 100–107. Chaque file d’attente a une priorité. Pour de plus amples informations, veuillez consulter Priorité de requête.

Automatic WLM détermine la quantité de ressources dont les requêtes ont besoin et ajuste la simultanéité en fonction de la charge de travail. Lorsque des requêtes dans le système nécessitent une grande quantité de ressources (par exemple, des jointures de hachage entre des tables volumineuses), la simultanéité est plus faible. Lorsque des requêtes nécessitant moins de ressources (par exemple des insertions, des suppressions, des analyses ou des agrégations simples) sont soumises, la simultanéité est plus élevée.

WLML'automatique est distinct de l'accélération des requêtes courtes (SQA) et évalue les requêtes différemment. Automatique WLM et SQA fonctionne ensemble pour permettre aux requêtes de courte durée et aux requêtes légères de se terminer même lorsque les requêtes de longue durée et gourmandes en ressources sont actives. Pour plus d'informations surSQA, voirUtilisation de l’accélération des requêtes courtes.

Amazon Redshift permet de passer automatiquement WLM par groupes de paramètres :

  • Si vos clusters utilisent le groupe de paramètres par défaut, Amazon Redshift WLM les active automatiquement.

  • Si vos clusters utilisent des groupes de paramètres personnalisés, vous pouvez configurer les clusters pour activer le mode automatiqueWLM. Nous vous recommandons de créer un groupe de paramètres distinct pour votre WLM configuration automatique.

Pour configurerWLM, modifiez le wlm_json_configuration paramètre dans un groupe de paramètres qui peut être associé à un ou plusieurs clusters. Pour de plus amples informations, veuillez consulter Modification de la WLM configuration.

Vous définissez les files d'attente de requêtes dans la WLM configuration. Vous pouvez ajouter des files d'attente de requêtes supplémentaires à la WLM configuration par défaut, jusqu'à un total de huit files d'attente utilisateur. Vous pouvez configurer les éléments suivants pour chaque file d’attente de requête :

  • Priorité

  • Mode de mise à l’échelle de la simultanéité

  • Groupes d’utilisateurs

  • Groupes de requêtes

  • Règles de surveillance de requête

Priorité

Vous pouvez définir l’importance relative des requêtes dans une charge de travail en définissant une valeur de priorité. La priorité est spécifiée pour une file d’attente et héritée par toutes les requêtes associées à la file d’attente. Pour de plus amples informations, veuillez consulter Priorité de requête.

Mode de mise à l’échelle de la simultanéité

Lorsque la mise à l’échelle de la simultanéité est activée, Amazon Redshift ajoute automatiquement de la capacité de cluster supplémentaire lorsque vous en avez besoin pour traiter une augmentation des requêtes de lecture et d’écriture simultanées. Vos utilisateurs voient les données les plus récentes, que les requêtes soient exécutées sur le cluster principal ou sur un cluster de mise à l’échelle de la simultanéité.

Vous gérez les requêtes envoyées au cluster de dimensionnement de la simultanéité en configurant des WLM files d'attente. Lorsque vous activez la mise à l’échelle de la simultanéité pour une file d’attente, les requêtes éligibles sont envoyées au cluster de mise à l’échelle de la simultanéité au lieu d’être mises dans une file d’attente. Pour de plus amples informations, veuillez consulter Utilisation de la mise à l’échelle de la simultanéité.

Groupes d’utilisateurs

Vous pouvez affecter un ensemble de groupes d’utilisateurs à une file d’attente en spécifiant chaque nom de groupe d’utilisateurs ou en utilisant des caractères génériques. Lorsqu’un membre d’un groupe d’utilisateurs répertorié exécute une requête, celle-ci s’exécute dans la file d’attente correspondante. Il n’y a pas de limite au nombre de groupes d’utilisateurs qui peut être assigné à une file d’attente. Pour de plus amples informations, veuillez consulter Affectation des requêtes aux files d’attente en fonction des groupes d’utilisateurs.

Groupes de requêtes

Vous pouvez affecter un ensemble de groupes de requêtes à une file d’attente en spécifiant chaque nom de groupe de requêtes ou en utilisant des caractères génériques. Un groupe de requêtes est simplement une étiquette. Au moment de l’exécution, vous pouvez affecter l’étiquette de groupe de requête à une série de requêtes. Toutes les requêtes qui sont affectées à un groupe de requêtes répertorié sont exécutées dans la file d’attente correspondante. Il n’y a pas de limite au nombre de groupes de requêtes qui peut être assigné à une file d’attente. Pour de plus amples informations, veuillez consulter Affectation d’une requête à un groupe de requêtes.

Caractères génériques

Si les caractères génériques sont activés dans la configuration de la WLM file d'attente, vous pouvez attribuer des groupes d'utilisateurs et des groupes de requêtes à une file d'attente soit individuellement, soit en utilisant des caractères génériques de type shell Unix. Le modèle correspondant est sensible à la casse.

Par exemple, le caractère générique « * » correspond à n’importe quel nombre de caractères. Ainsi, si vous ajoutez dba_* à la liste de groupes d’utilisateurs pour une file d’attente, toute requête exécutée par un utilisateur et appartenant à un groupe dont le nom commence par dba_ est affectée à cette file d’attente. Exemples : dba_admin ou DBA_primary. Le caractère générique « ? » correspond à n’importe quel caractère unique. Ainsi, si la file d’attente comprend le groupe utilisateur dba?1, alors les groupes utilisateur nommés dba11 et dba21 correspondent, mais le groupe dba12 ne correspond pas.

Par défaut, les caractères génériques sont désactivés.

Règles de surveillance de requête

Les règles de surveillance des requêtes définissent les limites de performance basées sur des métriques pour les WLM files d'attente et spécifient les mesures à prendre lorsqu'une requête dépasse ces limites. Par exemple, pour une file d’attente dédiée aux requêtes de courte durée, vous pouvez créer une règle qui annule les requêtes qui s’exécutent pendant plus de 60 secondes. Si vous souhaitez effectuer un suivi des requêtes mal conçues, vous pouvez configurer une autre règle qui consigne les requêtes contenant des boucles imbriquées. Pour de plus amples informations, veuillez consulter WLMrègles de surveillance des requêtes.

Vérification automatique WLM

Pour vérifier si le mode automatique WLM est activé, exécutez la requête suivante. Si la requête renvoie au moins une ligne, le mode automatique WLM est activé.

select * from stv_wlm_service_class_config where service_class >= 100;

La requête suivante affiche le nombre de requêtes ayant parcouru chaque file d’attente de requête (classe de service). Elle affiche aussi la durée d’exécution moyenne, le nombre de requêtes avec un délai d’attente au 90e percentile et le délai d’attente moyen. WLMLes requêtes automatiques utilisent les classes de service 100 à 107.

select final_state, service_class, count(*), avg(total_exec_time), percentile_cont(0.9) within group (order by total_queue_time), avg(total_queue_time) from stl_wlm_query where userid >= 100 group by 1,2 order by 2,1;

Pour savoir quelles requêtes ont été exécutées automatiquement WLM et se sont terminées avec succès, exécutez la requête suivante.

select a.queue_start_time, a.total_exec_time, label, trim(querytxt) from stl_wlm_query a, stl_query b where a.query = b.query and a.service_class >= 100 and a.final_state = 'Completed' order by b.query desc limit 5;