Wie is data-ingenieurs en hoe word hulle een?

Hallo weer! Die titel van die artikel spreek vanself. Voor die aanvang van die kursus Data Ingenieur ons bied aan om uit te vind wie hierdie data-ingenieurs is. Die artikel het baie nuttige skakels. Lekker lees.

Wie is data-ingenieurs en hoe word hulle een?

'n Eenvoudige gids oor hoe om die golf van Data Engineering te vang en nie te laat jou in die afgrond sleep nie.

Dit lyk asof almal deesdae 'n Data Scientist wil wees. Maar wat van Data Engineering (data-ingenieurswese)? Trouens, dit is 'n soort baster van 'n data-ontleder en 'n data-wetenskaplike; 'n data-ingenieur is gewoonlik verantwoordelik vir die bestuur van werkvloeie, verwerking van pyplyne en ETL-prosesse. As gevolg van die belangrikheid van hierdie kenmerke, is dit tans nog 'n gewilde professionele jargon wat aktief momentum kry.

Die hoë salaris en groot aanvraag is slegs 'n klein deel van wat hierdie werk uiters aantreklik maak! As jy by die geledere van helde wil aansluit, is dit nooit te laat om te begin leer nie. In hierdie pos het ek al die inligting versamel wat jy nodig het om jou te help om jou eerste stappe te neem.

Laat ons dus begin!

Wat is Data Engineering?

Eerlik, daar is geen beter verduideliking as dit nie:

“’n Wetenskaplike kan ’n nuwe ster ontdek, maar hy kan nie een skep nie. Hy sal ’n ingenieur moet vra om dit vir hom te doen.”

–Gordon Lindsay Glegg

Die rol van 'n data-ingenieur is dus baie belangrik.

Uit die naam volg dit dat data-ingenieurswese met data geassosieer word, naamlik met die aflewering, berging en verwerking daarvan. Gevolglik is die hooftaak van ingenieurs om 'n betroubare infrastruktuur vir data te verskaf. As ons kyk na die KI-hiërargie van behoeftes, neem data-ingenieurswese die eerste 2-3 stappe: versameling, beweging en berging, data voorbereiding.

Wie is data-ingenieurs en hoe word hulle een?

Wat doen 'n data-ingenieur?

Met die koms van groot data het die omvang van verantwoordelikheid dramaties verander. As hierdie kundiges vroeër groot SQL-navrae en gedistilleerde data geskryf het met behulp van instrumente soos Informatica ETL, Pentaho ETL, Talend, het die vereistes vir data-ingenieurs nou toegeneem.

Die meeste maatskappye met oop vakatures vir die pos van data-ingenieur het die volgende vereistes:

  • Uitstekende kennis van SQL en Python.
  • Ervaring met wolkplatforms, veral Amazon Web Services.
  • Kennis van Java/Scala verkieslik.
  • Goeie begrip van SQL- en NoSQL-databasisse (datamodellering, databerging).

Hou in gedagte, dit is slegs die noodsaaklikste. Uit hierdie lys kan aanvaar word dat data-ingenieurs spesialiste is in sagteware-ontwikkeling en backend.
Byvoorbeeld, as 'n maatskappy 'n groot hoeveelheid data uit verskillende bronne begin genereer, is jou taak as 'n data-ingenieur om die versameling van inligting, die verwerking en berging daarvan te organiseer.

Die lys van gereedskap wat in hierdie geval gebruik word, kan verskil, dit hang alles af van die volume van hierdie data, die spoed van hul ontvangs en heterogeniteit. Die meeste maatskappye hanteer glad nie groot data nie, so as 'n gesentraliseerde bewaarplek, die sogenaamde datapakhuis, kan jy 'n SQL-databasis (PostgreSQL, MySQL, ens.) gebruik met 'n klein stel skrifte wat data na die pakhuis stuur .

IT-reuse soos Google, Amazon, Facebook of Dropbox het hoër vereistes: kennis van Python, Java of Scala.

  • Ervaring met groot data: Hadoop, Spark, Kafka.
  • Kennis van algoritmes en datastrukture.
  • Begrip van die basiese beginsels van verspreide stelsels.
  • Ervaring met datavisualiseringsinstrumente soos Tableau of ElasticSearch sal 'n groot pluspunt wees.

