SQL 管線語法
適用於: Databricks Runtime 16.2 及更高版本
Azure Databricks 支援 SQL 管線語法,允許從鏈結運算子的組合撰寫查詢。
- 任何查詢都可以附加零或多個管道運算子,並被管線字元 '
|>
' 分隔。 - 每個 管線操作 會以一或多個 SQL 關鍵詞開頭,然後接著其特定的語法。
- 運算子可以以任意順序、任意次數套用。
- 通常 FROM relation_name 用來啟動流水線,但任何 查詢 都可以啟動流水線。
語法
{ FROM | TABLE } relation_name { |> piped_operation } [ ...]
參數
-
識別要作為處理流程輸入的資料表或檢視表。 如果找不到數據表或檢視表,Azure Databricks 就會引發 TABLE_OR_VIEW_NOT_FOUND 錯誤。
-
使用先前查詢或管道運算的操作。 如需詳細資訊,請參閱 piped_operation。
例
這是 ANSI SQL 中所撰寫 TPC-H 基準檢驗中的查詢 13:
> 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;
若要使用 SQL 管道運算子撰寫相同的邏輯,您可以像這樣表示:
> 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;