Sliter du med trege eller dyre API-lastejobber i Azure Data Factory?

26.03.2025 | 2 min lesetid
Kategori: Data Engineering

Opplever du at Copy-aktivitetene dine i Azure Data Factory fører til lange kjøretider eller høye kostnader? Lange kjøretider kan forekomme hvis slike aktiviteter venter unødvendig lenge i kø før beregningene starter. Videre kan høye kostnader forekomme for store antall små aktiviteter. En mulig løsning på begge problemene er å erstatte de mest problematiske aktivitetene med annen infrastruktur, som for eksempel Azure Functions.

Azure Data Factory (ADF) sin Copy-aktivitet er blant de mer brukte byggeklossene i verktøyet, og brukes gjerne til å hente og lagre data fra eksterne systemer som REST APIer, databaser eller objektlagring i sky. Den er en arbeidshest, og fungerer ofte svært godt. Men, det finnes tilfeller hvor den er mindre godt egnet, hvor den kan pådra både høye kostnader og lange kjøretider.

Vi har observert tilfeller der slike aktiviteter bruker unødvendig lang tid på å vente i kø, selv ved bruk av den autoskalerte AutoResolveIntegrationRuntime. Dette fører til økt kjøretid for jobber i ADF, noe som begrenser mulig oppdateringsfrekvens av nedstrøms dataprodukter. I verste fall kan det, for eksempel, føre til at innlast av data kun kan gjøres en sjelden gang, noe som er uheldig hvis sluttbrukere har behov for enda mer aktuell data.

Videre har vi observert tilfeller der slike aktiviteter er store kostnadsdrivere. Et slikt tilfelle er innlast fra REST APIer som ikke er optimalisert for store uttrekk, hvor man må gjøre svært mange kall for hvert endepunkt man ønsker å hente data fra. Dersom man bruker én Copy-aktivitet per API-kall, for eksempel i hver iterasjon i en ForEach-løkke, kan kostnadene bli store.

Dette er en svært relevant problemstilling for deg som bruker skybaserte orkestrerings- og dataintegrasjonsverktøy fra Microsoft, enten det er ADF eller Data Factory i Microsoft Fabric.

Jeg har publisert en artikkel som tar for seg denne problemstillingen på Medium (se lenke nedenfor). I artikkelen viser jeg hvordan en løsning med Azure Functions kan brukes i tilfeller der man har begrensninger på konfigurasjon og bruk av ulike Integration Runtimes i ADF, eller hvis man ikke får ønsket avkastning i kjøretid via konfigurering av disse. Den skisserte løsningen fører videre til vesentlige økonomiske besparelser i tilfeller der mange ulike Copy-aktiviteter brukes til å utføre relativt små eller enkle oppgaver. Jo flere og enklere oppgaver som utføres, jo større er potensiell besparelse.

Med konkrete eksempler fra en produksjonssatt løsning, der innlast av data fra et REST API gjøres ved hjelp av et stort antall HTTP-kall, inkludert kostnadsestimater basert på Microsoft og ADF sin prismodell, kvantifiserer jeg hvor mye man kan spare.

Mer om Azure Data Factory

Hvis du er interessert i andre ADF-erfaringer vi har skrevet om, kan du lese om verktøyet sitt orkestreringsproblem her.

Alexander Johansen Ohrt

Alexander er en ivrig Data Engineer og Data Platform Engineer med erfaring fra utvikling av dataprodukter i skyen.