Taakafhankelijkheden configureren
Met het veld Uitvoeren als afhankelijkheden kunt u controlestroomlogica toevoegen aan taken op basis van het slagen, mislukken of voltooien van andere taken.
Afhankelijkheden worden visueel weergegeven in de dag van de taak als lijnen tussen taken.
Azure Databricks voert upstream-taken uit voordat downstreamtaken worden uitgevoerd, waarbij er zoveel mogelijk parallel worden uitgevoerd.
Notitie
Afhankelijk van is alleen zichtbaar als de taak uit meerdere taken bestaat.
Databricks heeft ook de volgende functionaliteit voor controlestroom en conditionalisatie:
- De if/else-voorwaardetaak wordt gebruikt om een deel van een taak DAG uit te voeren op basis van de resultaten van een Boole-expressie. Met de
If/else condition
taak kunt u vertakkingslogica toevoegen aan uw taak. Voer bijvoorbeeld transformatietaken alleen uit als de upstream-opnametaak nieuwe gegevens toevoegt. Zie Vertakkingslogica toevoegen aan een taak met de taak If/else. - De taak Voor elke voorwaarde voegt luslogica toe aan een andere taak op basis van een invoermatrix. Invoermatrices kunnen handmatig of dynamisch worden gegenereerd. Zie Een geparameteriseerde Azure Databricks-taak uitvoeren in een lus.
- Met de taak Taak uitvoeren kunt u een andere taak in uw werkruimte activeren. Zie Taak uitvoeren voor taken.
Een voorwaarde Uitvoeren als toevoegen aan een taak
Als u een taak hebt geselecteerd in uw DAG wanneer u een nieuwe taak maakt, heeft uw nieuwe taak standaard een afhankelijkheid die voor deze taak is geconfigureerd.
Ga als volgt te werk om voorwaarden te bewerken of toe te voegen:
- Selecteer een taak.
- Klik in het veld Afhankelijk van op de X om een taak te verwijderen of taken te selecteren die u wilt toevoegen in de vervolgkeuzelijst.
- Selecteer een van de voorwaardelijke opties in het veld Uitvoeren als afhankelijkheden .
- Klik op Taak opslaan.
Run if
opties voor voorwaarde
U kunt de volgende Run if
voorwaarden toevoegen aan een taak:
- Alles is geslaagd: alle afhankelijkheden zijn uitgevoerd en geslaagd. Dit is de standaardinstelling. De taak wordt gemarkeerd alsof
Upstream failed
de voorwaarde ongedaan is. - Ten minste één geslaagd: ten minste één afhankelijkheid is geslaagd. De taak wordt gemarkeerd alsof
Upstream failed
de voorwaarde ongedaan is. - Geen mislukt: geen van de afhankelijkheden is mislukt en ten minste één afhankelijkheid is uitgevoerd. De taak wordt gemarkeerd alsof
Upstream failed
de voorwaarde ongedaan is. - Klaar: de taak wordt uitgevoerd nadat alle afhankelijkheden zijn uitgevoerd, ongeacht de status van de afhankelijke uitvoeringen. Met deze voorwaarde kunt u een taak definiëren die wordt uitgevoerd zonder afhankelijk van het resultaat van de afhankelijke taken.
- Ten minste één is mislukt: ten minste één afhankelijkheid is mislukt. De taak wordt gemarkeerd alsof
Excluded
de voorwaarde ongedaan is. - Alles is mislukt: alle afhankelijkheden zijn mislukt. De taak wordt gemarkeerd alsof
Excluded
de voorwaarde ongedaan is.
Notitie
- Taken die zijn geconfigureerd voor het afhandelen van fouten, worden gemarkeerd alsof
Excluded
hunRun if
voorwaarde ongedaan is. Uitgesloten taken worden overgeslagen en worden behandeld als geslaagd. - Als alle taakafhankelijkheden worden uitgesloten, wordt de taak ook uitgesloten, ongeacht
Run if
de voorwaarde. - Als u een taakuitvoering annuleert, wordt de annulering doorgegeven via downstreamtaken en taken met een
Run if
voorwaarde voor het afhandelen van fouten, bijvoorbeeld om te controleren of een opschoontaak wordt uitgevoerd wanneer een taakuitvoering wordt geannuleerd.
Voorbeeldtaak met taakafhankelijkheden
Als u taakafhankelijkheden configureert, wordt een Gerichte Acyclic Graph (DAG) van taakuitvoering gemaakt, een veelgebruikte manier om de uitvoeringsvolgorde in jobplanners weer te geven. Denk bijvoorbeeld aan de volgende taak die bestaat uit vier taken:
- Taak 1 is de hoofdtaak en is niet afhankelijk van een andere taak.
- Taak 2 en taak 3 zijn afhankelijk van taak 1 die eerst wordt voltooid.
- Ten slotte is taak 4 afhankelijk van taak 2 en taak 3 voltooid.
In het volgende diagram ziet u de volgorde van de verwerking voor deze taken: