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

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, consultez la table SVV_USER_GRANTS. Pour voir la liste des rôles auxquels des rôles ont été attribués dans le cluster, consultez la table SVV_ROLE_GRANTS.

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 à des groupes à l’aide des commandes SQL CREATE USER, CREATE GROUP et ALTER 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 commande SET pour commencer un groupe de requêtes.

SET query_group TO group_label

Ici, group_label est une étiquette de groupe de requête qui est répertoriée dans la configuration de WLM.

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 définition et la réinitialisation des objets Amazon Redshift, consultez SET et RESET dans le Guide de référence des commandes SQL.

Les étiquettes de groupe de requêtes que vous spécifiez doivent être incluses dans la configuration WLM actuelle, sinon la commande SET query_group n’aura aucune incidence 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 super-utilisateurs, interrogez la table catalogue système PG_USER.

select * from pg_user where usesuper = 'true';