SQL Pipeline-syntaxis
Van toepassing op: Databricks Runtime 16.2 en hoger
Azure Databricks biedt ondersteuning voor sql-pijplijnsyntaxis, waarmee query's kunnen worden opgesteld uit combinaties van gekoppelde operators.
- Elke query kan nul of meer pijpoperators hebben als achtervoegsel, uitgelijnd door het pijpteken
|>
. - Elke gepijpte bewerking begint met een of meer SQL-trefwoorden, gevolgd door een eigen grammatica.
- Operatoren kunnen in willekeurige volgorde en elk gewenst aantal keer worden toegepast.
- Normaal gesproken wordt FROM relation_name gebruikt om een pijplijn te starten, maar elke query een pijplijn kan starten.
Syntaxis
{ FROM | TABLE } relation_name { |> piped_operation } [ ...]
Parameters
-
Hiermee wordt een tabel of weergave geïdentificeerd die moet worden gebruikt als invoer voor de pijplijn. Als de tabel of weergave niet kan worden gevonden, genereert Azure Databricks een TABLE_OR_VIEW_NOT_FOUND fout.
-
Een bewerking die de voorgaande query- of pijpbewerking verbruikt. Zie piped_operation voor meer informatie.
Voorbeeld
Dit is query 13 uit de TPC-H benchmark die is geschreven 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;
Als u dezelfde logica wilt schrijven met behulp van SQL-pijpoperators, kunt u deze als volgt uitdrukken:
> 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;