Delen via


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:

  1. Selecteer een taak.
  2. 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.
  3. Selecteer een van de voorwaardelijke opties in het veld Uitvoeren als afhankelijkheden .
  4. 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 hun Run 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:

Voorbeelddiagram van taakafhankelijkheden

  • 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:

Voorbeeldstroom voor taakafhankelijkheden