Dit wil sê, daar is 'n duidelike verskuiwing na groot data, naamlik in hul verwerking onder hoë vragte. Hierdie maatskappye het verhoogde vereistes vir stelselfouttoleransie.

Data-ingenieurs vs. data wetenskaplikes

Wie is data-ingenieurs en hoe word hulle een?
Goed, dit was 'n eenvoudige en snaakse vergelyking (niks persoonlik nie), maar dit is eintlik baie meer ingewikkeld.

Eerstens moet jy bewus wees dat daar baie verwarring is oor die rolle en vaardighede van 'n datawetenskaplike en 'n data-ingenieur. Dit wil sê, jy kan maklik verbaas wees oor watter vaardighede nodig is om 'n suksesvolle data-ingenieur te wees. Natuurlik is daar sekere vaardighede wat met albei rolle oorvleuel. Maar daar is ook 'n aantal diametraal teenoorgestelde vaardighede.

Datawetenskap is 'n ernstige besigheid, maar ons beweeg na 'n wêreld van funksionele datawetenskap waar praktisyns hul eie analise kan doen. Om datapyplyne en geïntegreerde datastrukture moontlik te maak, benodig jy data-ingenieurs, nie wetenskaplikes nie.

Is 'n data-ingenieur meer in aanvraag as 'n data-wetenskaplike?

- Ja, want voor jy 'n wortelkoek kan maak, moet jy eers wortels bymekaarmaak, skil en voorraad aanmaak!

’n Data-ingenieur verstaan ​​programmering beter as enige datawetenskaplike, maar wanneer dit by statistiek kom, is alles presies die teenoorgestelde.

Maar hier is die voordeel van 'n data-ingenieur:

sonder hom/haar, neig die waarde van 'n prototipe-model, wat meestal bestaan ​​uit 'n stuk verskriklike gehalte-kode in 'n Python-lêer, verkry van 'n datawetenskaplike en op een of ander manier 'n resultaat lewer, na nul.

Sonder 'n data-ingenieur sal hierdie kode nooit 'n projek word nie en geen besigheidsprobleem sal effektief opgelos word nie. Die data-ingenieur probeer om dit alles in 'n produk te omskep.

Basiese inligting wat 'n data-ingenieur behoort te weet

Wie is data-ingenieurs en hoe word hulle een?

Dus, as hierdie werk die lig in jou laat opvlam en jy is vol entoesiasme - jy is in staat om dit te leer, jy kan al die nodige vaardighede bemeester en 'n ware rockster op die gebied van data-ontginning word. En, ja, jy kan dit doen selfs sonder programmeringsvaardighede of ander tegniese kennis. Dit is moeilik, maar moontlik!

Wat is die eerste stappe?

Jy moet 'n algemene idee hê van wat is wat.

Eerstens verwys Data Engineering na rekenaarwetenskap. Meer spesifiek moet jy doeltreffende algoritmes en datastrukture verstaan. Tweedens, aangesien data-ingenieurs met data werk, is dit nodig om te verstaan ​​hoe databasisse werk en die strukture wat hulle onderlê.

Byvoorbeeld, konvensionele B-tree SQL-databasisse is gebaseer op die B-Tree-datastruktuur, sowel as, in moderne verspreide bewaarplekke, LSM-Tree en ander wysigings van hash-tabelle.

*Hierdie stappe is gebaseer op 'n wonderlike artikel Adilya Khashtamova. Dus, as jy Russies ken, ondersteun hierdie skrywer en lees sy pos.

1. Algoritmes en datastrukture

Die gebruik van die regte datastruktuur kan die werkverrigting van 'n algoritme aansienlik verbeter. Ideaal gesproke behoort ons almal datastrukture en algoritmes in ons skole te leer, maar dit word selde ooit gedek. Dit is in elk geval nooit te laat om uit te vind nie.
So, hier is my gunsteling gratis kursusse om datastrukture en algoritmes te leer:

Plus, moenie vergeet van die klassieke werk oor Thomas Kormen se algoritmes nie - Inleiding tot Algoritmes. Dit is die perfekte verwysing wanneer jy jou geheue moet opknap.

  • Om jou vaardighede gebruik te verbeter Leetcode.

