SET - 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.

SET

Définit la valeur d’un paramètre de configuration du serveur. Utilisez la SET commande pour remplacer un paramètre pour la durée de la session ou de la transaction en cours uniquement.

Utilisez la commande RESET pour rétablir un paramètre à sa valeur par défaut.

Vous pouvez modifier les paramètres de configuration du serveur de plusieurs manières. Pour plus d'informations, consultez Modification de la configuration du serveur.

Syntaxe

SET { [ SESSION | LOCAL ] { SEED | parameter_name } { TO | = } { value | 'value' | DEFAULT } | SEED TO value }

L’instruction suivante définit la valeur d’une variable de contexte de session.

SET { [ SESSION | LOCAL ] variable_name { TO | = } { value | 'value' }

Paramètres

SESSION

Spécifie que le paramètre est valide pour la séance en cours. Valeur par défaut.

variable_name

Spécifie le nom de la variable contextuelle définie pour la session.

La convention de nommage est un nom en deux parties séparées par un point, par exemple identifier.identifier (identifiant.identifiant). Un seul séparateur de points est autorisé. Utilisez un identifiant qui respecte les règles d’identification standard pour Amazon Redshift. Pour obtenir plus d’informations à ce sujet, consultez Noms et identificateurs. Les identifiants délimités ne sont pas autorisés.

LOCAL

Spécifie que le paramètre est valide pour la transaction en cours.

SEEDValeur TO

Définit une graine interne à utiliser par la RANDOM fonction pour la génération de nombres aléatoires.

SETSEEDprend une valeur numérique comprise entre 0 et 1, et multiplie ce nombre par (2 31 -1) pour l'utiliser avec la RANDOMfonction fonction. Si vous l'utilisez SET SEED avant de RANDOM passer plusieurs appels, RANDOM génère des numéros dans un ordre prévisible.

nom_paramètre

Nom du paramètre à définir. Consultez Modification de la configuration du serveur pour obtenir des informations sur les paramètres.

valeur

Nouvelle valeur de paramètre. Utilisez des guillemets simples pour définir la valeur d’une chaîne spécifique. En cas d'utilisation SETSEED, ce paramètre contient la SEED valeur.

DEFAULT

Définit le paramètre à la valeur par défaut.

Exemples

Modification d’un paramètre pour la séance en cours

L’exemple suivant définit datestyle :

set datestyle to 'SQL,DMY';

Définition d’un groupe de requêtes pour la gestion de la charge de travail

Si des groupes de requêtes sont répertoriés dans une définition de file d'attente dans le cadre de la WLM configuration du cluster, vous pouvez attribuer au GROUP paramètre QUERY _ un nom de groupe de requêtes répertorié. Les requêtes suivantes sont affectées à la file d’attente des requêtes associée. Le GROUP paramètre QUERY _ reste actif pendant toute la durée de la session ou jusqu'à ce qu'une GROUP commande RESET QUERY _ soit détectée.

Cet exemple 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 tbl, count(*)from stv_blocklist; select query, elapsed, substring from svl_qlog order by query desc limit 5; reset query_group;

Pour de plus amples informations, veuillez consulter Implémentation de la gestion de la charge de travail.

Modifier l'espace de noms d'identité par défaut pour la session

Un utilisateur de base de données peut définirdefault_identity_namespace. Cet exemple montre comment remplacer le SET SESSION paramètre pour la durée de la session en cours, puis afficher la nouvelle valeur du fournisseur d'identité. C'est le plus souvent utilisé lorsque vous utilisez un fournisseur d'identité avec Redshift et IAM Identity Center. Pour plus d'informations sur l'utilisation d'un fournisseur d'identité avec Redshift, consultez Connect Redshift à IAM Identity Center pour offrir aux utilisateurs une expérience d'authentification unique.

SET SESSION default_identity_namespace = 'MYCO'; SHOW default_identity_namespace;

Après avoir exécuté la commande, vous pouvez exécuter une GRANT instruction ou une CREATE instruction comme celle-ci :

GRANT SELECT ON TABLE mytable TO alice; GRANT UPDATE ON TABLE mytable TO salesrole; CREATE USER bob password 'md50c983d1a624280812631c5389e60d48c';

Dans ce cas, la définition de l'espace de noms d'identité par défaut équivaut à préfixer chaque identité par l'espace de noms. Dans cet exemple, alice est remplacé parMYCO:alice. Pour plus d'informations sur les paramètres relatifs à la configuration de Redshift IAM avec Identity Center, ALTER SYSTEM consultez et. ALTER IDENTITY PROVIDER

Définition d’une étiquette pour un groupe de requêtes

Le GROUP paramètre QUERY _ définit une étiquette pour une ou plusieurs requêtes exécutées au cours de la même session après une SET commande. À son tour, cette étiquette est enregistrée lorsque des requêtes sont exécutées et peut être utilisée pour restreindre les résultats renvoyés par les tables INFLIGHT système STL _ QUERY et STV _ et par la QLOG vue SVL _.

show query_group; query_group ------------- unset (1 row) set query_group to '6 p.m.'; show query_group; query_group ------------- 6 p.m. (1 row) select * from sales where salesid=500; salesid | listid | sellerid | buyerid | eventid | dateid | ... ---------+--------+----------+---------+---------+--------+----- 500 | 504 | 3858 | 2123 | 5871 | 2052 | ... (1 row) reset query_group; select query, trim(label) querygroup, pid, trim(querytxt) sql from stl_query where label ='6 p.m.'; query | querygroup | pid | sql -------+------------+-------+---------------------------------------- 57 | 6 p.m. | 30711 | select * from sales where salesid=500; (1 row)

Les étiquettes de groupe de requêtes sont un mécanisme utile pour isoler les requêtes ou groupes de requêtes exécutés dans le cadre de scripts. Vous n'avez pas besoin d'identifier et de suivre les requêtes en fonction de leurs étiquettes IDs ; vous pouvez les suivre en fonction de leurs étiquettes.

Définition d’une valeur de départ pour la génération de nombres aléatoires

L'exemple suivant utilise l'SEEDoption with SET pour que la RANDOM fonction génère des nombres dans une séquence prévisible.

Tout d'abord, renvoyez trois RANDOM entiers sans définir la SEED valeur au préalable :

select cast (random() * 100 as int); int4 ------ 6 (1 row) select cast (random() * 100 as int); int4 ------ 68 (1 row) select cast (random() * 100 as int); int4 ------ 56 (1 row)

Maintenant, définissez la SEED valeur sur.25, et renvoyez trois autres RANDOM nombres :

set seed to .25; select cast (random() * 100 as int); int4 ------ 21 (1 row) select cast (random() * 100 as int); int4 ------ 79 (1 row) select cast (random() * 100 as int); int4 ------ 12 (1 row)

Enfin, réinitialisez la SEED valeur à .25 et vérifiez que le RANDOM résultat obtenu est identique à celui des trois appels précédents :

set seed to .25; select cast (random() * 100 as int); int4 ------ 21 (1 row) select cast (random() * 100 as int); int4 ------ 79 (1 row) select cast (random() * 100 as int); int4 ------ 12 (1 row)

L’exemple suivant définit une variable contextuelle personnalisée.

SET app_context.user_id TO 123; SET app_context.user_id TO 'sample_variable_value';