Data Pipeline

Een data pipeline is een reeks dataverwerkingsstappen. Als de gegevens momenteel nog niet in het gegevensplatform zijn geladen, worden zij aan het begin van de pijplijn opgenomen. Dan volgt een reeks stappen waarbij elke stap een output oplevert die de input vormt voor de volgende stap. Dit gaat zo door tot de pijplijn volledig is. In sommige gevallen kunnen onafhankelijke stappen parallel worden uitgevoerd.

Datapijplijnen bestaan uit drie hoofdelementen: een bron, een verwerkingsstap of -stappen, en een bestemming. In sommige datapijpleidingen kan de bestemming een gootsteen worden genoemd. Datapijpleidingen maken de gegevensstroom mogelijk van een applicatie naar een datawarehouse, van een data lake naar een analytische database, of naar een betalingsverwerkingssysteem, bijvoorbeeld. Datapijplijnen kunnen ook dezelfde bron en sink hebben, zodat de pijplijn uitsluitend betrekking heeft op het wijzigen van de gegevensreeks. Telkens wanneer gegevens worden verwerkt tussen punt A en punt B (of punten B, C en D), is er een datapijplijn tussen die punten.

Naarmate organisaties applicaties proberen te bouwen met kleine codebases die een zeer specifiek doel dienen (dit soort applicaties worden “microservices” genoemd), verplaatsen ze gegevens tussen steeds meer applicaties, waardoor de efficiëntie van datapijplijnen een kritieke overweging wordt in hun planning en ontwikkeling. Gegevens die in één bronsysteem of -toepassing worden gegenereerd, kunnen meerdere gegevenspijplijnen voeden, en die pijplijnen kunnen meerdere andere pijplijnen of toepassingen hebben die afhankelijk zijn van hun output.

Kijk eens naar één enkele opmerking op sociale media. Deze gebeurtenis kan gegevens genereren voor een realtime rapport waarin vermeldingen in sociale media worden geteld, een toepassing voor sentimentanalyse die een positief, negatief of neutraal resultaat oplevert, of een toepassing die elke vermelding op een wereldkaart in kaart brengt. Hoewel de gegevens in alle gevallen afkomstig zijn van dezelfde bron, is elk van deze toepassingen gebouwd op unieke gegevenspijplijnen die soepel moeten worden voltooid voordat de eindgebruiker het resultaat ziet.

Gemeenschappelijke stappen in gegevenspijplijnen omvatten gegevenstransformatie, -verrijking, -verrijking, -filtering, -groepering, -aggregatie, en het uitvoeren van algoritmen tegen die gegevens.

Wat is een Big Data Pipeline?

Nadat het volume, de verscheidenheid en de snelheid van data de afgelopen jaren dramatisch zijn toegenomen, hebben architecten en ontwikkelaars zich moeten aanpassen aan “big data”. De term “big data” impliceert dat er een enorm volume is om mee om te gaan. Dit volume aan gegevens kan mogelijkheden bieden voor use cases zoals voorspellende analyses, real-time rapportage en alarmering, naast vele andere voorbeelden.

Net als veel componenten van data-architectuur, zijn data pipelines geëvolueerd om big data te ondersteunen. Big data pipelines zijn datapijplijnen die zijn gebouwd om tegemoet te komen aan een of meer van de drie kenmerken van big data. De snelheid van big data maakt het aantrekkelijk om streaming data pipelines te bouwen voor big data. Dan kunnen gegevens in real time worden opgevangen en verwerkt, zodat er vervolgens actie kan worden ondernomen. Het volume van big data vereist dat datapijplijnen schaalbaar moeten zijn, omdat het volume in de tijd kan variëren. In de praktijk zullen er waarschijnlijk veel big data-gebeurtenissen gelijktijdig of zeer dicht bij elkaar plaatsvinden, zodat de big data-pijplijn moet kunnen worden opgeschaald om aanzienlijke hoeveelheden gegevens gelijktijdig te verwerken. De verscheidenheid aan big data vereist dat big data-pijplijnen gegevens in veel verschillende formaten kunnen herkennen en verwerken – gestructureerd, ongestructureerd en semi-gestructureerd.

Data Pipeline vs. ETL

ETL verwijst naar een specifiek type data-pijplijn. ETL staat voor “extract, transform, load”. Het is het proces van het verplaatsen van gegevens van een bron, zoals een applicatie, naar een bestemming, meestal een datawarehouse. “Extraheren” verwijst naar gegevens uit een bron halen; “transformeren” gaat over het wijzigen van de gegevens zodat ze in de bestemming kunnen worden geladen, en “laden” gaat over het invoegen van de gegevens in de bestemming.

ETL wordt van oudsher gebruikt voor batch workloads, vooral op grote schaal. Maar een nieuw ras van streaming ETL tools zijn in opkomst als onderdeel van de pijplijn voor real-time streaming event data.

Data Pipeline Considerations

Data pijplijn architecturen vereisen vele overwegingen. Bijvoorbeeld, moet uw pijplijn streaming data verwerken? Welke snelheid van gegevens verwacht u? Hoeveel en welke soorten verwerking moeten er in de datapijplijn plaatsvinden? Worden de gegevens gegenereerd in de cloud of on-premises, en waar moeten ze naartoe? Bent u van plan de pijplijn op te bouwen met microservices? Zijn er specifieke technologieën waarin uw team al goed thuis is in programmeren en onderhouden?

Architectuurvoorbeelden

Datapijplijnen kunnen op verschillende manieren worden gearchitectureerd. Een veel voorkomend voorbeeld is een batch-gebaseerde datapijplijn. In dat voorbeeld hebt u een toepassing zoals een kassasysteem dat een groot aantal gegevenspunten genereert die u naar een datawarehouse en een analysedatabase moet pushen. Hier volgt een voorbeeld van hoe dat eruit zou zien:

Data Pipeline Example
Een basisvoorbeeld van een data pipeline.

Een ander voorbeeld is een streaming data pipeline. In een streaming data pipeline zouden gegevens van het verkooppuntsysteem worden verwerkt terwijl ze worden gegenereerd. De engine voor de verwerking van streams zou outputs van de pijplijn kunnen doorsturen naar gegevensopslagplaatsen, marketingtoepassingen en CRM’s, naast andere toepassingen, en terug naar het verkooppuntsysteem zelf.

Diagram van een streaming-gegevenspijplijn
Dit diagram stelt een streaming-gegevenspijplijn voor. De gegevensstroom wordt beheerd door het streamverwerkingsframework, waar deze kan worden verwerkt en afgeleverd aan apps en/of oplossingen.

Een derde voorbeeld van een gegevenspijplijn is de Lambda-architectuur, die batch- en streamingpijplijnen in één architectuur combineert. De Lambda-architectuur is populair in big data-omgevingen omdat deze ontwikkelaars in staat stelt rekening te houden met zowel real-time streaming use cases als historische batchanalyses. Een belangrijk aspect van deze architectuur is dat het opslaan van gegevens in onbewerkte vorm wordt aangemoedigd, zodat u voortdurend nieuwe gegevenspijplijnen kunt uitvoeren om eventuele fouten in de code van eerdere pijplijnen te corrigeren, of om nieuwe gegevensbestemmingen te maken die nieuwe soorten query’s mogelijk maken.

Lambda-architectuurdiagram
De Lambda-architectuur houdt rekening met zowel een traditionele pijplijn voor batchgegevens als een pijplijn voor real-time gegevensstreaming. De Lambda-architectuur bevat ook een serverlaag die op query’s reageert.

Gerelateerde onderwerpen

Streaming ETL

Lambda-architectuur

Streamverwerking

Plaats een reactie