SQL-Pipelinesyntax
Gilt für: 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
-
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.
-
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;