Condividi tramite


Sintassi della pipeline SQL

Si applica a:con contrassegno di controllo 'sì' 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

  • relation_name

    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.

  • piped_operation

    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;