Achtergrond
Wanneer een controleblad veel rijen heeft of de procestijd buitensporig lang is, kan het gebruik van parallelle ketens de looptijd aanzienlijk verkorten.
Voorbeeldscenario
Stel u voor dat u een commandogroep in uw keten hebt die een Group Iterator gebruikt. In deze opstelling wordt de inhoud van het controleblad opgehaald uit een Workiva-spreadsheet met de opdracht Get Sheet Data. De ketting herhaalt vervolgens een reeks acties voor elke rij in het blad. (Zie de installatie-instructies hier.)
Als de volgorde van uitvoering voor de controlebladrijen er niet toe doet, en elke rij onafhankelijk kan worden verwerkt, kunt u de efficiëntie van de keten verbeteren door ze parallel uit te voeren met behulp van de volgende stappen.
Opmerking: De onderstaande stappen zijn gebaseerd op de voorbeeldketen die hierboven is afgebeeld. Pas aan waar nodig voor uw eigen ketting en eventuele extra commando's.
Stap 1: Bereid uw primaire ketting voor
- Verwijder alle links tussen alle knooppunten.
- Verwijder de knooppunten CSV to JSON en Command Group.
- Voeg een opdracht Advanced Query toe vanuit de connector Tabular Transformations en verbind deze met het knooppunt Get Sheet Data.
- Configureer het knooppunt met de volgende waarden:
- Tabellen > Bestand: selecteer de Haal bladgegevens > Gegevens uitvoer in het Variabelenpaneel.
- Tabellen > Tabelnaam: gebruik een naam zonder spaties.
- Query: gebruik de MySQL
NTILEfunctie om een groepnummer aan elke rij toe te wijzen (bijv.NTILE(3)voor drie groepen).
Opmerking: U zult uw proces moeten testen om het juiste aantal groepen te vinden dat overeenkomt met uw gewenste looptijd. Als beste praktijk zou het aantal minder dan 10 moeten zijn.
Stap 2: Uw subketen instellen om parallel te lopen
- In de subketen die door uw gebeurtenis Run Chain wordt uitgevoerd, voegt u de opdracht Runtime Inputs toe of wijzigt u deze. Ter herinnering: deze moet het eerste knooppunt van de keten zijn. Configureer er twee ingangen voor: een FileField ingang voor het gegevensbestand en een NumberField ingang voor het groepsnummer.
- Om ervoor te zorgen dat elke instantie alleen de toegewezen rijen verwerkt, verbindt u een opdracht Filter Rows onmiddellijk na de opdracht Runtime Inputs en vóór andere opdrachten. Het filter isoleert records op groepnummer, zodat alle volgende opdrachten alleen op de juiste rijen werken.
Opmerking: Het veld Zoekkolommen is gebaseerd op 0.
- Controleer bij Keteninstellingen of de optie Gelijktijdige runs toestaan is ingeschakeld.
Stap 3: Het bestand en groepnummer doorgeven
- Voeg in de Primary Chain één Run Chain commando toe voor elk groepnummer dat in de
NTILEfunctie wordt gebruikt (bijv. 3 commando's voorNTILE(3)).- Gegevensbestand Runtime Input: selecteer Advanced Query > Resultaat uitvoer in het Variable Panel.
- Groepsnummer Runtime Invoer: Een uniek nummer van 1 tot het totale aantal groepen.
Resultaat
Uw ketting verwerkt nu in één keer drie keer zoveel rijen van uw controleblad. U kunt dit verder opschalen door het nummer NTILE te verhogen en de bijbehorende opdrachten Run Chain toe te voegen.
Waarschuwing
- Vermijd het uitvoeren van te veel parallelle ketens tegelijk, omdat dit de limieten van het platform kan overschrijden en opdrachten kan laten mislukken. Als best practice moet het aantal parallelle ketens minder dan 10 zijn.
- Alle ketenoplossingen moeten grondig worden getest op edge cases en alle relevante gegevenstypen voordat ze in live- of productieomgevingen worden gebruikt.
- Ketens met meer dan zes geneste niveaus van Run Chain gebruik exporteren of importeren mogelijk niet correct.
Aanvullende bronnen
Bekijk enkele van onze andere bronnen voor meer informatie over kettingcontrolebladen
- Bekijk voor meer basisinformatie onze Control Sheets gebruiken.
- Bekijk onze sjabloon Control Sheet Scheduler Chain voor een populair gebruik van controlebladen.