Delen via


Overzicht van orkestratie op Databricks

Azure Databricks biedt een ingebouwde ervaring voor het organiseren van werkbelastingen voor gegevensverwerking, zodat u meerdere taken kunt coördineren en uitvoeren als onderdeel van een grotere werkstroom. U kunt de uitvoering van frequente, herhaalbare taken stroomlijnen, optimaliseren en plannen, zodat u eenvoudig complexe werkstromen kunt beheren.

In dit artikel worden concepten en keuzes geïntroduceerd met betrekking tot het beheren van productieworkloads met behulp van Databricks-taken.

Wat zijn taken?

In Databricks wordt een taak gebruikt voor het plannen en organiseren van taken op Databricks in een werkstroom. Veelvoorkomende werkstromen voor gegevensverwerking zijn ETL-werkstromen, notebooks uitvoeren en machine learning-werkstromen (ML) en integratie met externe systemen zoals dbt en Azure Data Factory (ADF).

Taken bestaan uit een of meer taken en ondersteunen aangepaste besturingsstroomlogica, zoals vertakking (indien/anders-instructies) of lussen (voor elke instructies) met behulp van een visuele ontwerpinterface. Taken kunnen gegevens in een ETL-werkstroom laden of transformeren, of ML-modellen op een gecontroleerde en herhaalbare manier bouwen, trainen en implementeren als onderdeel van uw machine learning-pijplijnen.

Voorbeeld: Dagelijkse gegevensverwerking en validatietaak

In het onderstaande voorbeeld ziet u een taak in Azure Databricks.

Een voorbeeld van een taak in de Azure Databricks-interface met vier taken en een trigger die dagelijks kan worden uitgevoerd.

Deze voorbeeldtaak heeft de volgende kenmerken:

  1. De eerste taak neemt omzetgegevens op.
  2. De tweede taak is een if/else-controle op null-waarden.
  3. Zo niet, dan wordt een transformatietaak uitgevoerd.
  4. Anders wordt een notebooktaak uitgevoerd met een validatie van de gegevenskwaliteit.
  5. Het is gepland om elke dag om 11:29 uur te worden uitgevoerd.

Zie Uw eerste werkstroom maken met een Azure Databricks-taakvoor een korte inleiding tot het maken van uw eigen taak.

Veelvoorkomende toepassingen

Van basisbeginselen voor data engineering tot geavanceerde integratie van machine learning en naadloze hulpprogramma's, laten deze veelvoorkomende use cases zien wat de breedte is van de mogelijkheden die moderne analyses, werkstroomautomatisering en schaalbaarheid van de infrastructuur stimuleren.

| Data Engineering | ETL-pijplijnen (extraheren, transformeren, laden): Automatiseer de extractie van gegevens uit verschillende bronnen, transformeer de gegevens in een geschikte indeling en laad deze in een datawarehouse of data lake. Zie Uw eerste ETL-workload uitvoeren in Azure Databricks

gegevensmigratie: gegevens van het ene systeem naar het andere verplaatsen.

Continue gegevensverwerking: Gebruik Jobs voor continue gegevensverwerking, zoals het streamen van gegevens uit bronnen zoals Kafka en het schrijven ervan naar Delta-tabellen. | | Data science en machine learning | Modeltraining: Machine Learning-modeltrainingstaken plannen en uitvoeren om ervoor te zorgen dat modellen worden getraind op de meest recente gegevens.

Batch-inferentie: Automatiseer het proces van het uitvoeren van batchinferentietaken om voorspellingen van getrainde modellen te genereren.

hyperparameterafstemming: hyperparameterafstemmingstaken organiseren om machine learning-modellen te optimaliseren. nl-NL: | | Analytics en rapportage | Geplande query's: voer SQL-query's uit op een gepland moment in een taak om rapporten te genereren of dashboards bij te werken.

