Les 4 van 7 · 40 min · Inclusief lab

Jobs en orkestratie

In deze les ga je

  • Een workflow modelleren als graaf van kleine taken met afhankelijkheden
  • Kiezen tussen tijdgebaseerde en gebeurtenisgebaseerde triggers
  • Taken idempotent maken en als service principal draaien
  • Publicatie bewaken met een reconciliatietaak
Ga naar de kenniscontrole

Van pipeline naar proces

Een declaratieve pipeline ververst tabellen. Een bedrijfsproces doet meer: het wacht op een levering, ververst de tabellen, controleert het resultaat, publiceert een dashboard en meldt het aan iemand als het faalt. Lakeflow Jobs is de Databricks-service die die reeks orkestreert.

In deze les modelleren we een workflow als een graaf van taken, kiezen we triggers en stellen we de regels op die een job veilig maken om onbemand te draaien. Externe orkestrators behandelen we niet. Draait je organisatie er al een, dan gelden dezelfde ontwerpregels ook daar.

Wat een job is

Een job bevat een of meer taken. Taken kunnen van elkaar afhangen en vormen een gerichte acyclische graaf (DAG), die de Jobs-interface als graaf toont. De documentatie noemt drie tasktypen die je als eerste gebruikt: een notebooktaak, een pipelinetaak (die een Lakeflow-pipeline draait) en een Python-scripttaak. Er wordt verwezen naar een langere lijst met tasktypen. De authoring-interface ondersteunt ook besturingsstromen zoals if/else-vertakkingen en for-each-lussen, en jobs kunnen runtime-parameters aan taken doorgeven.

Een typische dagelijkse workflow:

  1. Een pipelinetaak ververst bronze, silver en gold.
  2. Een notebook- of scripttaak draait een reconciliatiecontrole tegen de brontotalen.
  3. Een volgende taak ververst een dashboard of publiceert een share, maar alleen als stap 2 slaagde.

Omdat stap 3 van stap 2 afhangt, stopt een mislukte controle de publicatie. Die afhankelijkheid is de goedkoopste beveiliging van het hele platform.

Triggers

Een trigger start een job. De documentatie beschrijft twee families.

TriggerStart de jobGoed voor
TijdgebaseerdVolgens schema, bijvoorbeeld elke dag om 02:00Rapporten en loads met een vaste deadline
GebeurtenisgebaseerdWanneer er iets gebeurt, bijvoorbeeld nieuwe data die in cloudopslag aankomtBronnen die op onvoorspelbare momenten leveren

Kies een gebeurtenisgebaseerde trigger als de bron onregelmatig levert. Een schema dat om 02:00 draait en geen bestand vindt, verspilt een run. Een schema dat draait voor het late bestand binnen is, levert het rapport van gisteren als dat van vandaag.

Kies bij een schema altijd expliciet de tijdzone en schrijf die in de jobbeschrijving. Zomer- en wintertijd heeft carrières beëindigd.

Ontwerpregels voor onbemande jobs

Pas deze regels toe op elke job. Ze sluiten aan op onze delivery standards.

Idempotente taken. Een taak die twee keer draait, moet hetzelfde resultaat achterlaten als één keer. Declaratieve pipelines en MERGE-statements geven je dit. Alleen-toevoegen-statements zonder sleutel niet. Idempotentie maakt een herpoging veilig.

Draai als service principal. Jobs draaien als service principal met de minste rechten voor het werk, nooit als persoon. Een persoon verlaat het bedrijf en de job stopt. Definieer de identiteit in de bundle (les 5).

Kleine, benoemde taken. Eén taak, één doel. Een taak die ingestie, opschoning en publicatie in één notebook doet, kan niet gedeeltelijk opnieuw draaien en zijn foutmelding is "er is iets misgegaan". Splits taken langs de lagen van les 1.

Timeouts en herpogingen. Geef elke taak een timeout, zodat een vastgelopen run de volgende niet blokkeert. Gebruik een beperkt aantal herpogingen voor taken die om tijdelijke redenen falen, zoals een netwerkfout, en geen voor taken die om logische redenen falen, want een herpoging faalt dan op dezelfde manier.

Meldingen. De documentatie noemt meldingen per e-mail of webhook wanneer een job faalt of te lang draait. Stuur fouten naar een kanaal waar iemand naar kijkt en noem de jobeigenaar in het bericht. Een melding naar een mailbox die niemand leest, is geen melding.

Parameters, geen kopieën. Geef de omgeving, het datumbereik of de bronnaam mee als parameters. Kopieer niet een job per omgeving. De bundle geeft elke omgeving dezelfde job met andere waarden.

Geen geheimen in parameters. Lees geheimen uit een secret scope op basis van Key Vault, of vermijd ze met managed identities.

