Partager via


Syntaxe du pipeline SQL

S’applique à :case cochée oui 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

  • relation_name

    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.

  • piped_operation

    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;