gegevensaggregatie: voer reguliere gegevensaggregatietaken uit om gegevens voor te bereiden op analyse. | | Taken automatiseren | werkstromen voor meerdere taken: complexe werkstromen maken waarbij meerdere taken zijn betrokken, zoals het uitvoeren van een reeks notebooks, JAR-bestanden, SQL-query's of Delta Live Tables-pijplijnen.

Voorwaardelijke logica: Gebruik voorwaardelijke logica om de stroom te sturen van taken op basis van het slagen of mislukken van eerdere taken. | | Integratie met andere hulpprogramma's | Airflow en Azure Data Factory (ADF): Azure Databricks-taken activeren met behulp van externe indelingshulpprogramma's zoals Apache Airflow en Azure Data Factory-, waardoor complexere en geïntegreerde werkstromen mogelijk zijn.

meldingen en monitoring: stel meldingen in en monitor de resultaten van de taakuitvoering met behulp van de Azure Databricks-interface, CLI of API, of integraties met hulpprogramma's zoals Slack en webhooks. | | Infrastructuur als code (IaC) | Databricks Asset Bundles: Taken en andere resources beheren als code om de procedures voor versiebeheer, codebeoordeling en CI/CD (Continuous Integration/Continuous Deployment) te vergemakkelijken. |

Orchestratieconcepten

Er zijn drie hoofdconcepten bij het gebruik van orkestratie in Azure Databricks: taken, taken en triggers.

Job - Een job is de primaire resource voor het coördineren, plannen en uitvoeren van uw operaties. Taken kunnen in complexiteit variëren van één taak waarop een Azure Databricks-notebook wordt uitgevoerd tot honderden taken met voorwaardelijke logica en afhankelijkheden. De taken in een functie worden visueel vertegenwoordigd door een Gerichte Acyclische Graaf (DAG). U kunt eigenschappen voor de taak opgeven, waaronder:

  • Trigger: hiermee wordt gedefinieerd wanneer de taak moet worden uitgevoerd.
  • Parameters: uitvoeringsparameters die automatisch naar de taken binnen de opdracht worden gepusht.
  • Meldingen: e-mailberichten of webhooks die moeten worden verzonden wanneer een taak mislukt of te lang duurt.
  • Git: instellingen voor broncodebeheer voor de taaktaken.

Taak - Een taak is een specifieke werkeenheid binnen een taak. Elke taak kan verschillende bewerkingen uitvoeren, waaronder:

  • Een notebooktaak voert een Databricks-notebook uit. U geeft het pad op naar het notebook en eventuele parameters die nodig zijn.
  • Een pijplijntaak voert een pijplijn uit. U kunt een bestaande Delta Live Tables-pijplijn opgeven, zoals een gerealiseerde weergave of streamingtabel.
  • Met een Python-scripttaak wordt een Python-bestand uitgevoerd. U geeft het pad naar het bestand en eventuele benodigde parameters op.

Er zijn veel soorten taken. Zie Typen takenvoor een volledige lijst. Taken kunnen afhankelijk zijn van andere taken en andere taken voorwaardelijk uitvoeren, zodat u complexe werkstromen met voorwaardelijke logica en afhankelijkheden kunt maken.

Trigger - Een trigger is een mechanisme waarmee een taak wordt gestart op basis van specifieke voorwaarden of gebeurtenissen. Een trigger kan op tijd zijn gebaseerd, zoals het uitvoeren van een taak op een gepland tijdstip (bijvoorbeeld elke dag om 2:00 uur) of op basis van gebeurtenissen, zoals het uitvoeren van een taak wanneer nieuwe gegevens binnenkomen in de cloudopslag.

bewaking en waarneembaarheid

Taken bieden ingebouwde ondersteuning voor bewaking en waarneembaarheid. De volgende onderwerpen geven een overzicht van deze ondersteuning. Zie Bewaking en waarneembaarheid voor Databricks-takenvoor meer details over het monitoren en de orkestratie van taken.

