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 de la gestion automatique de la charge de travail
En mode de gestion automatique de la charge de travail, 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.
La gestion automatique de la charge de travail détermine la quantité de ressources nécessaires pour les requêtes 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.
La gestion automatique de la charge de travail est différente de l’accélération des requêtes courtes (SQA) et évalue différemment les requêtes. La gestion automatique de la charge de travail et l’accélération des requêtes courtes collaborent pour autoriser les requêtes légères à exécution rapide à être prises en charge même lorsque des requêtes lourdes nécessitant beaucoup de ressources sont en court d’exécution. Pour plus d’informations sur SQA, consultez Accélération des requêtes courtes.
Amazon Redshift active la gestion automatique de la charge de travail via des groupes de paramètres :
Si vos clusters utilisent le groupe de paramètres par défaut, Amazon Redshift active la gestion automatique de la charge de travail pour eux.
Si vos clusters utilisent des groupes de paramètres personnalisés, vous pouvez les configurer de manière à activer la gestion automatique de la charge de travail. Nous vous recommandons de créer un groupe de paramètres séparés pour votre configuration de gestion automatique de la charge de travail.
Pour configurer la gestion de la charge de travail, modifiez le paramètre (wlm_json_configuration
) dans un groupe de paramètres qui peut être associé à un ou plusieurs clusters. Pour de plus amples informations, veuillez consulter Modifier la configuration WLM.
Vous définissez des files d’attente de requête au sein de la configuration WLM. Vous pouvez ajouter des files d’attente de requête supplémentaires à la configuration WLM par défaut (huit files d’attente de l’utilisateur au maximum). 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 quelles sont les requêtes envoyées au cluster de mise à l’échelle de la simultanéité en configurant les files d’attente de la gestion de la charge de travail. 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 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.
Rôles utilisateurs
Vous pouvez attribuer un ensemble de rôles utilisateur à une file d'attente en spécifiant le nom de chaque rôle utilisateur ou en utilisant des caractères génériques. Lorsqu'un membre d'un rôle d'utilisateur répertorié exécute une requête, celle-ci s'exécute dans la file d'attente correspondante. Il n'existe aucune limite définie quant au nombre de rôles utilisateur pouvant être attribués à une file d'attente. Pour plus d'informations, consultez Affectation des requêtes aux files d’attente en fonction des rôles 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 file d’attente WLM, vous pouvez affecter 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 de requête définissent les limites de performance reposant sur les métriques pour les files d’attente WLM et spécifient quelle action exécuter quand 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 Règles de surveillance de requête WLM.
Vérification de la gestion automatique de la charge de travail
Pour vérifier si la gestion automatique de la charge de travail est activée, exécutez la requête suivante. Si la requête renvoie au moins une ligne, cela signifie que la gestion automatique de la charge de travail est activée.
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. Les requêtes WLM 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 par la gestion automatique de la charge de travail et exécuté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;