Udostępnij za pośrednictwem


Składnia potoku SQL

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks Runtime 16.2 lub nowsze

Usługa Azure Databricks obsługuje składnię potoku SQL, która umożliwia tworzenie zapytań z kombinacji operatorów łańcuchowych.

  • Każde zapytanie może mieć zero lub więcej operatorów potoku jako sufiks, oddzielony znakiem potoku |>.
  • Każda operacja potokowa rozpoczyna się od jednego lub więcej słów kluczowych SQL, po czym następuje jej własna składnia.
  • Operatory mogą być stosowane w dowolnej kolejności, dowolną liczbę razy.
  • Zazwyczaj z relation_name służy do uruchamiania potoku, ale dowolne zapytanie może uruchomić potok.

Składnia

{ FROM | TABLE } relation_name { |> piped_operation } [ ...]

Parametry

  • nazwa_relacji

    Identyfikuje tabelę lub widok, który ma być używany jako dane wejściowe dla potoku. Jeśli nie można odnaleźć tabeli lub widoku, usługa Azure Databricks zgłasza błąd TABLE_OR_VIEW_NOT_FOUND.

  • operacja_rur

    Operacja zużywająca poprzednią operację zapytania lub potoku. Aby uzyskać szczegółowe informacje, zobacz piped_operation.

Przykład

Jest to zapytanie 13 z testu porównawczego TPC-H napisanego w usłudze 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;

Aby napisać tę samą logikę przy użyciu operatorów potoków SQL, możesz wyrazić to w następujący sposób:

> 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;