Bakgrunn
Når et kontrollark har mange rader eller prosesstiden er for lang, kan parallelle kjeder redusere kjøretiden betraktelig.
Eksempel på scenario
Tenk deg at du har en kommandogruppe i kjeden din som bruker en Group Iterator. I dette oppsettet hentes innholdet i kontrollarket fra et Workiva-regneark ved hjelp av kommandoen Get Sheet Data. Kjeden gjentar deretter et sett med handlinger for hver rad i arket. (Se installasjonsinstruksjoner her.)
Hvis rekkefølgen på kontrollarkradene ikke spiller noen rolle, og hver rad kan behandles uavhengig av hverandre, kan du forbedre kjedens effektivitet ved å kjøre dem parallelt ved hjelp av følgende trinn.
Merk: Trinnene nedenfor er basert på eksempelkjeden som er vist ovenfor. Juster etter behov for ditt eget kjede og eventuelle ekstra kommandoer det måtte ha.
Trinn 1: Forbered din primære kjede
- Slett alle koblinger mellom alle noder.
- Slett nodene CSV to JSON og Command Group.
- Legg til en Advanced Query -kommando fra Tabular Transformations -kontakten, og koble den til noden Get Sheet Data.
- Konfigurer noden med følgende verdier:
- Tabeller > Fil: velg Hent arkdata > Data utdata fra variabelpanelet.
- Tabeller > Tabellnavn: bruk et navn uten mellomrom.
- Spør: Bruk MySQL
NTILE-funksjonen til å tilordne et gruppenummer til hver rad (f.eks.NTILE(3)for tre grupper).
Merk: Du må teste prosessen din for å finne det riktige antallet grupper som passer med ønsket kjøretid. Som en beste praksis bør antallet være mindre enn 10.
Trinn 2: Sett opp underkjeden til å kjøre parallelt
- I underkjeden som kjøres av hendelsen Run Chain, kan du enten legge til eller endre kommandoen Runtime Inputs. En påminnelse om at denne må være den første noden i kjeden. Konfigurer to innganger for den: en FileField -inngang for datafilen og en NumberField -inngang for gruppenummeret.
- For å sikre at hver instans bare behandler de tildelte radene, kobler du til kommandoen Filter Rows umiddelbart etter kommandoen Runtime Inputs og før andre kommandoer. Filteret vil isolere poster etter gruppenummer, slik at alle etterfølgende kommandoer kun opererer på de riktige radene.
Merk: Søkekolonnefeltet er 0-basert.
- I Kjedeinnstillinger må du kontrollere at alternativet Tillat samtidige kjøringer er aktivert.
Trinn 3: Gå gjennom fil- og gruppenummeret
- I primærkjeden legger du til én Run Chain -kommando for for hvert gruppenummer som brukes i
NTILE-funksjonen (f.eks. 3 kommandoer forNTILE(3)).- Datafil Runtime Input: Velg Advanced Query > Result output fra variabelpanelet.
- Group Number Runtime Input: Et unikt nummer fra 1 og opp til det totale antallet grupper.
Resultat
Kjeden din behandler nå tre ganger så mange rader fra kontrollarket samtidig. Du kan skalere dette ytterligere ved å øke antallet NTILE og legge til tilsvarende Run Chain -kommandoer.
Advarsel
- Unngå å kjøre for mange parallelle kjeder samtidig, da dette kan overskride plattformens grenser og føre til at kommandoer mislykkes. Som en beste praksis bør antallet parallelle kjeder være mindre enn 10.
- Alle kjedeløsninger bør testes grundig mot edge cases og alle relevante datatyper før de tas i bruk i live- eller produksjonsmiljøer.
- Kjeder med mer enn seks nestede nivåer av Run Chain kan ikke eksporteres eller importeres på riktig måte.
Flere ressurser
Hvis du vil ha mer informasjon om kjedekontrollark, kan du se noen av de andre ressursene våre
- Hvis du vil ha mer grunnleggende informasjon, kan du se vår Using Control Sheets.
- Se vår Control Sheet Scheduler Chain-mal for et populært eksempel på bruk av kontrollark.