Compartilhar via


Sintaxe do Pipeline SQL

Aplica-se a:com marcação de verificação sim Databricks Runtime 16.2 e posteriores

O Azure Databricks dá suporte à sintaxe de pipeline do SQL que permite a composição de consultas de combinações de operadores encadeados.

  • Qualquer consulta pode ter nenhum ou mais operadores de pipe como sufixo, delimitados pelo caractere de pipe |>.
  • Cada operação encanada começa com uma ou mais palavras-chave SQL seguidas pela própria gramática.
  • Os operadores podem se aplicar em qualquer ordem qualquer número de vezes.
  • Normalmente, FROM relation_name é usado para iniciar um pipeline, mas qualquer consulta pode iniciar um pipeline.

Sintaxe

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

Parâmetros

  • relation_name

    Identifica uma tabela ou exibição a ser usada como a entrada para o pipeline. Se a tabela ou exibição não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND.

  • piped_operation

    Uma operação que consome a consulta ou a operação de pipe anterior. Confira piped_operation para obter detalhes.

Exemplo

Essa é a consulta 13 do parâmetro de comparação TPC-H escrito no SQL ANSI:

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

Para escrever a mesma lógica usando operadores de pipe SQL, você pode expressá-la desta forma:

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