

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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
<a name="r_SET"></a>

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

Utilizza il comando [RESET](r_RESET.md) 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](cm_chap_ConfigurationRef.md#t_Modifying_the_default_settings). 

## Sintassi
<a name="r_SET-synopsis"></a>

```
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'  }
```

## Parameters
<a name="r_SET-parameters"></a>

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

*variable\$1name*   
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](r_names.md). Gli identificativi delimitati non sono ammessi.

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

SEED TO *value*   
Imposta un seed interno che deve essere utilizzata dalla funzione RANDOM per la generazione di numeri casuali.  
SET SEED accetta un *valore* numerico compreso tra 0 e 1 e moltiplica questo numero per (231-1) per l'uso con la funzione [Funzione RANDOM](r_RANDOM.md). Se utilizzi SET SEED prima di effettuare più chiamate RANDOM, RANDOM genera numeri in una sequenza prevedibile.

 *parameter\$1name*   
Nome del parametro da impostare. Per informazioni sui parametri, vedi [Modifica della configurazione del server](cm_chap_ConfigurationRef.md#t_Modifying_the_default_settings).

 *value*   
Nuovo valore del parametro. Utilizza le virgolette singole per impostare il valore su una stringa specifica. Se si utilizza SET SEED, questo parametro contiene il valore SEED. 

DEFAULT   
Imposta il parametro sul valore predefinito.

## Esempi
<a name="r_SET-examples"></a>

 **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 configurazione WLM del cluster, puoi impostare il parametro QUERY\$1GROUP su un nome di gruppo di query elencato. Le query successive vengono assegnate alla coda di query associata. L'impostazione di QUERY\$1GROUP rimane valida per la durata della sessione o finché non viene rilevato un comando RESET QUERY\$1GROUP.

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 [Gestione dei carichi di lavoro](cm-c-implementing-workload-management.md). 

 **Modifica il namespace 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 utilizzi un provider di identità con Redshift e Centro identità IAM. Per ulteriori informazioni sull’utilizzo di un provider di identità con Redshift, consulta [Connessione di Redshift a Centro identità IAM per offrire agli utenti un’esperienza di single sign-on](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-idp-connect.html).

```
SET SESSION default_identity_namespace = 'MYCO';
         
SHOW default_identity_namespace;
```

Dopo avere eseguito il comando, puoi utilizzare un’istruzione GRANT o un’istruzione CREATE 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 del namespace di identità predefinito equivale ad anteporre il namespace a ogni identità. In questo esempio, `alice` viene sostituito da `MYCO:alice`. Per ulteriori informazioni sulle impostazioni relative alla configurazione di Redshift con Centro identità IAM, consulta [ALTER SYSTEM](r_ALTER_SYSTEM.md) e [ALTER IDENTITY PROVIDER](r_ALTER_IDENTITY_PROVIDER.md).

 **Impostazione di un'etichetta per un gruppo di query** 

Il parametro QUERY\$1GROUP 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 limitare i risultati restituiti dalle tabelle di sistema STL\$1QUERY e STV\$1INFLIGHT e dalla vista SVL\$1QLOG. 

```
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 tracciare le query in base alle loro etichette IDs; puoi tracciarle in base alle loro etichette.

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

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

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

```
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 impostare il valore SEED su `.25`, e restituire altri tre numeri RANDOM: 

```
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, ripristinare il valore SEED su `.25`, e verificare 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';
```