Översikt över orkestrering på Databricks
Azure Databricks ger en inbyggd upplevelse för orkestrering databearbetningsarbetsbelastningar, så att du kan samordna och köra flera uppgifter som en del av ett större arbetsflöde. Du kan effektivisera, optimera och schemalägga körningen av vanliga, repeterbara uppgifter som gör det enkelt att hantera komplexa arbetsflöden.
Den här artikeln beskriver begrepp och val som rör hantering av produktionsarbetsbelastningar med hjälp av Databricks-jobb.
Vad är jobb?
I Databricks används ett jobb för att schemalägga och samordna uppgifter på Databricks i ett arbetsflöde. Vanliga arbetsflöden för databearbetning inkluderar ETL-arbetsflöden, körning av notebooks och arbetsflöden för maskininlärning (ML) samt integrering med externa system som dbt och Azure Data Factory (ADF).
Jobb består av en eller flera uppgifter och stöder anpassad kontrollflödeslogik som förgrening (if/else-instruktioner) eller loopning (för varje uttryck) med hjälp av ett visuellt redigeringsgränssnitt. Uppgifter kan läsa in eller transformera data i ett ETL-arbetsflöde, eller skapa, träna och distribuera ML-modeller på ett kontrollerat och repeterbart sätt som en del av dina maskininlärningspipelines.
Exempel: Daglig databearbetning och valideringsjobb
Exemplet nedan visar ett jobb i Azure Databricks.
Det här exempeljobbet har följande egenskaper:
- Den första uppgiften hanterar intäktsdata.
- Den andra aktiviteten är en if/else-kontroll av nullvärden.
- Annars utförs en transformationsuppgift.
- Annars körs en uppgift i ett anteckningsblock med en validering av datakvalitet.
- Den är schemalagd att köras varje dag kl. 11:29.
En snabb introduktion till hur du skapar ett eget jobb finns i Skapa ditt första arbetsflöde med ett Azure Databricks-jobb.
Vanliga användningsfall
Från grundläggande principer för datateknik till avancerad maskininlärning och sömlös verktygsintegrering visar dessa vanliga användningsfall bredden av funktioner som driver modern analys, arbetsflödesautomatisering och infrastrukturskalbarhet.
|
Data Engineering | ETL-pipelines (Extrahera, Transformera, Läs in): Automatisera extrahering av data från olika källor, transformera data till ett lämpligt format och läsa in dem i ett informationslager eller en datasjö. Se Kör din första ETL-arbetsbelastning på Azure Databricks
datamigrering: Flytta data från ett system till ett annat.
Kontinuerlig databearbetning: Använd jobb för kontinuerlig databearbetning, till exempel strömma data från källor som Kafka och skriva dem till Delta-tabeller. | | datavetenskap och maskininlärning | Modellträning: Schemalägga och köra träningsjobb för maskininlärningsmodeller för att säkerställa att modeller tränas på de senaste data.
Batch-slutsatsdragning: Automatisera processen med att köra batchinferensjobb för att generera förutsägelser från tränade modeller.
Justering av Hyperparameter: Samordna hyperparameterjusteringsjobb för att optimera maskininlärningsmodeller. | | Analytics och rapportering | schemalagda frågor: Kör SQL-frågor i ett jobb enligt ett schema för att generera rapporter eller uppdatera instrumentpaneler.
dataaggregering: Utför regelbundna dataaggregeringsuppgifter för att förbereda data för analys. | | Automatisera uppgifter | arbetsflöden för flera aktiviteter: Skapa komplexa arbetsflöden som omfattar flera uppgifter, till exempel att köra en serie notebook-filer, JAR-filer, SQL-frågor eller Delta Live Tables-pipelines.
Villkorsstyrd logik: Använd villkorsstyrd logik för att styra flödet aktiviteter baserat på lyckade eller misslyckade tidigare aktiviteter. | | Integrering med andra verktyg | Airflow och Azure Data Factory (ADF): Utlösa Azure Databricks-jobb med hjälp av externa orkestreringsverktyg som Apache Airflow och Azure Data Factory, vilket möjliggör mer komplexa och integrerade arbetsflöden.
Meddelanden och övervakning: Konfigurera meddelanden och övervaka jobbkörningsresultat med hjälp av Azure Databricks UI, CLI eller API, eller använda integreringar med verktyg som Slack och webhooks. | | Infrastruktur som kod (IaC) | Databricks-tillgångspaket: Hantera jobb och andra resurser som kod för att underlätta versionskontroll, kodgranskning och CI/CD-metoder (kontinuerlig integrering/kontinuerlig distribution). |
Orkestreringsbegrepp
Det finns tre huvudsakliga begrepp när du använder orkestrering i Azure Databricks: jobb, uppgifter och utlösare.
Job – Ett jobb är den primära resursen för att samordna, schemalägga och köra dina åtgärder. Jobb kan variera i komplexitet från en enskild uppgift som kör en Azure Databricks-notebook-fil till hundratals uppgifter med villkorsstyrd logik och beroenden. Uppgifterna i ett arbete representeras visuellt av en riktad acyklisk graf (DAG). Du kan ange egenskaper för jobbet, inklusive:
- Utlösare – detta definierar när jobbet ska köras.
- Parametrar – körningsparametrar som automatiskt skickas till aktiviteter i jobbet.
- Meddelanden – e-postmeddelanden eller webhooks som skickas när ett jobb misslyckas eller tar för lång tid.
- Git – källkontrollinställningar för jobbuppgifterna.
Uppgift – En uppgift är en specifik arbetsenhet i ett jobb. Varje uppgift kan utföra en mängd olika åtgärder, bland annat:
- En anteckningsboksuppgift kör en Databricks-notebook. Du anger sökvägen till anteckningsboken och de parametrar som krävs.
- En pipelineaktivitet kör en pipeline. Du kan ange en befintlig Delta Live Tables-pipeline, till exempel en materialiserad vy eller en strömmande tabell.
- En Python-skriptuppgift kör en Python-fil. Du anger sökvägen till filen och eventuella nödvändiga parametrar.
Det finns många typer av uppgifter. En fullständig lista finns i Typer av uppgifter. Aktiviteter kan ha beroenden för andra aktiviteter och villkorligt köra andra uppgifter, så att du kan skapa komplexa arbetsflöden med villkorsstyrd logik och beroenden.
Trigger – En utlösare är en mekanism som initierar körning av ett jobb baserat på specifika villkor eller händelser. En utlösare kan vara tidsbaserad, till exempel att köra ett jobb vid en schemalagd tidpunkt (till exempel varje dag kl. 02.00) eller händelsebaserad, till exempel att köra ett jobb när nya data tas emot i molnlagringen.
övervakning och observerbarhet
Jobb ger inbyggt stöd för övervakning och observerbarhet. Följande avsnitt ger en översikt över det här stödet. Mer information om att övervaka jobb och orkestrering finns i Övervakning och observerbarhet för Databricks-jobb.
Jobbövervakning och observerbarhet i användargränssnittet – I Azure Databricks-användargränssnittet kan du visa jobb, inklusive information som jobbägare och resultatet av den senaste körningen och filtrera efter jobbegenskaper. Du kan visa en historik över jobbkörningar och få detaljerad information om varje uppgift i jobbet.
Jobbkörningsstatus och mått – Databricks rapporterar jobbkörningens framgång, samt loggar och mått för varje uppgift inom en jobbkörning för att diagnostisera problem och förstå prestanda.
Meddelanden och aviseringar – Du kan konfigurera meddelanden för jobbhändelser via e-post, Slack, anpassade webhooks och en mängd andra alternativ.
Anpassade frågor via systemtabeller – Azure Databricks tillhandahåller systemtabeller som registrerar jobbkörningar och uppgifter i hela kontot. Du kan använda dessa tabeller för att fråga efter och analysera jobbprestanda och kostnader. Du kan skapa instrumentpaneler för att visualisera jobbmått och trender för att övervaka hälsotillstånd och prestanda för dina arbetsflöden.
Begränsningar
Följande begränsningar finns:
- En arbetsyta är begränsad till 2 000 samtidiga aktivitetskörningar. Ett
429 Too Many Requests
-svar returneras när du begär en körning som inte kan starta omedelbart. - Antalet jobb som en arbetsyta kan skapa på en timme är begränsat till 1 0000 (inklusive "kör skicka"). Den här gränsen påverkar även jobb som skapas av REST API och notebook-flöden.
- En arbetsyta kan innehålla upp till 12 000 sparade jobb.
- Ett jobb kan innehålla upp till 100 aktiviteter.
Kan jag hantera arbetsflöden programmatiskt?
Databricks har verktyg och API:er som gör att du kan schemalägga och samordna dina arbetsflöden programmatiskt, inklusive följande:
- Databricks CLI
- Databricks-tillgångspaket
- Databricks-tillägget för Visual Studio Code
- Databricks SDK:er
- JOBB REST API
Exempel på hur du använder verktyg och API:er för att skapa och hantera jobb finns i Automatisera jobbskapande och hantering. Dokumentation om alla tillgängliga utvecklarverktyg finns i Lokala utvecklingsverktyg.
Externa verktyg använder Databricks-verktyg och API:er för att schemalägga arbetsflöden programmatiskt. Du kan schemalägga dina jobb med hjälp av verktyg som Azure Data Factory eller Apache AirFlow.
Arbetsflödesorkestrering med Apache AirFlow
Du kan använda Apache Airflow för att hantera och schemalägga dina dataarbetsflöden. Med Airflow definierar du arbetsflödet i en Python-fil och Airflow hanterar schemaläggning och körning av arbetsflödet. Se Dirigera Azure Databricks-jobb med Apache Airflow.
Arbetsflödesorkestrering med Azure Data Factory
Azure Data Factory (ADF) är en molndataintegreringstjänst som gör att du kan skapa datalagring, förflyttning och bearbetning av tjänster till automatiserade datapipelines. Du kan använda ADF för att orkestrera ett Azure Databricks-jobb som en del av en ADF-pipeline.
ADF har också inbyggt stöd för att köra Databricks-notebook-filer, Python-skript eller kod som paketeras i JAR:er i en ADF-pipeline.
Information om hur du kör en Databricks-notebook-fil i en ADF-pipeline finns i Köra en Databricks-notebook-fil med databricks notebook-aktiviteten i Azure Data Factory, följt av Transformera data genom att köra en Databricks-notebook-fil.
Information om hur du kör ett Python-skript i en ADF-pipeline finns i Transformera data genom att köra en Python-aktivitet i Azure Databricks.
Information om hur du kör kod som paketerats i en JAR i en ADF-pipeline finns i Transformera data genom att köra en JAR-aktivitet i Azure Databricks.