Partilhar via


Sintaxe do pipeline SQL

Aplica-se a:marcado como sim Databricks Runtime 16.2 e versões posteriores

O Azure Databricks dá suporte à sintaxe de pipeline SQL, que permite compor consultas a partir de combinações de operadores encadeados.

  • Qualquer consulta pode ter zero ou mais operadores de pipe como sufixo, delineado pelo caractere pipe |>.
  • Cada operação canalizada começa com uma ou mais palavras-chave SQL seguidas por sua própria gramática.
  • Os operadores podem candidatar-se 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 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 operação de pipe anterior. Consulte piped_operation para obter detalhes.

Exemplo

Esta é a consulta 13 do benchmark TPC-H escrito em 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;

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

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