Jy kan ook in die wêreld van databasisse duik met hierdie wonderlike Carnegie Mellon Youtube-video's:

2. Leer SQL

Ons hele lewe is data. En om hierdie data uit die databasis te haal, moet jy dieselfde taal daarmee "praat".

SQL (Structured Query Language) is die taal van kommunikasie in die datadomein. Ongeag wat enigiemand sê, SQL het geleef, leef en sal vir 'n baie lang tyd lewe.

As jy al lank in ontwikkeling is, het jy waarskynlik opgemerk dat SQL se dreigende doodsgerugte van tyd tot tyd opduik. Die taal is in die vroeë 70's ontwikkel en is steeds baie gewild onder ontleders, ontwikkelaars en net entoesiaste.
Sonder kennis van SQL is daar niks om te doen in data-ingenieurswese nie, aangesien jy noodwendig navrae sal moet skep om data te herwin. Alle moderne grootdatawinkels ondersteun SQL:

  • Amazon rooiverskuiwing
  • HP Vertica
  • Oracle
  • SQL Server

… en vele ander.

Om 'n groot laag data wat in verspreide stelsels soos HDFS gestoor is, te ontleed, is SQL-enjins uitgevind: Apache Hive, Impala, ens. Sien, dit gaan nêrens heen nie.

Hoe om SQL te leer? Doen dit net in die praktyk.

Om dit te doen, sal ek aanbeveel dat u uself vergewis van 'n uitstekende tutoriaal, wat terloops gratis is, vanaf Modus-analise.

  1. Intermediêre SQL
  2. Verbind data in SQL

'n Kenmerkende kenmerk van hierdie kursusse is die teenwoordigheid van 'n interaktiewe omgewing waarin jy SQL-navrae direk in die blaaier kan skryf en uitvoer. Hulpbron Moderne SQL sal nie oorbodig wees nie. En jy kan hierdie kennis toepas op Leetcode take in die databasis afdeling.

3. Programmering in Python en Java/Scala

Hoekom dit die moeite werd is om die Python-programmeertaal te leer, het ek reeds in die artikel geskryf Python vs R. Kies die beste hulpmiddel vir KI, ML en Data Science. Wat Java en Scala betref, is die meeste van die gereedskap vir die stoor en verwerking van groot hoeveelhede data in hierdie tale geskryf. Byvoorbeeld:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Java)
  • HBase (Java)
  • Apache Hive (Java)

Om te verstaan ​​hoe hierdie instrumente werk, moet jy die tale ken waarin hulle geskryf is. Die funksionele benadering van Scala laat jou toe om die probleme van parallelle dataverwerking effektief op te los. Python kan ongelukkig nie spog met spoed en parallelle verwerking nie. Oor die algemeen is kennis van verskeie tale en programmeringsparadigmas goed vir die breedte van benaderings tot probleemoplossing.

Om in die Scala-taal te duik, kan jy lees Programmering in Scala van die skrywer van die taal. Twitter het ook 'n goeie inleidende gids gepubliseer − Scala Skool.

Wat Python betref, glo ek Vloeiende Python die beste middelvlakboek.

4. Gereedskap om met groot data te werk

Hier is 'n lys van die gewildste instrumente in die groot data-wêreld:

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache Cassandra

Jy kan meer inligting vind oor die bou van groot blokke data in hierdie wonderlike interaktiewe omgewing. Die gewildste gereedskap is Spark en Kafka. Hulle is beslis die moeite werd om te bestudeer, dit is wenslik om van binne af te verstaan ​​hoe hulle werk. Jay Kreps (mede-outeur van Kafka) het in 2013 'n monumentale werk gepubliseer Die logboek: wat elke sagteware-ontwikkelaar behoort te weet oor intydse datafusie-abstraksieTerloops, die hoofgedagtes uit hierdie Talmud is gebruik om Apache Kafka te skep.

5. Wolkplatforms

Wie is data-ingenieurs en hoe word hulle een?

Kennis van ten minste een wolkplatform is op die lys van basiese vereistes vir aansoekers vir die pos van data-ingenieur. Werkgewers verkies Amazon Web Services, gevolg deur Google Cloud Platform, en Microsoft Azure sluit die top drie.

