SQL-pipeline-syntax
gäller för: Databricks Runtime 16.2 och senare
Azure Databricks stöder SQL-pipelinesyntax som gör det möjligt att skapa frågor från kombinationer av länkade operatorer.
- Alla frågor kan ha noll eller fler rörledare som ett suffix, avgränsade med pipe-tecknet
|>
. - Varje piped-åtgärd börjar med ett eller flera SQL-nyckelord följt av sin egen grammatik.
- Operatörer kan tillämpas i valfri ordning och valfritt antal gånger.
- Vanligtvis används FROM relation_name för att starta en pipeline, men alla sökfrågor kan starta en pipeline.
Syntax
{ FROM | TABLE } relation_name { |> piped_operation } [ ...]
Parametrar
-
Identifierar en tabell eller vy som ska användas som indata för pipelinen. Om tabellen eller vyn inte kan hittas genererar Azure Databricks ett TABLE_OR_VIEW_NOT_FOUND fel.
-
En åtgärd som använder föregående fråga eller pipe-åtgärd. Se piped_operation för detaljer.
Exempel
Det här är fråga 13 från TPC-H benchmark som skrivits i 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;
Om du vill skriva samma logik med hjälp av SQL-pipeoperatorer kan du uttrycka den så här:
> 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;