Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.