Jy moet vertroud wees met Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Verspreide stelsels

Werk met groot data impliseer die teenwoordigheid van groepe van rekenaars wat onafhanklik werk, waartussen die verbinding oor 'n netwerk uitgevoer word. Hoe groter die groep, hoe meer waarskynlik is dit dat sy lid nodusse misluk. Om 'n goeie data-kenner te word, moet jy die probleme en bestaande oplossings vir verspreide stelsels verstaan. Hierdie area is oud en kompleks.

Andrew Tanenbaum word as 'n baanbreker op hierdie gebied beskou. Vir diegene wat nie bang is vir teorie nie, beveel ek sy boek aan "Verspreide stelsels", Vir beginners lyk dit dalk ingewikkeld, maar dit sal jou regtig help om jou vaardighede te slyp.

ek dink "Ontwerp data-intensiewe toepassings" deur Martin Kleppmann die beste inleidende boek. Terloops, Martin het 'n wonderlike blog. Sy werk sal help om kennis oor die bou van 'n moderne infrastruktuur vir die stoor en verwerking van groot data te sistematiseer.
Vir diegene wat daarvan hou om video's te kyk, is daar 'n kursus op Youtube Verspreide rekenaarstelsels.

7. Datapypleidings

Wie is data-ingenieurs en hoe word hulle een?

Datapyplyne is iets waarsonder jy nie as 'n data-ingenieur kan lewe nie.

Meeste van die tyd bou 'n data-ingenieur 'n sogenaamde pyplyndatum, dit wil sê, skep 'n proses om data van een plek na 'n ander te lewer. Dit kan pasgemaakte skrifte wees wat na 'n eksterne diens-API gaan of 'n SQL-navraag maak, die data voltooi en dit in 'n gesentraliseerde berging (datapakhuis) of ongestruktureerde databerging (datamere) plaas.

Om op te som: die basiese data-ingenieur kontrolelys

Wie is data-ingenieurs en hoe word hulle een?

Kortom, 'n goeie begrip van die volgende word vereis:

  • Inligtingstelsels;
  • Sagteware-ontwikkeling (Agile, DevOps, Design Techniques, SOA);
  • Verspreide stelsels en parallelle programmering;
  • Databasis grondbeginsels - beplanning, ontwerp, bedryf en probleemoplossing;
  • Ontwerpeksperimente - A/B-toetse om konsepte te bewys, betroubaarheid, stelselwerkverrigting te bepaal en robuuste paaie te ontwikkel om vinnig goeie oplossings te lewer.

Dit is net 'n paar van die vereistes om 'n data-ingenieur te word, so leer en verstaan ​​datastelsels, inligtingstelsels, deurlopende aflewering/ontplooiing/integrasie, programmeertale en ander rekenaarwetenskaponderwerpe (nie in alle vakgebiede nie).

En laastens, die laaste maar baie belangrike ding wat ek wil sê.

Die pad om Data Engineering te word, is nie so maklik soos dit mag lyk nie. Hy vergewe nie, hy frustreer, en jy moet voorbereid wees hiervoor. Sommige oomblikke in hierdie reis kan jou druk om alles te stop. Maar dit is 'n ware werk- en leerproses.

Moet dit net nie van die begin af versier nie. Die hele punt van reis is om soveel as moontlik te leer en gereed te wees vir nuwe uitdagings.
Hier is 'n wonderlike prentjie wat ek teëgekom het wat hierdie punt goed illustreer:

Wie is data-ingenieurs en hoe word hulle een?

En ja, moenie vergeet om uitbranding en rus te vermy nie. Dit is ook baie belangrik. Sterkte!

Hoe hou julle van die artikel, vriende? Ons nooi jou uit om gratis webinarwat vandag om 20.00:XNUMX sal plaasvind. Tydens die webinar sal ons bespreek hoe om 'n doeltreffende en skaalbare dataverwerkingstelsel vir 'n klein onderneming of opstart teen minimale koste te bou. As 'n praktyk, kom ons maak kennis met die Google Wolk-dataverwerkingnutsgoed. Totsiens!

Bron: will.com

Voeg 'n opmerking