taakbewaking en waarneembaarheid in de gebruikersinterface: in de Gebruikersinterface van Azure Databricks kunt u taken weergeven, waaronder details zoals de eigenaar van de taak en het resultaat van de laatste uitvoering en filteren op taakeigenschappen. U kunt een geschiedenis van taakuitvoeringen bekijken en gedetailleerde informatie over elke taak in de taak ophalen.

taakuitvoeringsstatus en metrische gegevens - Databricks rapporteert dat de taak is uitgevoerd en logboeken en metrische gegevens voor elke taak in een taakuitvoering om problemen vast te stellen en de prestaties te begrijpen.

Meldingen en waarschuwingen: u kunt meldingen instellen voor taakgebeurtenissen via e-mail, Slack, aangepaste webhooks en een groot aantal andere opties.

Aangepaste query's via systeemtabellen - Azure Databricks biedt systeemtabellen waarmee taakuitvoeringen en taken in het account worden vastgelegd. U kunt deze tabellen gebruiken om de prestaties en kosten van taken op te vragen en te analyseren. U kunt dashboards maken om metrische gegevens en trends van taken te visualiseren, zodat u de status en prestaties van uw werkstromen kunt bewaken.

Beperkingen

De volgende beperkingen gelden:

  • Een werkruimte is beperkt tot 2000 gelijktijdige taakuitvoeringen. Het antwoord 429 Too Many Requests wordt geretourneerd wanneer u een uitvoering aanvraagt die niet onmiddellijk kan worden gestart.
  • Het aantal taken dat een werkruimte in een uur kan maken, is beperkt tot 10000 (inclusief 'runs submit'). Deze limiet is ook van invloed op taken die zijn gemaakt door de REST API- en notebook-werkstromen.
  • Een werkruimte kan maximaal 12000 opgeslagen taken bevatten.
  • Een taak kan maximaal 100 taken bevatten.

Kan ik werkstromen programmatisch beheren?

Databricks heeft hulpprogramma's en API's waarmee u uw werkstromen programmatisch kunt plannen en organiseren, waaronder de volgende:

Zie Het maken en beheren van taken automatiserenvoor voorbeelden van het gebruik van hulpprogramma's en API's voor het maken en beheren van taken. Zie Lokale ontwikkelhulpprogramma'svoor documentatie over alle beschikbare ontwikkelhulpprogramma's.

Externe hulpprogramma's gebruiken de Databricks-hulpprogramma's en API's om programmatisch werkstromen te plannen. U kunt uw taken plannen met behulp van hulpprogramma's zoals Azure Data Factory of Apache AirFlow.

Werkstroomindeling met Apache AirFlow

U kunt Apache Airflow gebruiken om uw gegevenswerkstromen te beheren en te plannen. Met Airflow definieert u uw werkstroom in een Python-bestand en beheert Airflow de planning en uitvoering van de werkstroom. Zie Azure Databricks-taken organiseren met Apache Airflow.

Werkstroomindeling met Azure Data Factory

Azure Data Factory (ADF) is een cloudservice voor gegevensintegratie waarmee u services voor gegevensopslag, verplaatsing en verwerking kunt opstellen in geautomatiseerde gegevenspijplijnen. U kunt ADF gebruiken om een Azure Databricks-taak in te delen als onderdeel van een ADF-pijplijn.

ADF biedt ook ingebouwde ondersteuning voor het uitvoeren van Databricks-notebooks, Python-scripts of code die is verpakt in JAR's in een ADF-pijplijn.

Zie Een Databricks-notebook uitvoeren met de Databricks-notebookactiviteit in Azure Data Factory, gevolgd door Gegevens transformeren door een Databricks-notebook uit te voeren.

Zie Gegevens transformeren door een Python-activiteit uit te voeren in Azure Databricks voor meer informatie over het uitvoeren van een Python-script in een ADF-pijplijn.

Zie Gegevens transformeren door een JAR-activiteit uit te voeren in Azure Databricks voor meer informatie over het uitvoeren van code die is verpakt in een JAR-pijplijn.