Únase a las sugerencias - AWS Clean Rooms

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.

Únase a las sugerencias

Los consejos de unión sugieren estrategias de unión para la ejecución de consultas. La sintaxis, los argumentos y algunos ejemplos provienen de la referencia SQL de Apache Spark para obtener más información

EMISIÓN

Sugiere AWS Clean Rooms utilizar broadcast join. La parte de unión con la sugerencia se emitirá independientemente del autoBroadcastJoin umbral. Si ambos lados de la unión tienen las sugerencias emitidas, se emitirá la que tenga el tamaño más pequeño (según las estadísticas).

Alias: BROADCASTJOIN, MAPJOIN

Parámetros: identificadores de tabla (opcionales)

Ejemplos:

-- Broadcast a specific table SELECT /*+ BROADCAST(students) */ e.name, s.course FROM employees e JOIN students s ON e.id = s.id; -- Broadcast multiple tables SELECT /*+ BROADCASTJOIN(s, d) */ * FROM employees e JOIN students s ON e.id = s.id JOIN departments d ON e.dept_id = d.id;

MERGE

Sugiere que se AWS Clean Rooms utilice la combinación, la ordenación, la combinación y la combinación.

Alias: SHUFFLE_MERGE, MERGEJOIN

Parámetros: identificadores de tabla (opcionales)

Ejemplos:

-- Use merge join for a specific table SELECT /*+ MERGE(employees) */ * FROM employees e JOIN students s ON e.id = s.id; -- Use merge join for multiple tables SELECT /*+ MERGEJOIN(e, s, d) */ * FROM employees e JOIN students s ON e.id = s.id JOIN departments d ON e.dept_id = d.id;

SHUFFLE_HASH

Sugiere AWS Clean Rooms usar shuffle hash join. Si ambos lados tienen las sugerencias de mezcla aleatoria, el optimizador de consultas elige el lado más pequeño (según las estadísticas) como el lado de construcción.

Parámetros: identificadores de tabla (opcionales)

Ejemplos:

-- Use shuffle hash join SELECT /*+ SHUFFLE_HASH(students) */ * FROM employees e JOIN students s ON e.id = s.id;

SHUFFLE_REPLICATE_NL

Sugiere utilizar una unión de bucles anidada. AWS Clean Rooms shuffle-and-replicate

Parámetros: identificadores de tabla (opcionales)

Ejemplos:

-- Use shuffle-replicate nested loop join SELECT /*+ SHUFFLE_REPLICATE_NL(students) */ * FROM employees e JOIN students s ON e.id = s.id;

Consejos para la solución de problemas en Spark SQL

La siguiente tabla muestra situaciones comunes en las que no se aplican sugerencias en SparkSQL. Para obtener información adicional, consulta Consideraciones y limitaciones.

Caso de uso Consulta de ejemplo
No se encontró la referencia de la tabla
SELECT /*+ BROADCAST(fake_table) */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;
La tabla no participa en la operación de unión
SELECT /*+ BROADCAST(s) */ * FROM students s WHERE s.age > 25;
Referencia de tabla en una subconsulta anidada
SELECT /*+ BROADCAST(s) */ * FROM employees e INNER JOIN (SELECT * FROM students s WHERE s.age > 20) sub ON e.eid = sub.sid;
Nombre de columna en lugar de referencia de tabla
SELECT /*+ BROADCAST(e.eid) */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;
Sugerencia sin los parámetros necesarios
SELECT /*+ BROADCAST */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;
Nombre de la tabla base en lugar del alias de la tabla
SELECT /*+ BROADCAST(employees) */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;