Teilen über


SQL-Pipelinesyntax

Gilt für:Grünes Häkchen für „Ja“ Databricks Runtime 16.2 und höher

Azure Databricks unterstützt die SQL-Pipelinesyntax, die das Erstellen von Abfragen aus Kombinationen von verketteten Operatoren ermöglicht.

  • Jede Abfrage kann null oder mehr Pipe-Operatoren als Suffix aufweisen, die durch das Pipezeichen (|>) getrennt sind.
  • Jeder gepipete Vorgang beginnt mit einem oder mehreren SQL-Schlüsselwörtern, gefolgt von einer eigenen Grammatik.
  • Operatoren können in beliebiger Reihenfolge und beliebig oft angewendet werden.
  • In der Regel wird FROM relation_name verwendet, um eine Pipeline zu starten, aber eine beliebige Abfrage kann ebenfalls eine Pipeline starten.

Syntax

{ FROM | TABLE } relation_name { |> piped_operation } [ ...]

Parameter

  • relation_name

    Gibt eine Tabelle oder Ansicht an, die als Eingabe für die Pipeline verwendet werden soll. Wenn die Tabelle oder Ansicht nicht gefunden werden kann, löst Azure Databricks einen TABLE_OR_VIEW_NOT_FOUND Fehler aus.

  • piped_operation

    Ein Vorgang, der den vorhergehenden Abfrage- oder Pipevorgang verwendet. Ausführliche Informationen finden Sie unter piped_operation.

Beispiel

Dies ist Abfrage 13 aus dem in ANSI SQL geschriebenen TPC-H Benchmark:

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

Wenn Sie dieselbe Logik mithilfe von SQL-Pipeoperatoren schreiben möchten, können Sie sie wie folgt ausdrücken:

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