Sintassi della pipeline SQL
Si applica a: Databricks Runtime 16.2 e versioni successive
Azure Databricks supporta la sintassi della pipeline SQL che consente di comporre query da combinazioni di operatori concatenati.
- Qualsiasi query può avere zero o più operatori pipe come suffisso, delineati dal carattere pipe
|>
. - Ogni operazione canalizzata inizia con una o più parole chiave SQL, seguite dalla propria grammatica.
- Gli operatori possono essere applicati in qualsiasi ordine, qualsiasi numero di volte.
- In genere, FROM relation_name viene usato per avviare una pipeline, ma qualsiasi query può avviare una pipeline.
Sintassi
{ FROM | TABLE } relation_name { |> piped_operation } [ ...]
Parametri
-
Identifica una tabella o una vista da usare come input per la pipeline. Se non è possibile trovare la tabella o la vista, Azure Databricks genera un errore di TABLE_OR_VIEW_NOT_FOUND.
-
Operazione che utilizza la query o l'operazione pipe precedente. Per informazioni dettagliate, vedere piped_operation.
Esempio
Si tratta della query 13 dal benchmark TPC-H scritto in 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;
Per scrivere la stessa logica usando gli operatori di pipe SQL, è possibile esprimerla come segue:
> 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;