Använd Python med fristående pipelines

Du kan skapa och uppdatera fristående materialiserade vyer och strömmande tabeller från en notebook-fil med hjälp av Python. Skapa din pipeline i en Python-notebook och kör den med spark.sql(). På så sätt kan du hantera fristående pipelines tillsammans med dina andra Python-baserade notebook-arbetsflöden.

Python-källkod för fristående pipelines kräver en notebook som är ansluten till serverlös generell beräkning. Du kan inte använda Python för att skapa eller uppdatera fristående pipelines från ett Databricks SQL-lager eftersom ett lager kör SQL-instruktioner, inte Python notebook-filer. Information om hur du använder ett SQL-lager finns i Använda fristående materialiserade vyer och Använd fristående strömningstabeller.

Important

Att skapa och uppdatera fristående materialiserade vyer och strömmande tabeller från en notebook på serverlös generell beräkning är i Beta och tillgängligt i utvalda regioner. Se Anteckningsböcker.

Requirements

Om du vill skapa och uppdatera fristående pipelines med Python behöver du en notebook som är ansluten till serverlös generell beräkning i Databricks Runtime 18.1 eller senare. En fullständig lista över krav, inklusive regional tillgänglighet och behörigheter, finns i Notebook-filer.

Så här fungerar det

I en Python-anteckningsbok skickar du samma satser som du skulle köra från ett Databricks SQL Warehouse till spark.sql(). Syntaxen för fristående materialiserade vyer och strömningstabeller är identisk; endast sättet du skickar instruktionen på skiljer sig åt. Precis som med ett datalager kör varje CREATE- eller REFRESH-instruktion en serverlös pipeline för att bearbeta operationen.

Sessionen spark är tillgänglig som standard i Azure Databricks notebook-filer, så ingen import krävs.

Skapa en materialiserad vy

I följande exempel skapas den materialiserade vyn mv1 från bastabellen base_table1:

spark.sql("""
  CREATE OR REPLACE MATERIALIZED VIEW mv1
  AS SELECT
    date,
    sum(sales) AS sum_of_sales
  FROM base_table1
  GROUP BY date
""")

Fullständig CREATE MATERIALIZED VIEW information, till exempel schemalagda och utlösta uppdateringar, finns i Skapa en materialiserad vy.

Skapa en direktuppspelningstabell

I följande exempel skapas strömningstabellen salesraw_data från tabellen:

spark.sql("""
  CREATE OR REFRESH STREAMING TABLE sales
  AS SELECT product, price FROM STREAM raw_data
""")

Fullständig CREATE STREAMING TABLE information, inklusive inläsning av filer med Auto Loader och schemaläggning, finns i Använda fristående strömningstabeller.

Uppdatera en materialiserad vy eller en strömmande tabell

Använd en REFRESH instruktion för att uppdatera en fristående tabell med de senaste data från källan:

spark.sql("REFRESH MATERIALIZED VIEW mv1")
spark.sql("REFRESH STREAMING TABLE sales")

Vid serverlös allmän beräkning är uppdateringar synkrona. Asynkrona uppdateringar (nyckelordet ASYNC ) stöds inte. Se Serverlös allmän beräkning.

Parametrisera satser

Om du vill skicka värden från din Python kod till en instruktion i stället för att hårdkoda dem använder du namngivna parametermarkörer i SQL och anger deras värden via args argumentet spark.sql(). Använd en markör, till exempel :min_sales direkt för literalvärden. Radbryt markören IDENTIFIER() endast när parametern är ett objektnamn, till exempel en tabell, vy eller ett schema, eftersom identifierare inte kan ersättas med vanliga strängvärden.

I följande exempel parameteriseras både det materialiserade vynamnet och ett filtervärde:

mv_name = "main.sales.regional_sales"
min_sales = 1000

spark.sql("""
  CREATE OR REPLACE MATERIALIZED VIEW IDENTIFIER(:mv)
  AS SELECT
    region,
    sum(sales) AS sum_of_sales
  FROM base_table1
  WHERE sales > :min_sales
  GROUP BY region
""", args={
  "mv": mv_name,
  "min_sales": min_sales,
})

Mer information finns i Parametermarkörer och IDENTIFIER -sats.

Kör andra instruktioner

Du kan köra valfri fristående materialiserad vy eller strömmande tabellinstruktion från en Python notebook-fil genom att skicka den till spark.sql(), inklusive instruktioner för att schemalägga uppdateringar, ändra en tabell eller släppa en tabell. Information om hur du använder materialiserade vyer och strömmande tabeller, inklusive SQL-syntax, finns i Använda fristående materialiserade vyer och Använd fristående strömningstabeller.

Limitations

Fristående materialiserade vyer och strömmande tabeller som skapats på serverlös allmän beräkning har ytterligare begränsningar, till exempel inget stöd för asynkrona uppdateringar och ingen kostnadsattribution per tabell. Den fullständiga listan finns i Serverlös allmän beräkning.

Ytterligare resurser