Syntaxe du pipeline SQL
S’applique à : Databricks Runtime 16.2 et versions ultérieures
Azure Databricks prend en charge la syntaxe de pipeline SQL qui permet de composer des requêtes à partir de combinaisons d’opérateurs chaînés.
- Toute requête peut avoir zéro ou plusieurs opérateurs de canal en tant que suffixe, délimités par le caractère de canal
|>
. - Chaque opération redirigée commence par un ou plusieurs mots clés SQL suivis de sa propre grammaire.
- Les opérateurs peuvent s’appliquer dans n’importe quel ordre, n’importe quel nombre de fois.
- En règle générale, FROM relation_name est utilisée pour démarrer un pipeline, mais toute requête peut démarrer un pipeline.
Syntaxe
{ FROM | TABLE } relation_name { |> piped_operation } [ ...]
Paramètres
-
Identifie une table ou une vue à utiliser comme entrée pour le pipeline. Si la table ou la vue est introuvable, Azure Databricks génère une erreur TABLE_OR_VIEW_NOT_FOUND.
-
Une opération qui consomme l’opération de requête ou de pipe précédente. Pour plus d’informations, consultez piped_operation.
Exemple
Il s’agit de la requête 13 à partir du benchmark TPC-H écrit dans ANSI SQL :
> SELECT c_count, COUNT(*) AS custdist
FROM
(SELECT c_custkey, COUNT(o_orderkey) c_count
FROM customer
LEFT OUTER JOIN orders ON c_custkey = o_custkey
AND o_comment NOT LIKE '%unusual%packages%'
GROUP BY c_custkey
) AS c_orders
GROUP BY c_count
ORDER BY custdist DESC, c_count DESC;
Pour écrire la même logique à l’aide d’opérateurs de canal SQL, vous pouvez l’exprimer comme suit :
> FROM customer
|> LEFT OUTER JOIN orders ON c_custkey = o_custkey
AND o_comment NOT LIKE '%unusual%packages%'
|> AGGREGATE COUNT(o_orderkey) c_count
GROUP BY c_custkey
|> AGGREGATE COUNT(*) AS custdist
GROUP BY c_count
|> ORDER BY custdist DESC, c_count DESC;