Dela via


SQL-pipeline-syntax

gäller för:kryssad ja 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

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;