

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Sugerencias de particionamiento
<a name="partitioning-hints"></a>

Las sugerencias de particionamiento controlan la distribución de datos entre los nodos ejecutores. Cuando se especifican varias sugerencias de partición, se insertan varios nodos en el plan lógico, pero el optimizador selecciona la sugerencia situada más a la izquierda.

### COALESCE
<a name="coalesce-hint"></a>

Reduce el número de particiones al número de particiones especificado.

*Parámetros:* valor numérico (obligatorio): debe ser un número entero positivo comprendido entre 1 y 2147483647

*Ejemplos*:

```
-- Reduce to 5 partitions
SELECT /*+ COALESCE(5) */ employee_id, salary
FROM employees;
```

### REPARTICIÓN
<a name="repartition-hint"></a>

Redivide los datos en el número especificado de particiones mediante las expresiones de partición especificadas. Utiliza una distribución por turnos.

*Parámetros:*
+ Valor numérico (opcional): número de particiones; debe ser un entero positivo entre 1 y 2147483647
+ Identificadores de columna (opcionales): columnas por las que realizar la partición; estas columnas deben existir en el esquema de entrada.
+ Si se especifican ambos, el valor numérico debe ser lo primero

*Ejemplos*:

```
-- Repartition to 10 partitions
SELECT /*+ REPARTITION(10) */ *
FROM employees;

-- Repartition by column
SELECT /*+ REPARTITION(department) */ *
FROM employees;

-- Repartition to 8 partitions by department
SELECT /*+ REPARTITION(8, department) */ *
FROM employees;

-- Repartition by multiple columns
SELECT /*+ REPARTITION(8, department, location) */ *
FROM employees;
```

### REPARTICIÓN\$1POR\$1RANGO
<a name="repartition-by-range-hint"></a>

Redivide los datos en el número especificado de particiones mediante la partición por rangos en las columnas especificadas.

*Parámetros:*
+ Valor numérico (opcional): número de particiones; debe ser un entero positivo entre 1 y 2147483647
+ Identificadores de columna (opcionales): columnas por las que realizar la partición; estas columnas deben existir en el esquema de entrada.
+ Si se especifican ambos, el valor numérico debe ser lo primero

*Ejemplos*:

```
SELECT /*+ REPARTITION_BY_RANGE(10) */ *
FROM employees;

-- Repartition by range on age column
SELECT /*+ REPARTITION_BY_RANGE(age) */ *
FROM employees;

-- Repartition to 5 partitions by range on age
SELECT /*+ REPARTITION_BY_RANGE(5, age) */ *
FROM employees;

-- Repartition by range on multiple columns
SELECT /*+ REPARTITION_BY_RANGE(5, age, salary) */ *
FROM employees;
```

### REEQUILIBRAR
<a name="rebalance-hint"></a>

Reequilibra las particiones de salida de los resultados de la consulta para que cada partición tenga un tamaño razonable (ni demasiado pequeña ni demasiado grande). Se trata de una operación que se realiza con el máximo esfuerzo: si hay sesgos, AWS Clean Rooms dividirá las particiones asimétricas para que no sean demasiado grandes. Esta sugerencia resulta útil cuando se necesita escribir el resultado de una consulta en una tabla para evitar archivos demasiado pequeños o demasiado grandes.

*Parámetros:*
+ Valor numérico (opcional): número de particiones; debe ser un entero positivo entre 1 y 2147483647
+ Identificadores de columna (opcionales): las columnas deben aparecer en la lista de resultados SELECT
+ Si se especifican ambos, el valor numérico debe figurar primero

*Ejemplos*:

```
-- Rebalance to 10 partitions
SELECT /*+ REBALANCE(10) */ employee_id, name
FROM employees;

-- Rebalance by specific columns in output
SELECT /*+ REBALANCE(employee_id, name) */ employee_id, name
FROM employees;

-- Rebalance to 8 partitions by specific columns
SELECT /*+ REBALANCE(8, employee_id, name) */ employee_id, name, department
FROM employees;
```