Delen via


SQL Pipeline-syntaxis

Van toepassing op:aangevinkt als ja 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

  • relation_name

    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.

  • doorgeluste_bewerking

    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;