De stroom van taken binnen een Databricks-taak beheren
Sommige taken zijn gewoon een lijst met taken die moeten worden voltooid. U kunt de uitvoeringsvolgorde van taken beheren door ertussen afhankelijkheden op te geven. U kunt taken zo configureren dat ze op volgorde of parallel worden uitgevoerd.
U kunt echter ook vertakkingsstromen maken met voorwaardelijke taken, foutcorrectie of opschonen. Azure Databricks biedt functionaliteit om de stroom van taken binnen een taak te beheren. In de volgende onderwerpen worden manieren beschreven waarop u de stroom van uw taken kunt beheren.
Pogingen
Nieuwe pogingen geven aan hoe vaak een bepaalde taak opnieuw moet worden uitgevoerd als de taak mislukt met een foutbericht. Fouten zijn vaak tijdelijk en opgelost door opnieuw opstarten. Sommige functies in Azure Databricks, zoals de ontwikkeling van schema's met Structured Streaming, gaan ervan uit dat u taken uitvoert met nieuwe pogingen om de omgeving opnieuw in te stellen en dat een werkstroom kan worden voortgezet.
Als u herhalingen voor een taak opgeeft, wordt de taak maximaal het opgegeven aantal keren opnieuw gestart als er een fout optreedt. Niet alle taakconfiguraties ondersteunen taakopnieuwpogingen. Zie Beleid voor opnieuw proberen instellen.
Als Databricks in de continue triggermodus draait, wordt automatisch opnieuw geprobeerd met exponentiële back-off. Zie Hoe worden fouten verwerkt voor doorlopende taken?.
Uitvoeren indien voorwaardelijke taken
U kunt het taaktype "Uitvoeren als" gebruiken om voorwaarden voor latere taken op te geven op basis van het resultaat van andere taken. U voegt taken toe aan uw taak en geeft upstream-afhankelijke taken op. Op basis van de status van deze taken kunt u een of meer downstreamtaken configureren om uit te voeren. Taken ondersteunen de volgende afhankelijkheden:
- Alle geslaagde
- Ten minste één geslaagd
- Geen mislukt
- Alles gedaan
- Ten minste één mislukt
- Alles is mislukt
Zie Taakafhankelijkheden configureren
voorwaardelijke taken If/else
U kunt de If/else taaktype gebruiken om voorwaardelijke waarden op te geven op basis van een bepaalde waarde. Zie Vertakkingslogica toevoegen aan een taak met de if/else-taak.
Taken ondersteunen taskValues
die u in uw logica definieert en waarmee u de resultaten van een berekening of status van een taak naar de taakomgeving kunt retourneren. U kunt If/else voorwaarden definiëren op basis van taskValues
, taakparameters of dynamische waarden.
Azure Databricks ondersteunt de volgende operanden voor voorwaarden:
==
!=
>
>=
<
<=
Zie ook:
- Taakwaarden gebruiken om informatie door te geven tussen taken
- Wat is een verwijzing naar dynamische waarden?
- Jobs parameteriseren
voor elke taak
Gebruik de For each
taak om een andere taak in een lus uit te voeren, waarbij een andere set parameters wordt doorgegeven aan elke iteratie van de taak.
Als u een For each
taak aan een taak wilt toevoegen, moet u een For each
taak en een geneste taakdefiniëren. De geneste taak is de taak die moet worden uitgevoerd voor elke iteratie van de For each
-taak en is een van de standaard Databricks-taaktypen. Er worden meerdere methoden ondersteund voor het doorgeven van parameters aan de geneste taak.
Zie Een geparameteriseerde Azure Databricks-taaktaak uitvoeren in een lus.