Conseils de participation - AWS Clean Rooms

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Conseils de participation

Les conseils de jointure suggèrent des stratégies de jointure pour l'exécution des requêtes. La syntaxe, les arguments et quelques exemples proviennent de la référence SQL Apache Spark pour plus d'informations

DIFFUSER

Suggère d' AWS Clean Rooms utiliser la jointure par diffusion. La page de jointure contenant l'indice sera diffusée quel que soit le autoBroadcastJoin seuil. Si les deux côtés de la jointure ont des indices de diffusion, celui dont la taille est la plus petite (sur la base des statistiques) sera diffusé.

Alias : BROADCASTJOIN, MAPJOIN

Paramètres : identificateurs de table (facultatif)

Exemples :

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

Suggère d' AWS Clean Rooms utiliser le shuffle, le tri, la fusion, la jointure.

Alias : SHUFFLE_MERGE, MERGEJOIN

Paramètres : identificateurs de table (facultatif)

Exemples :

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

Suggère d' AWS Clean Rooms utiliser la jointure par hachage automatique. Si les deux côtés ont des indices de hachage combinés, l'optimiseur de requêtes choisit le côté le plus petit (basé sur les statistiques) comme côté build.

Paramètres : identificateurs de table (facultatif)

Exemples :

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

SHUFFLE_REPLICATE_FR

Suggère d' AWS Clean Rooms utiliser la jointure shuffle-and-replicate par boucle imbriquée.

Paramètres : identificateurs de table (facultatif)

Exemples :

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

Conseils de résolution des problèmes dans Spark SQL

Le tableau suivant montre les scénarios courants dans lesquels les indices ne sont pas appliqués dans SparkSQL. Pour plus d’informations, consultez Considérations et restrictions.

Cas d’utilisation Exemple de requête
Référence de table introuvable
SELECT /*+ BROADCAST(fake_table) */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;
La table ne participe pas à l'opération de jointure
SELECT /*+ BROADCAST(s) */ * FROM students s WHERE s.age > 25;
Référence de table dans une sous-requête imbriquée
SELECT /*+ BROADCAST(s) */ * FROM employees e INNER JOIN (SELECT * FROM students s WHERE s.age > 20) sub ON e.eid = sub.sid;
Nom de colonne au lieu de référence de table
SELECT /*+ BROADCAST(e.eid) */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;
Conseil sans paramètres obligatoires
SELECT /*+ BROADCAST */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;
Nom de la table de base au lieu de l'alias de la table
SELECT /*+ BROADCAST(employees) */ * FROM employees e INNER JOIN students s ON e.eid = s.sid;