Junte dicas - AWS Clean Rooms

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Junte dicas

As dicas de junção sugerem estratégias de junção para execução de consultas. A sintaxe, os argumentos e alguns exemplos vêm da Referência SQL do Apache Spark para obter mais informações

TRANSMISSÃO

Sugere que AWS Clean Rooms use broadcast join. O lado de junção com a dica será transmitido independentemente do autoBroadcastJoin limite. Se os dois lados da junção tiverem as dicas de transmissão, aquele com o tamanho menor (com base nas estatísticas) será transmitido.

Pseudônimos: BROADCASTJOIN, MAPJOIN

Parâmetros: identificadores de tabela (opcional)

Exemplos:

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

Sugere que AWS Clean Rooms use shuffle sort merge join.

Pseudônimos: SHUFFLE_MERGE, MERGEJOIN

Parâmetros: identificadores de tabela (opcional)

Exemplos:

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

Sugere que AWS Clean Rooms use shuffle hash join. Se os dois lados tiverem dicas de hash aleatórias, o otimizador de consultas escolherá o lado menor (com base nas estatísticas) como o lado da construção.

Parâmetros: identificadores de tabela (opcional)

Exemplos:

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

SHUFFLE_REPLICATE_NL

Sugere o AWS Clean Rooms uso de junção de loop shuffle-and-replicate aninhado.

Parâmetros: identificadores de tabela (opcional)

Exemplos:

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

Dicas de solução de problemas no Spark SQL

A tabela a seguir mostra cenários comuns em que as dicas não são aplicadas no SparkSQL. Para obter informações adicionais, consulte Considerações e limitações.

Caso de uso Exemplo de consulta
Referência de tabela não encontrada
SELECT /*+ BROADCAST(fake_table) */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;
Mesa que não participa da operação de junção
SELECT /*+ BROADCAST(s) */ * FROM students s WHERE s.age > 25;
Referência de tabela na subconsulta aninhada
SELECT /*+ BROADCAST(s) */ * FROM employees e INNER JOIN (SELECT * FROM students s WHERE s.age > 20) sub ON e.eid = sub.sid;
Nome da coluna em vez da referência da tabela
SELECT /*+ BROADCAST(e.eid) */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;
Dica sem parâmetros obrigatórios
SELECT /*+ BROADCAST */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;
Nome da tabela base em vez do alias da tabela
SELECT /*+ BROADCAST(employees) */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;