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.
Lakeflow-pipelines tillhandahåller ett deklarativt ramverk för att skapa batch- och strömmande datapipelines i SQL och Python. Deras centrala begrepp är pipelines, flöden, strömmande tabeller, materialiserade vyer och sinkar, som samverkar för att bearbeta data med automatisk orkestrering och inkrementella uppdateringar.
Lakeflow pipelines utökar Apache Spark™ deklarativa datapipelines (SDP). Om du vill veta mer om SDP och hur det står sig jämfört med Lakeflow-pipelines, se Apache Spark Declarative Pipelines.
Tip
Är du ny med pipelines? Börja med Hur man använder Lakeflow-pipelines för att förstå hur du använder pipelines genom hela deras livscykel, och varför, med länkar till uppgifterna i varje steg.
Note
Lakeflow-pipelines kräver Premium-planen. Kontakta databricks-kontoteamet om du vill ha mer information.
Vilka är fördelarna med pipelines?
Till skillnad från att utveckla dataingenjörsprocesser med API:erna Apache Spark och Spark Structured Streaming i Databricks Runtime med manuell orkestrering via Lakeflow-jobb ger pipelinernas deklarativa natur följande fördelar:
- Automatisk orkestrering: Pipelines kör bearbetningssteg (kallas "flöden") i rätt ordning med maximal parallellitet och försöker igen tillfälliga fel progressivt – från Spark-aktiviteten till flödet till hela pipelinen.
- Deklarativ bearbetning: Deklarativa funktioner minskar hundratals rader med manuell Spark- och Structured Streaming-kod till några få. AUTO CDC API:et hanterar CDC-händelser (Change Data Capture), inklusive SCD typ 1 och typ 2, utan manuell kod för händelser i fel ordning eller strömningskoncept som watermarks.
- Inkrementell bearbetning: En inkrementell bearbetningsmotor håller materialiserade vyer aktuella: du skriver transformeringslogik med batchsemantik och motorn bearbetar endast nya eller ändrade källdata när det är möjligt.
Viktiga begrepp
Diagrammet nedan illustrerar de viktigaste begreppen för pipelines.
Datauppsättningar
En pipeline producerar tre typer av datauppsättningar, var och en med olika bearbetningssemantik:
| Datasettyp | Hur poster bearbetas |
|---|---|
| Direktuppspelningstabell | Varje post bearbetas precis en gång, förutsatt att källan endast tillåter tillägg. Strömmande tabeller lämpar sig för inmatning och inkrementell bearbetning av kontinuerligt växande data. |
| Materialiserad vy | Resultaten omberäknas efter behov för att återspegla datans aktuella tillstånd. Materialiserade vyer lämpar sig för transformeringar, aggregeringar eller förberäkningsresultat som används av flera nedströmsdatauppsättningar. |
| View | Utvärderas på begäran, inte beständiga. Använd vyer för mellanliggande transformeringar och kontroller som inte behöver publiceras i en katalog. |
En strömmande tabell är en form av hanterad Unity Catalog-tabell som också är ett mål för strömmande data. En strömmande tabell kan ha ett eller flera strömmande flöden (Append, AUTO CDC) inskrivna i den. Du kan definiera strömningsflöden uttryckligen och separat från deras målströmningstabell, eller underförstått som en del av definitionen av en strömningstabell.
En materialiserad vy är också en form av hanterad tabell i Unity Catalog och är ett batchmål. En materialiserad vy kan ha ett eller flera materialiserade vyflöden inskrivna i den. Materialiserade vyer skiljer sig från strömmande tabeller eftersom du alltid definierar flödena implicit som en del av den materialiserade vydefinitionen.
Mer information finns i streamingtabeller och materialiserade vyer.
När du ska använda vyer, materialiserade vyer och strömmande tabeller
När du implementerar pipelinefrågor väljer du den datauppsättningstyp som passar bäst för ditt användningsfall.
Överväg att använda en vy för att:
- Dela upp en stor eller komplex fråga i enklare att hantera frågor.
- Verifiera mellanliggande resultat med hjälp av förväntningar.
- Minska lagrings- och beräkningskostnader för resultat som du inte behöver behålla. Eftersom tabeller materialiseras behöver de ytterligare beräknings- och lagringsresurser.
Överväg att använda en materialiserad vy när:
- Flera nedströmsförfrågningar använder tabellen. Eftersom en materialiserad vy cachelagrar resultatet läser underordnade frågor de förberäknade resultaten i stället för att beräkna frågan på nytt för varje åtkomst.
- Andra pipelines, jobb eller frågor konsumerar databastabellen. Eftersom en materialiserad vy materialiseras till en Unity Catalog-tabell kan konsumenter utanför pipelinen som definierar den köra frågor mot den. Vyer materialiseras inte, så du kan bara använda dem i samma pipeline.
- Du vill granska resultatet av en fråga under utvecklingen. Eftersom en materialiserad vy materialiseras och kan efterfrågas utanför pipelinen kan du verifiera korrektheten i beräkningar under utvecklingen. När du har verifierat konverterar du frågor som inte kräver materialisering till vyer.
- Din fråga utför aggregeringar eller kopplingar, eller så kan källdata ändras på grund av uppdateringar och borttagningar i stället för att bara växa. En materialiserad vy håller sina resultat i linje med det aktuella tillståndet för källdata, medan en strömmande tabell är utformad för källor som endast tillåter tillägg och bearbetar varje post endast en gång.
Överväg att använda en streamingtabell när:
- En fråga definieras mot en datakälla som växer kontinuerligt eller inkrementellt.
- Frågeresultat bör beräknas stegvis.
- Pipelinen behöver högt dataflöde och låg svarstid.
Note
Strömmande tabeller definieras alltid utifrån strömmande källor. Du kan också använda strömmande källor med AUTO CDC ... INTO för att tillämpa uppdateringar från CDC-flöden. Se API:er för AUTOMATISK CDC: Förenkla insamling av ändringsdata med pipelines.
Flows
Ett flöde är det grundläggande databehandlingskonceptet i pipelines och stöder både strömning och batchsemantik. Ett flöde läser data från en källa, tillämpar användardefinierad bearbetningslogik och skriver resultatet till ett mål. Pipelines delar samma typ av direktuppspelningsflöde (Tillägg, Uppdatering, Slutförd) som Spark Structured Streaming. (För närvarande är det bara tilläggs- och uppdateringsflödena som exponeras.) Mer information finns i utdatalägen i Strukturerad direktuppspelning.
Pipelines tillhandahåller även ytterligare flödestyper:
- AUTO CDC är ett unikt strömningsflöde i Lakeflow-pipelines som hanterar CDC-händelser utan ordning och stöder både SCD Typ 1 och SCD Typ 2. Automatisk CDC är inte tillgängligt i SDP.
- Materialiserad vy är ett batchflöde i pipelines som endast bearbetar nya data och ändringar i källtabellerna när det är möjligt.
Mer information finns i Läsa in och bearbeta data stegvis med Lakeflow-pipelineflöden.
Sinks
En sänkpunkt är ett strömningsmål för en pipeline och stöder Delta-tabeller, ämnesområden i Apache Kafka, ämnesområden i Azure EventHubs och anpassade Python-datakällor. En mottagare kan ha en eller flera direktuppspelningsflöden (Tillägg, Uppdatering) inskrivna i den.
Mer information finns i Sinks i Lakeflow-pipelines.
Pipelines
En pipeline är utvecklings- och körningsenheten och är containern för de flöden, strömmande tabeller, materialiserade vyer och mottagare som du definierar. Du skapar en pipeline genom att definiera dessa objekt i pipelinens källkod och sedan köra pipelinen. När pipelinen körs analyserar den beroendena för dina definierade objekt och samordnar deras körningsordning och parallellisering automatiskt.
Mer information finns i Vad är pipelines?.
Du kan också definiera fristående materialiserade vyer och strömmande tabeller utanför en Lakeflow-pipeline, där Azure Databricks hanterar pipelinen åt dig. För att jämföra de två metoderna, se Fristående pipelines kontra Lakeflow-pipelines.
En pipeline körs antingen i triggat eller kontinuerligt läge, vilket styr om den uppdaterar tillgänglig data och stoppar eller håller tabellerna färska när ny data anländer. För att jämföra de två lägena, se Utlöst kontra kontinuerligt pipeline-läge.
Datainsamling
Pipelines stöder alla datakällor som är tillgängliga i Azure Databricks. Databricks rekommenderar att du använder strömningstabeller för de flesta inmatningsanvändningsfall. För filer i molnbaserad objektlagring erbjuder Auto Loader inkrementell och idempotent inläsning. För strömmande data kan pipelines hämta in data direkt från meddelandebussar som Apache Kafka, Azure Event Hubs, Amazon Kinesis och Google Pub/Sub. Se avsnittet Läsa in data i pipelines.
Datakvalitet
Förväntningar är valfria satser på datauppsättningar som validerar data när de flödar genom pipelinen. Du definierar en förväntan som en SQL-boolesk begränsning och anger vad som händer när en post misslyckas: varna, ta bort posten eller misslyckas med uppdateringen. Se avsnittet Hantera datakvalitet med pipeline-förväntningar.
Deltaintegrering
Alla tabeller som skapas och hanteras av pipelines är Delta-tabeller. De har samma garantier som Delta Lake, inklusive ACID-transaktioner, tidsresor och schematillämpning. Pipelines lägger till ytterligare tabellegenskaper och utför automatiskt underhåll med förutsägande optimering, inklusive OPTIMIZE och VACUUM åtgärder. Se Vad är Delta Lake i Azure Databricks?.