Affectation des requêtes à des files d’attente - 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.

Affectation des requêtes à des files d’attente

Avec Amazon Redshift, vous pouvez gérer la simultanéité des charges de travail et hiérarchiser les requêtes en les affectant à des files d'attente. Les files d'attente vous permettent d'allouer des ressources telles que de la mémoire et CPU pour différents types de requêtes ou d'utilisateurs, garantissant ainsi la priorité des requêtes critiques par rapport aux requêtes moins importantes. Les sections suivantes décrivent comment créer des files d'attente, configurer leurs propriétés et attribuer les requêtes entrantes en fonction des critères que vous définissez.

Les exemples suivants affectent des requêtes à des files d’attente en fonction des rôles utilisateurs, des groupes d’utilisateurs et des groupes de requêtes.

Affectation des requêtes aux files d’attente en fonction des rôles utilisateurs

Si un utilisateur se voit attribuer un rôle associé à une file d’attente, les requêtes exécutées par cet utilisateur sont affectées à cette file d’attente. L’exemple suivant crée un rôle utilisateur nommé sales_rw et attribue ce rôle à l’utilisateur test_user.

create role sales_rw; grant role sales_rw to test_user;

Vous pouvez également combiner les autorisations de deux rôles en attribuant explicitement un rôle à un autre rôle. L’attribution d’un rôle imbriqué à un utilisateur permet à l’utilisateur d’accéder aux deux rôles.

create role sales_rw; create role sales_ro; grant role sales_ro to role sales_rw; grant role sales_rw to test_user;

Pour voir la liste des utilisateurs auxquels des rôles ont été attribués dans le cluster, interrogez la GRANTS table SVV USER _ _. Pour voir la liste des rôles auxquels des rôles ont été attribués dans le cluster, interrogez la GRANTS table SVV ROLE _ _.

select * from svv_user_grants; select * from svv_role_grants;

Affectation des requêtes aux files d’attente en fonction des groupes d’utilisateurs

Si un nom de groupe d’utilisateurs est répertorié dans une définition de file d’attente, les requêtes exécutées par des membres de ce groupe d’utilisateurs sont affectées à la file d’attente correspondante. L'exemple suivant crée des groupes d'utilisateurs et ajoute des utilisateurs aux groupes à l'aide SQL des commandes CREATE USERCREATE GROUP, etALTER GROUP.

create group admin_group with user admin246, admin135, sec555; create user vp1234 in group ad_hoc_group password 'vpPass1234'; alter group admin_group add user analyst44, analyst45, analyst46;

Affectation d’une requête à un groupe de requêtes

Vous pouvez affecter une requête à une file d’attente lors de l’exécution en affectant votre requête au groupe de requêtes approprié. Utilisez la SET commande pour démarrer un groupe de requêtes.

SET query_group TO group_label

Ici, label_groupe est une étiquette de groupe de requêtes répertoriée dans la WLM configuration.

Toutes les requêtes que vous exécutez après l’exécution de la commande SET query_group s’exécutent comme membres du groupe de requêtes spécifié jusqu’à ce que vous réinitialisiez le groupe de requêtes ou que vous mettiez fin à votre session de connexion actuelle. Pour plus d'informations sur la configuration et la réinitialisation des objets Amazon Redshift, SET consultez RESET et dans SQL le manuel Command Reference.

Les libellés des groupes de requêtes que vous spécifiez doivent être inclus dans la WLM configuration actuelle ; dans le cas contraire, la commande SETquery_group n'a aucun effet sur les files d'attente de requêtes.

L’étiquette définie dans la clause TO est capturée dans les journaux de requêtes afin que vous puissiez utiliser l’étiquette à des fins de résolution de problèmes. Pour plus d’informations sur le paramètre de configuration query_group, consultez query_group dans la Référence de configuration.

L’exemple suivant exécute deux requêtes dans le cadre du groupe de requêtes ’priority’, puis réinitialise le groupe de requêtes.

set query_group to 'priority'; select count(*)from stv_blocklist; select query, elapsed, substring from svl_qlog order by query desc limit 5; reset query_group;

Affectation des requêtes à la file d’attente Super-utilisateur

Pour affecter une requête à la file d’attente superutilisateur, connectez-vous à Amazon Redshift en tant que superutilisateur, puis exécutez la requête dans le groupe de celui-ci. Une fois terminé, réinitialisez le groupe de requêtes afin que les requêtes suivantes ne s’exécutent pas dans la file d’attente Super-utilisateur.

L’exemple suivant affecte deux commandes à exécuter dans la file d’attente Super-utilisateur.

set query_group to 'superuser'; analyze; vacuum; reset query_group;

Pour afficher la liste des superutilisateurs, interrogez la table du catalogue du USER système PG_.

select * from pg_user where usesuper = 'true';