Een voorbeeld van afhankelijkheden

De graaf hieronder is de vorm van de meeste van onze dagelijkse workflows.

wait_for_files (trigger bij aankomst van bestanden)
   -> run_pipeline (pipelinetaak: bronze, silver, gold)
        -> reconcile (scripttaak: vergelijk aantallen met het bronrapport)
             -> publish_share (alleen als reconcile slaagde)
             -> notify_owner (draait bij falen van een voorgaande taak)

De reconcile-taak vergelijkt totalen met een onafhankelijk getal: het controlebestand van de leverancier of een telling uit het bronsysteem. Een pipeline die technisch slaagt maar de helft van de rijen laadt, is de fout die expectations alleen niet vangen.

Ken de limieten

De documentatie noemt limieten voor Lakeflow Jobs: 2.000 gelijktijdige taskruns per workspace, 1.000 taken per job en 12.000 opgeslagen jobs per workspace. De meeste teams komen er nooit bij. Groeit één job richting 1.000 taken, dan is het ontwerp het probleem en splits je hem in jobs per domein.

Compute voor jobs

Jobs kunnen op serverless compute of op klassieke jobclusters draaien. De keuze behandelen we in les 7. Voor nu geldt: draai een geplande job nooit op een all-purpose cluster dat ook een persoon gebruikt. Een persoon die een notebook sluit, mag nooit een nachtelijke load kunnen beïnvloeden.

Een job bewaken

Volg drie getallen per job: slagingspercentage, duur ten opzichte van het gebruikelijke bereik en tijd sinds het laatste succes. Een job die stilletjes niet meer wordt getriggerd toont geen fouten, alleen een groeiende afstand tot het laatste succes. Alarmeer op die afstand. Dit werken we uit in les 6.

Veelgemaakte fouten

  • Cron-denken. Een schema dat aanneemt dat de data er is.
  • Eén reuzentaak. Je kunt hem niet zien, herproberen of erover redeneren.
  • Een persoonlijke identiteit als run-as. De job sterft met het account.
  • Geen poort stroomafwaarts. Het dashboard ververst bovenop een mislukte load.
  • Logische fouten herproberen. Het verbrandt compute en vertraagt de alert.

Samenvatting

Modelleer de workflow als een graaf van kleine taken met afhankelijkheden, kies gebeurtenisgebaseerde triggers voor onregelmatige bronnen, maak taken idempotent, draai als service principal, stel timeouts, herpogingen en meldingen in en bewaak publicatie met een reconciliatietaak.

Volgende les: bundles, die dit alles omzetten in code die door dev, test, acceptatie en productie beweegt.

Het idee in één schema

Een dagelijkse workflow als taakgraaf

  1. Trigger bij aankomst bestanden
  2. Pipelinetaak
  3. ReconciliatieTegen controlecijfer
  4. PublicerenAlleen als reconciliatie slaagde
  5. Eigenaar meldenBij elke fout

Kenniscontrole

Beantwoord elke vraag. Je ziet meteen de reden achter elk antwoord.

0 van 3 beantwoord

  1. Vraag 1 van 3Waarom een gebeurtenisgebaseerde trigger voor een onregelmatige bron?
  2. Vraag 2 van 3Waarom draai je productiejobs als service principal?
  3. Vraag 3 van 3Wat vangt de reconciliatietaak dat expectations niet vangen?

Praktisch lab

Doel. Maak een job met een pipelinetaak, een controletaak en een afhankelijkheid en breek de controle expres.

Waar je het draait

Databricks Free Edition Draai dit lab in een gratis Databricks-workspace. Meld je aan met je eigen e-mailadres.

Haal Databricks Free Edition

Stappen

  1. Maak een job in de Jobs-interface. Voeg je pipeline toe als eerste taak.
  2. Voeg een tweede taak toe, een notebook dat silverrijen telt en vergelijkt met een vast controlegetal. Het moet een fout geven bij een afwijking.
  3. Laat de controle afhangen van de pipelinetaak. Voeg een derde taak toe die van de controle afhangt en alleen published print.
  4. Draai de job. Wijzig het controlegetal zodat het faalt en draai opnieuw. Bevestig dat de derde taak niet draait.
  5. Stel een timeout en een foutmelding naar je eigen adres in als Free Edition dat toestaat.

Verwacht resultaat

De eerste run publiceert. De tweede run stopt bij de controle en de publicatietaak wordt overgeslagen.

Verdiepen

Officiële documentatie en aanbevolen cursussen van de aanbieders.

Bronnen

Laatst gecontroleerd 2026-11-11

We controleren elke bron aan de hand van de officiële documentatie. Producten veranderen, dus bevestig details daar voordat je bouwt.