

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# SET
<a name="r_SET"></a>

Establece el valor de un parámetro de configuración de un servidor. Utilice el comando SET para invalidar un valor solo mientras dure la sesión o la transacción actual.

Utilice el comando [RESET](r_RESET.md) para devolver un parámetro a su valor predeterminado. 

Puede cambiar los parámetros de configuración del servidor de varias maneras. Para obtener más información, consulte [Modificación de la configuración del servidor](cm_chap_ConfigurationRef.md#t_Modifying_the_default_settings). 

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

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

La siguiente instrucción establece el valor de una variable de contexto de sesión.

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

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

SESSION   
Especifica que el ajuste es válido para la sesión actual. Valor predeterminado.

*variable\_name*   
Especifica el nombre del conjunto de variables de contexto de la sesión.  
La convención de nomenclatura es un nombre de dos partes separado por un punto, por ejemplo *identificador.identificador*. Solo se permite un punto de separador. Utilice un *identificador* que sigue las reglas de identificador estándar de Amazon Redshift Para obtener más información, consulte [Nombres e identificadores](r_names.md). No se permiten identificadores delimitados.

LOCAL   
Especifica que el ajuste es válido para la transacción actual. 

SEED TO *value (valor)*   
Establece el uso de un inicio interno de la función RANDOM para la generación aleatoria de números.  
SET SEED toma un *valor* numérico comprendido entre 0 y 1, y lo multiplica por (231-1) para utilizarlo con la función [Función RANDOM](r_RANDOM.md). Si utiliza SET SEED antes de realizar varias ejecuciones RANDOM, RANDOM genera números en una secuencia predecible.

 *parameter\_name*   
Nombre del parámetro que se debe establecer. Para obtener información acerca de los parámetros, consulte [Modificación de la configuración del servidor](cm_chap_ConfigurationRef.md#t_Modifying_the_default_settings).

 *valor de*   
Nuevo valor del parámetro. Utilice comillas simples para establecer el valor en una cadena específica. Si utiliza SET SEED, este parámetro contiene el valor SEED. 

DEFAULT   
Establece el parámetro al valor predeterminado.

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

 **Cambio de un parámetro en la sesión actual** 

En el siguiente ejemplo, se establece el estilo de fecha:

```
set datestyle to 'SQL,DMY';
```

 **Establecimiento de un grupo de consultas para la administración de cargas de trabajo** 

Si los grupos de consultas están enumerados en la definición de una cola como parte de la configuración WLM del clúster, puede establecer el parámetro QUERY\_GROUP con el nombre de un grupo de consultas enumerado. Las consultas posteriores se asignan a la cola de la consulta asociada. El ajuste QUERY\_GROUP permanece en vigor durante la sesión o hasta que se aplica un comando RESET QUERY\_GROUP.

Este ejemplo ejecuta dos consultas como parte de la "prioridad" del grupo de consultas y, luego, restablece el grupo de consultas. 

```
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;
```

Para obtener más información, consulte [Administración de la carga de trabajo](cm-c-implementing-workload-management.md). 

 **Cambio del espacio de nombres de identidad predeterminado para la sesión** 

Un usuario de la base de datos puede establecer `default_identity_namespace`. En este ejemplo, se muestra cómo usar `SET SESSION` para invalidar la configuración durante la sesión actual y, a continuación, mostrar el nuevo valor del proveedor de identidades. Esto se utiliza con más frecuencia cuando utiliza un proveedor de identidades con Redshift e IAM Identity Center. Para obtener más información sobre cómo usar un proveedor de identidades con Redshift, consulte [Conectar Redshift con IAM Identity Center para ofrecer a los usuarios una experiencia de inicio de sesión único](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;
```

Tras ejecutar el comando, puede ejecutar una instrucción GRANT o CREATE como la siguiente:

```
GRANT SELECT ON TABLE mytable TO alice;

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

En este caso, el efecto de establecer el espacio de nombres de identidad predeterminado equivale a anteponer cada identidad con el espacio de nombres. En este ejemplo, `alice` se sustituye por `MYCO:alice`. Para obtener más información acerca de los ajustes relacionados con la configuración de Redshift con IAM Identity Center, consulte [ALTER SYSTEM](r_ALTER_SYSTEM.md) y [MODIFICAR PROVEEDOR DE IDENTIDADES](r_ALTER_IDENTITY_PROVIDER.md).

 **Establecimiento de una etiqueta para un grupo de consultas** 

El parámetro QUERY\_GROUP define una etiqueta para una o más consultas que se ejecutan en la misma sesión después de un comando SET. A su vez, se registra esta etiqueta cuando se ejecutan las consultas y se puede utilizar para limitar los resultados que devuelven las tablas de sistema STL\_QUERY y STV\_INFLIGHT, además de la 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)
```

Las etiquetas del grupo de consultas son un mecanismo útil para aislar consultas individuales o grupos de consultas que se ejecutan como parte de scripts. No es necesario identificar y rastrear las consultas por sus ID; puede rastrearlas por sus etiquetas.

 **Establecimiento de un valor de inicio para la generación aleatoria de números** 

En el siguiente ejemplo, se utiliza la opción SEED con SET para que la función RANDOM genere números en una secuencia predecible.

Primero, se devuelven tres valores enteros RANDOM sin establecer antes el valor 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)
```

Ahora, establezca el valor SEED en `.25` y devuelva tres números RANDOM más: 

```
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)
```

Finalmente, restablezca el valor SEED a `.25` y verifique que RANDOM devuelva los mismos resultados que en las tres ejecuciones anteriores: 

```
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)
```

En el siguiente ejemplo, se establece una variable de contexto personalizada. 

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