Introductie
Data is overal. De afgelopen jaren, door het groeiende aantal verbonden apparaten en het toenemende gebruik ervan, is de wereld een enorme hoeveelheid data gaan produceren die niet langer met traditionele methoden kan worden verwerkt.
Volgens Statista zijn er in 2021 23,8 miljard apparaten verbonden met het internet en daarvan is 58% IoT-apparatuur (smarthome-apparaten, verbonden zelfrijdende auto's, industriële apparaten, enz.) en de overige 42% niet-IoT-apparatuur (laptops, smartphones, enz.). Dit betekent dat data tegenwoordig uit allerlei bronnen kan komen. Enkele daarvan zijn:
- Gebruikersactiviteiten: Elke gebruikersactie produceert data, en zelfs de gegevens die weergeven waar en hoe vaak we tikken in de mobiele apps die we gebruiken, zijn waardevol. Al deze informatie moet worden bewaard en verspreid naar de datacenters van de applicaties.
- “Internet of Things”-apparaten: Deze apparaten produceren een enorme hoeveelheid informatie, zoals sensordata die op veel verschillende locaties wordt gegenereerd. Al deze data moet worden opgehaald en naar een datapool worden gestuurd voor verdere analyse.
- Programmalogs: Moderne computerapplicaties bestaan uit veel componenten en al die componenten produceren programmalogs. Deze logs worden naar een data-engineeringpijplijn gestuurd voor verdere analyse.
Alle verschillende gestructureerde data die de wereld produceert, moet worden doorgegeven aan andere componenten in de softwarearchitectuur, of worden gevisualiseerd en geïnterpreteerd door business-analisten en data scientists. Die levering is echter niet eenvoudig. Er zijn een paar cruciale vereisten voor hoe je data levert:
- Data moet worden geleverd in een gestandaardiseerde structuur
- De data mag geen conflicten bevatten
- Dataduplicatie moet mogelijk worden verwijderd
- De data moet betrouwbaar zijn
- De datalevering moet met minimale vertraging gebeuren
Daarom is de levering van deze informatie een complex proces en kan het, als het niet goed wordt uitgevoerd, zeer problematisch zijn, vooral voor middelgrote en grote bedrijven. Dit is waar data-engineers in beeld komen.
In dit artikel leer je de basis van data-engineering, namelijk:
- Wat data-engineering is en waarom je een robuuste datapijplijn nodig hebt
- Het verschil tussen data science en data-engineering
- De reden achter de toenemende populariteit van data-engineering
- De skills van een goede data-engineer
- Hoe DataCamp je kan helpen een data-engineer te worden
Wat zijn de verantwoordelijkheden van een data-engineer?
Simpel gezegd, data-engineers:
- Proberen data makkelijk toegankelijk en beschikbaar te maken voor data scientists en business intelligence engineers (of iedereen die met data werkt)
- Optimaliseren de bigdatasysteemarchitectuur van bedrijven
- Ontwerpen en configureren databases
- Werken samen met teams van business intelligence engineers, data scientists en data-analisten
- Verkennen en transformeren data. Om al deze taken uit te voeren, moeten data-engineers eerst de ETL-pijplijnen opzetten.
Je kunt meer te weten komen over wat een data-engineer doet in ons volledige artikel.
ETL-pijplijnen
ETL-pijplijnen ontvangen op vaste tijdsintervallen complexe data en verwerken die met als doel de data in een bruikbare vorm op te slaan. Het is de verantwoordelijkheid van data-engineers om deze pijplijnen op te zetten en te onderhouden.
Er zijn 3 typen ETL-pijplijnen:
- Extract Een enorme hoeveelheid data die door databronnen wordt gecreëerd, wordt in verschillende formaten verzameld.
- Transform Omdat de data in verschillende formaten binnenkomt en uit inconsistente bronnen komt, wordt de data verwerkt om zo gestandaardiseerd mogelijk te worden. Dit vergroot de vindbaarheid en bruikbaarheid van de data voor de volgende stappen.
- Load Zodra de data in een vindbaar en bruikbaar formaat staat, wordt deze meestal opgeslagen in datawarehouses. Hierdoor is de data altijd beschikbaar voor verdere analyse.
Datawarehouses
Datawarehouses zijn de plekken waar gestandaardiseerde data wordt opgeslagen. Ze zijn geoptimaliseerd voor het filteren en lezen van grote hoeveelheden data. In moderne datawarehouses kan zowel gestructureerde als ongestructureerde data worden opgeslagen, omdat het ook belangrijk is om data die niet te categoriseren is, zoals foto’s en video’s, te bewaren.
Data-engineering vs. data science
De verschillen tussen de rollen van een data-engineer en een data scientist zijn belangrijk. Aan de ene kant spelen data scientists een belangrijke rol binnen bedrijven omdat ze bijdragen aan datagedreven besluitvorming. Toch is het succes van data scientists maar zo goed als de data die ze tot hun beschikking hebben.
Aan de andere kant zijn het de data-engineers die de systemen ontwerpen die data op een georganiseerde en consistente manier aan data scientists leveren. Zodra de data-engineers de informatie voor hen beschikbaar maken, proberen data scientists patronen in de data te vinden om tot conclusies te komen, gebruikmakend van het format dat door de data-engineers is aangeleverd.
Data-engineers en data scientists werken duidelijk nauw samen. We kunnen het vergelijken met een voetbalwedstrijd. In voetbal is het de coach die de strategieën ontwikkelt om doelkansen te creëren en die de spelers op bepaalde posities zet. In deze context is de coach de data-engineer; je kunt de bal zien als de data en de speler die scoort als de data scientist. De rest van het team is de infrastructuur.
Waarom is data-engineering populairder geworden?
Volgens onderzoek op het platform Burning Glass Nova namen vacatures voor "data engineer" in 2019 met 88,3% toe. Volgens dit onderzoek is de vraag naar data-engineers sinds 2016 aan het stijgen. Een andere interessante bevinding is dat het aantal vacatures voor data-engineers bijna 5 keer hoger is dan het aantal vacatures voor data scientists. Het salaris van een data-engineer ligt ook 20–30% hoger dan dat van een data scientist.
Zoals hierboven vermeld, zijn data scientists de laatste schakel in de dataverwerkingsketen. Ze hebben data nodig die door een data-engineer is verwerkt om hun werk te kunnen doen. Naarmate het aantal databronnen en datatypes toeneemt, groeit de behoefte aan een data-engineer. Om deze reden zijn bedrijven recentelijk meer gaan investeren in het extraheren en distribueren van data.
In Figuur 4.1 toont een piramidediagram de hiërarchie van behoeften binnen data science. In deze hiërarchie bevinden de taken die aan data-engineers zijn toegewezen zich aan de basis van de piramide, wat verklaart hoe cruciaal data-engineers voor bedrijven zijn.
Figuur 4.1: De hiërarchie van behoeften in data science.Wat zijn de skills van een data-engineer?
De skills van data-engineers overlappen over het algemeen met die van software-engineers en data scientists, zoals weergegeven in Figuur 5.1.
Figuur 5.1: Datarollen en skillsetsLigt de rol van een data-engineer dichter bij die van een software-engineer of bij die van een data scientist?
De vorige functies van een groep data-engineers staan in Figuur 5.2. Volgens deze figuur heeft meer dan 40% van hen een achtergrond in software-engineering. Dit betekent niet alleen dat data-engineering en software-engineering nauwer verwant zijn dan we misschien dachten, maar ook dat software-engineers tegenwoordig veel eerder overstappen naar data-engineering dan naar welk ander vakgebied dan ook.
Figuur 5.2: Data-engineers naar eerdere rol (top 10).Bij DataCamp vinden we dat een goede data-engineer over de volgende skills beschikt:
- Software-engineeringachtergrond Data-engineers moeten een achtergrond in software-engineering hebben, omdat ze data-engineeringuitdagingen moeten benaderen met hun kennis van objectgeoriënteerd programmeren, datastructuren en algoritmen. Data-engineers moeten ervaring hebben met Python, Scala of Java.
- Tools Data-engineers moeten uit de voeten kunnen met data-engineeringtools zoals Airflow, Apache of Kafka.
- Databasetechnologieën Een data-engineer moet kennis hebben van meerdere soorten databases.
- Cloudtechnologieën Data-engineers moeten kunnen werken met meerdere cloudplatforms zoals Amazon Web Services, Google Cloud Platform en Microsoft Azure. Ze hebben ook ervaring nodig met cloudarchitectuur en DevOps-tools, omdat zij verantwoordelijk zijn voor de automatisering van de dataflow in het systeem.
Hoe leer je data-engineering
Als je je wilt ontwikkelen in het data-engineeringvak, kun je beginnen met het volgen van de volgende aanbevolen DataCamp-cursussen. Door deze cursussen en projecten te voltooien, word je waarschijnlijk een geschiktere kandidaat voor stages of banen op het gebied van data-engineering.
- Inleiding tot Python
- Python voor gevorderden
- Inleiding tot relationele databases in SQL
- Inleiding tot Scala
- Inleiding tot data-engineering
- Inleiding tot Airflow in Python
- AWS Cloud Concepts
- Exploring London's Travel Network (Snowflake, Redshift, BigQuery) Projects
- Data-engineeringpijplijnen bouwen in Python
- NoSQL-concepten
- ETL in Python
- Streamingconcepten
- Streaming data met AWS Kinesis en Lambda
Daarnaast is onze Data Engineer Certification erkend in de industrie en stelt die je in staat je skills aan werkgevers te bewijzen.
Als je geïnteresseerd bent in dit carrièrepad, kun je in ons aparte artikel lezen hoe je data-engineer wordt.
