SET - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

SET

Imposta il valore di un parametro di configurazione del server. Utilizzate il SET comando per sovrascrivere un'impostazione solo per la durata della sessione o della transazione corrente.

Utilizza il comando RESET per restituire un parametro al valore predefinito.

È possibile modificare i parametri di configurazione del server in diversi modi. Per ulteriori informazioni, consulta Modifica della configurazione del server.

Sintassi

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

La seguente istruzione imposta il valore di una variabile di contesto di sessione.

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

Parametri

SESSION

Specifica che l'impostazione è valida per la sessione corrente. Valore predefinito.

variable_name

Specifica il nome della variabile di contesto impostata per la sessione.

La convenzione di denominazione è un nome in due parti separato da un punto, ad esempio identifier.identifier. È consentito un solo separatore di punti. Utilizzare un identificatore che segua le regole standard degli identificatori per Amazon Redshift Per ulteriori informazioni, consulta Nomi e identificatori. Gli identificativi delimitati non sono ammessi.

LOCAL

Specifica che l'impostazione è valida per la transazione corrente.

SEEDValore TO

Imposta un seme interno che deve essere utilizzato dalla RANDOM funzione per la generazione di numeri casuali.

SETSEEDprende un valore numerico compreso tra 0 e 1 e moltiplica questo numero per (2 31 -1) per utilizzarlo con la RANDOMfunzione funzione. Se lo usi SET SEED prima di effettuare più RANDOM chiamate, RANDOM genera numeri in una sequenza prevedibile.

parameter_name

Nome del parametro da impostare. Per informazioni sui parametri, vedi Modifica della configurazione del server.

value

Nuovo valore del parametro. Utilizza le virgolette singole per impostare il valore su una stringa specifica. Se utilizzato SETSEED, questo parametro contiene il SEED valore.

DEFAULT

Imposta il parametro sul valore predefinito.

Esempi

Modifica di un parametro per la sessione corrente

L'esempio seguente imposta il datestyle:

set datestyle to 'SQL,DMY';

Impostazione di un gruppo di query per la gestione dei carichi di lavoro

Se i gruppi di query sono elencati in una definizione di coda come parte della WLM configurazione del cluster, è possibile impostare il GROUP parametro QUERY _ su un nome di gruppo di query elencato. Le query successive vengono assegnate alla coda di query associata. L'GROUPimpostazione QUERY _ rimane attiva per tutta la durata della sessione o fino a quando non viene rilevato un GROUP comando RESET QUERY _.

Questo esempio esegue due query come parte del gruppo di query 'priority', quindi reimposta il gruppo di query.

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;

Per ulteriori informazioni, consulta Implementazione della gestione del carico di lavoro.

Modifica lo spazio dei nomi di identità predefinito per la sessione

Un utente del database può impostare. default_identity_namespace Questo esempio mostra come utilizzare SET SESSION per sovrascrivere l'impostazione per la durata della sessione corrente e quindi mostrare il nuovo valore del provider di identità. Viene utilizzato più comunemente quando si utilizza un provider di identità con Redshift e IAM Identity Center. Per ulteriori informazioni sull'utilizzo di un provider di identità con Redshift, consulta Connect Redshift with IAM Identity Center per offrire agli utenti un'esperienza Single Sign-On.

SET SESSION default_identity_namespace = 'MYCO'; SHOW default_identity_namespace;

Dopo aver eseguito il comando, puoi eseguire un'GRANTistruzione o un'CREATEistruzione come la seguente:

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

In questo caso, l'effetto dell'impostazione dello spazio dei nomi di identità predefinito equivale a anteporre lo spazio dei nomi a ogni identità. In questo esempio, viene sostituito da. alice MYCO:alice Per ulteriori informazioni sulle impostazioni relative alla configurazione di Redshift IAM con Identity Center, ALTER SYSTEM vedere e. ALTER IDENTITY PROVIDER

Impostazione di un'etichetta per un gruppo di query

Il GROUP parametro QUERY _ definisce un'etichetta per una o più query eseguite nella stessa sessione dopo un comando. SET A sua volta, questa etichetta viene registrata quando vengono eseguite le query e può essere utilizzata per vincolare i risultati restituiti dalle tabelle di INFLIGHT sistema STL _ QUERY e STV _ e dalla vista _. SVL QLOG

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)

Le etichette dei gruppi di query sono un meccanismo utile per isolare singole query o gruppi di query eseguite come parte degli script. Non è necessario identificare e tenere traccia delle interrogazioni in base alle loro etichetteIDs; è possibile tracciarle tramite le relative etichette.

Impostazione di un valore di seed per la generazione di numeri casuali

L'esempio seguente utilizza l'SEEDopzione with SET per far sì che la RANDOM funzione generi numeri in una sequenza prevedibile.

Innanzitutto, restituisci tre RANDOM numeri interi senza impostare prima il SEED valore:

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)

Ora, imposta il SEED valore su .25 e restituisci altri tre RANDOM numeri:

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)

Infine, reimposta il SEED valore su .25 e verifica che RANDOM restituisca gli stessi risultati delle tre chiamate precedenti:

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)

Nell'esempio seguente viene impostata una variabile di contesto personalizzata.

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