Sintaxis de canalización de SQL
Se aplica a: Databricks Runtime 16.2 y versiones posteriores
Azure Databricks admite la sintaxis de canalización de SQL que permite redactar consultas a partir de combinaciones de operadores encadenados.
- Cualquier consulta puede tener cero o más operadores de canalización como sufijo, separados por el carácter de canalización
|>
. - Cada operación canalizada comienza con una o varias palabras clave SQL seguidas de su propia gramática.
- Los operadores se pueden aplicar en cualquier orden, el número de veces que quiera.
- Normalmente FROM relation_name se usa para iniciar una canalización, pero cualquier query puede iniciar una canalización.
Sintaxis
{ FROM | TABLE } relation_name { |> piped_operation } [ ...]
Parámetros
-
Identifica una tabla o vista que se va a usar como entrada para la canalización. Si no se encuentra la tabla o vista, Azure Databricks genera un error TABLE_OR_VIEW_NOT_FOUND.
-
Una operación que consume la consulta o la operación de canalización anteriores. Consulte piped_operation para obtener más información.
Ejemplo
Esta es la consulta 13 de la prueba comparativa de TPC-H escrita en 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 escribir la misma lógica mediante operadores de canalización de SQL, puede expresarla de la siguiente manera:
> 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;