SQL パイプラインの構文
適用対象: Databricks Runtime 16.2 以降
Azure Databricks では、チェーン演算子の組み合わせからクエリを作成できる SQL パイプライン構文がサポートされています。
- どのクエリでも、サフィックスとして 0 個以上のパイプ演算子を使用でき、パイプ文字
|>
で区切られます。 - 各 パイプ処理 は、1つ以上の 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;