Hvad er en data pipeline?

Af Weapp · Opdateret

En data pipeline er den automatiserede kæde der løbende fører data fra en kilde til et mål: ETL sat i drift, planlagt eller hændelsesstyret. Hvor ETL beskriver mønstret, er pipelinen maskineriet der kører det igen og igen. Den kan arbejde i batch eller streaming og har brug for overvågning der slår alarm når flowet går i stå.

Data pipeline er et begreb der ofte nævnes i samme åndedrag som ETL og data warehouse, og lige så ofte blandes sammen med dem. Alligevel er det pipelinen der afgør om jeres data faktisk kommer frem, til tiden og i orden. Her er hvad en data pipeline er, hvordan den forholder sig til ETL, og hvorfor driften af den er mindst lige så vigtig som udviklingen.

Hvad en data pipeline er

En data pipeline er den automatiserede kæde der løbende fører data fra en kilde til et mål. Den henter data der hvor de opstår, fører dem gennem de behandlingstrin der er brug for, og leverer dem dér hvor de skal hen, igen og igen uden at nogen skal starte processen manuelt hver gang.

Billedet ligger i navnet: en rørledning. Ligesom en fysisk ledning transporterer vand fra kilde til vandhane, fører data pipelinen data fra kildesystemer til analysemiljø i et jævnt flow. Den startes enten efter en tidsplan (f.eks. hver nat) eller af en hændelse (så snart der dukker nye data op).

Pointen er automatiseringen og kontinuiteten. En data pipeline er ikke en engangsflytning, men et flow sat i permanent drift.

Forholdet til ETL

Data pipeline og ETL hænger tæt sammen, og at holde dem adskilt gør begge tydeligere. ETL er mønstret: de tre trin extract, transform, load, der beskriver hvad der sker med dataene undervejs. Data pipelinen er maskineriet der kører det mønster automatisk og gentagne gange.

Man kan sige at ETL er opskriften, og pipelinen er køkkenet der laver retten hver dag uden at kokken behøver at stå der. En pipeline udfører ofte netop ETL-trinnene, men gør dem til en løbende, idriftsat proces i stedet for en manuel øvelse. Det er forskellen på at beskrive hvordan data skal forædles, og faktisk at have et anlæg der gør det døgnet rundt.

Batch eller streaming

Data pipelines arbejder grundlæggende på to måder, og valget mellem dem afhænger af hvor friske dataene skal være.

En batch-pipeline samler data op og behandler dem i portioner på faste tidspunkter. En almindelig opsætning er at køre det hele én gang hver nat: Dagens ordrer, dagens transaktioner og dagens logs behandles i én samlet omgang. Det passer når informationen ikke behøver at være frisk på minuttet. En salgsrapport der opdateres hver morgen, er god nok.

En streaming-pipeline behandler i stedet hver hændelse stort set i samme øjeblik den sker, i et uafbrudt flow. Det passer når dataene skal være aktuelle i næsten realtid: en alarm der skal gå med det samme, et dashboard der skal vise situationen lige nu, en svindelkontrol der ikke kan vente til om natten.

Et konkret scenarie

En e-handelsvirksomhed har to behov med forskellige krav til friskhed. Den daglige salgsrapport til ledelsen behøver ikke at være mere aktuel end til morgenmødet. Her er det nok med en batch-pipeline der hver nat samler døgnets ordrer og indlæser dem i data warehouset.

Men lagerbeholdningen der vises i webshoppen, skal passe i realtid, ellers sælges der varer som allerede er udsolgt. Her bygger man i stedet en streaming-pipeline der opdaterer beholdningen i samme øjeblik en vare bliver købt. Samme virksomhed, samme slags data, men to forskellige pipelines fordi kravene til hvor friske dataene skal være, er forskellige.

Driftsaspektet: overvågning og alarmer

Her ligger den indsigt der adskiller et velfungerende datamiljø fra et skrøbeligt. En data pipeline kører automatisk, ofte uden at nogen holder øje med den, og netop derfor er den farlig når den går i stykker i stilhed.

Går flowet i stå, uanset årsagen (en kilde der holder op med at svare, et trin der fejler, et format der er blevet ændret), holder friske data op med at komme frem. Uden overvågning kan det stå på i dagevis før nogen undrer sig over at rapporterne ser gamle ud, eller at beholdningen ikke passer. Så er skaden allerede sket.

Derfor hører overvågning og alarmer med til selve pipelinen, ikke til noget man tilføjer bagefter:

  • Overvågning der holder øje med at flowet faktisk bevæger sig, og at data kommer frem som forventet.
  • Alarmer der giver besked med det samme når noget går i stå eller ser forkert ud så nogen kan handle mens problemet stadig er lille.

En pipeline uden overvågning er en rørledning uden trykmåler: Den virker, lige indtil den ikke gør, og så opdager man det for sent.

Sådan forholder du dig til det

Når I bygger et datamiljø, så tænk på pipelinen som en idriftsat tjeneste der skal passes, ikke som et projekt der bliver “færdigt”. Spørg hvordan flowet overvåges, og hvad der sker når det går i stå, for det afgør om I kan stole på jeres data over tid. Vil I have et dataflow der holder i drift og slår alarm i tide, tager vi hos Weapp gerne den del med i systemarbejdet fra begyndelsen.

Ofte stillede spørgsmål

Hvad er forskellen på en data pipeline og ETL?

ETL er mønstret: de tre trin extract, transform, load. En data pipeline er den automatiserede kæde der sætter mønstret i drift og kører det gentagne gange, planlagt eller hændelsesstyret. Groft sagt: ETL beskriver hvad der gøres med dataene, pipelinen er maskineriet der udfører det gang på gang uden at nogen starter det manuelt.

Hvad er forskellen på batch og streaming?

En batch-pipeline samler data op og behandler dem i portioner på faste tidspunkter, f.eks. hver nat. En streaming-pipeline behandler hver hændelse stort set i samme øjeblik den sker, i et kontinuerligt flow. Batch passer når friske data ikke er kritiske; streaming når informationen skal være aktuel i næsten realtid.

Hvorfor skal en data pipeline overvåges?

Fordi den kører automatisk, ofte uden at nogen kigger. Går flowet i stå (en kilde svarer ikke, et trin fejler), holder friske data op med at komme frem, og det kan stå på ubemærket indtil nogen undrer sig over at rapporterne er gamle. Overvågning med alarmer gør at I får besked med det samme når flowet svigter, i stedet for at opdage det for sent.

Hvad sker der hvis en pipeline går i stykker?

Data holder op med at strømme til målet, så rapporter, dashboards og alt der bygger på friske data, bliver forældede eller ufuldstændige. Uden overvågning opdages det ofte først når nogen reagerer på mærkelige eller gamle tal. Med alarmer og rutiner for genkørsel kan et stop fanges og rettes før det når at gøre skade.

Er en data pipeline det samme som et data warehouse?

Nej, det er forskellige dele der arbejder sammen. Data warehouset er stedet hvor data lagres og analyseres. Data pipelinen er rørledningen der fører data derhen, løbende og automatisk. Pipelinen fylder warehouset; warehouset opbevarer det pipelinen leverer, og gør det tilgængeligt. Man har ofte brug for begge dele for at et analysemiljø kan fungere.