Läs på engelska

Dela via


Kapslade aktiviteter i Azure Data Factory och Azure Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Den här artikeln hjälper dig att förstå kapslade aktiviteter i Azure Data Factory och Azure Synapse Analytics och hur du använder dem, begränsningar och metodtips.

Översikt

En Data Factory- eller Synapse Workspace-pipeline kan innehålla kontrollflödesaktiviteter som gör att andra aktiviteter kan finnas i dem. Tänk på dessa kapslade aktiviteter som containrar som innehåller en eller flera andra aktiviteter som kan köras beroende på kontrollflödesaktiviteten på den översta nivån.

Se följande exempel med en If-aktivitet som innehåller en aktivitet.

Skärmbild som visar ett exempel på if condition-aktivitet med en innesluten aktivitet inuti.

Kontrollflödesaktiviteter

Följande kontrollflödesaktiviteter stöder kapslade aktiviteter:

Kontrollaktivitet beskrivning
För varje ForEach-aktiviteten definierar ett upprepat kontrollflöde i din pipeline. Den här aktiviteten används till att iterera över en samling och kör angivna aktiviteter i en loop. Implementeringen av loopen för den här aktiviteten liknar Foreach-loopstrukturen i programmeringsspråk.
If-villkorsaktivitet If-villkoret kan användas grenbaserat på villkor som utvärderas som sanna eller falska. If-villkoret fungerar på samma sätt som en if-sats i ett programmeringsspråk. Den utvärderar en uppsättning aktiviteter när villkoret utvärderas till true och en annan uppsättning aktiviteter när villkoret utvärderas till false.
Until-aktivitet Implementerar Do-Until-loop som liknar Do-Until-loopstrukturen i programmeringsspråk. En uppsättning aktiviteter körs i en loop tills det villkor som är associerat med aktiviteten utvärderas till sant. Du kan ange ett timeout-värde för aktiviteten tills.
Växla aktivitet Switch-aktiviteten har samma funktioner som en switch-instruktion tillhandahåller i programmeringsspråk. Den utvärderar en uppsättning aktiviteter som motsvarar ett ärende som matchar villkorsutvärderingen.

Det finns två huvudsakliga sätt att navigera till de inneslutna aktiviteterna i en kapslad aktivitet.

  1. Varje kontrollflödesaktivitet som stöder kapslade aktiviteter har en aktivitetsflik. Om du väljer aktivitetsfliken får du sedan en pennikon som du kan välja för att öka detaljnivån i panelen för inre aktiviteter. Skärmbild som visar ett exempel på om villkorsaktivitet med en markering på pennikonen för att navigera.

  2. Från aktiviteten på pipelinearbetsytan kan du välja pennikonen för att öka detaljnivån i panelen för inre aktiviteter. Dessutom stöder ForEach- och Until-aktiviteterna dubbelklicka på aktiviteten för att öka detaljnivån till panelen för inre aktiviteter. Skärmbild som visar ett exempel på if condition-aktiviteten på pipelinearbetsytan som markerar pennikonen.

Pipelinearbetsytan växlar sedan till kontexten för den inre aktivitetscontainer som du har valt. Det kommer också att finnas en sökväg längst upp som du kan välja för att gå tillbaka till den överordnade pipelinen. Skärmbild som visar ett exempel på if condition-aktiviteten i den sanna grenen med en markering på sökväg för att gå tillbaka till den överordnade pipelinen.

Inbäddningsbegränsningar för kapslad aktivitet

Det finns begränsningar för de aktiviteter som stöder kapsling (ForEach, Until, Switch och If Condition) för kapsling av en annan kapslad aktivitet. Specifikt:

  • Om och Switch kan användas i ForEach- eller Until-aktiviteter.
  • If och Switch kan inte användas i If- och Switch-aktiviteter.
  • ForEach eller Until stöder endast en enda kapslingsnivå.

Se avsnittet metodtips nedan om hur du använder andra pipelineaktiviteter för att aktivera det här scenariot. Valideringsaktiviteten kan dessutom inte placeras inuti en kapslad aktivitet.

Om och Switch kan användas i ForEach- eller Until-aktiviteter. ForEach eller Until stöder endast kapsling på enskild nivå Om och Switch kan inte användas i If- och Switch-aktiviteter.

Metodtips för flera nivåer av kapslade aktiviteter

Om du vill ha logik som stöder kapsling på mer än en nivå kan du använda aktiviteten Kör pipeline i din kapslade aktivitet för att anropa en annan pipeline som sedan kan ha en annan nivå av kapslade aktiviteter. Ett vanligt användningsfall för det här mönstret är med ForEach-loopen där du dessutom behöver loopa baserat på logik i de inre aktiviteterna.

Ett exempel på det här mönstret skulle vara om du hade ett filsystem som hade en lista med mappar och varje mapp där det finns flera filer som du vill bearbeta. Du skulle utföra det här mönstret i allmänhet genom att utföra följande.

  1. Använd en Hämta metadataaktivitet först för att hämta en lista över bara mapparna.
  2. Skicka resultatet av aktiviteten Hämta metadata till objektlistan för en ForEach-aktivitet. Varje iteration representerar sedan en enda mapp att bearbeta.
  3. I panelen för inre aktiviteter i ForEach-aktiviteten använder du en annan Get Metadata-aktivitet för att hämta en lista över filer i mappen.
  4. Anropa en Körningspipeline-aktivitet som har en matrisparameter och skicka den en matris med dessa filnamn.
  5. I den underordnade pipelinen kan du sedan använda en annan kapslad aktivitet (till exempel ForEach) med listan över skickade matriser för att iterera över filerna och utföra en eller flera uppsättningar inre aktiviteter.

Den överordnade pipelinen skulle se ut ungefär som exemplet nedan.

Skärmbild som visar ett exempel på en överordnad pipeline som anropar en underordnad pipeline i en ForEach-loop.

Den underordnade pipelinen skulle se ut ungefär som exemplet nedan.

Skärmbild som visar ett exempel på en underordnad pipeline med en ForEach-loop.

I följande självstudier finns stegvisa instruktioner för hur du skapar pipelines och datauppsättningar.