Wa binne data-yngenieurs en hoe wurde se ien?

Nochris goeie! De titel fan it artikel sprekt foar himsels. Foar it begjin fan 'e kursus Data Engineer wy biede om út te finen wa't dizze data-yngenieurs binne. It artikel hat in protte nuttige keppelings. Lokkich lêzen.

Wa binne data-yngenieurs en hoe wurde se ien?

In ienfâldige hantlieding oer hoe't jo de welle fan Data Engineering kinne fange en jo net yn 'e ôfgrûn kinne slepe.

It liket derop dat elkenien dizze dagen in Data Scientist wol wêze. Mar hoe sit it mei Data Engineering (data engineering)? Yn feite is dit in soarte fan hybride fan in gegevens analyst en in gegevens wittenskipper; in data-yngenieur is normaal ferantwurdlik foar it behearen fan workflows, it ferwurkjen fan pipelines, en ETL-prosessen. Fanwegen it belang fan dizze funksjes is dit op it stuit in oar populêr profesjonele jargon dat aktyf momentum wint.

It hege salaris en de grutte fraach binne mar in lyts part fan wat dizze baan ekstreem oantreklik makket! As jo ​​​​meidwaan wolle oan 'e rigen fan helden, is it noait te let om te begjinnen mei learen. Yn dizze post haw ik alle ynformaasje sammele dy't jo nedich binne om jo te helpen jo earste stappen te nimmen.

Dat, lit ús begjinne!

Wat is Data Engineering?

Earlik sein, d'r is gjin bettere ferklearring dan dit:

"In wittenskipper kin in nije stjer ûntdekke, mar hy kin gjin ien meitsje. Hy sil in yngenieur freegje moatte om it foar him te dwaan."

-Gordon Lindsay Glegg

Sa is de rol fan in data-yngenieur frijwat wichtich.

Ut de namme folget dat data-engineering ferbûn is mei gegevens, nammentlik mei har levering, opslach en ferwurking. Dêrnjonken is de haadtaak fan yngenieurs it leverjen fan in betroubere ynfrastruktuer foar gegevens. As wy sjogge nei de AI-hiërargy fan behoeften, nimt gegevenstechnyk de earste 2-3 stappen: kolleksje, beweging en opslach, gegevens tarieding.

Wa binne data-yngenieurs en hoe wurde se ien?

Wat docht in data-yngenieur?

Mei de komst fan grutte gegevens is de omfang fan ferantwurdlikens dramatysk feroare. As earder dizze saakkundigen grutte SQL-fragen skreau en destillearre gegevens mei help fan ark lykas Informatica ETL, Pentaho ETL, Talend, no binne de easken foar data-yngenieurs ferhege.

De measte bedriuwen mei iepen fakatueres foar de posysje fan data-yngenieur hawwe de folgjende easken:

  • Prachtige kennis fan SQL en Python.
  • Underfining mei wolkplatfoarms, benammen Amazon Web Services.
  • Kennis fan Java / Scala foarkar.
  • Goed begryp fan SQL- en NoSQL-databases (gegevensmodellering, gegevensopslach).

Hâld der rekken mei dat dit allinich de essensjele dingen is. Ut dizze list kin oannommen wurde dat data-yngenieurs spesjalisten binne yn softwareûntwikkeling en backend.
As in bedriuw bygelyks begjint mei it generearjen fan in grutte hoemannichte gegevens út ferskate boarnen, is jo taak as data-yngenieur de kolleksje fan ynformaasje, de ferwurking en opslach dêrfan te organisearjen.

De list mei ark brûkt yn dit gefal kin ferskille, it hinget allegear ôf fan it folume fan dizze gegevens, de snelheid fan har ûntfangst en heterogeniteit. De measte bedriuwen dogge hielendal net mei grutte gegevens, dus as in sintralisearre repository, it saneamde data warehouse, kinne jo in SQL-database (PostgreSQL, MySQL, ensfh.) brûke mei in lytse set skripts dy't gegevens nei it pakhús stjoere. .

IT-giganten lykas Google, Amazon, Facebook of Dropbox hawwe hegere easken: kennis fan Python, Java of Scala.

  • Underfining mei grutte data: Hadoop, Spark, Kafka.
  • Kennis fan algoritmen en gegevensstruktueren.
  • Begripe de basis fan ferspraat systemen.
  • Underfining mei ark foar gegevensfisualisaasje lykas Tableau of ElasticSearch soe in grut plus wêze.

Dat is, der is in dúdlike ferskowing nei grutte data, nammentlik yn har ferwurking ûnder hege loads. Dizze bedriuwen hawwe ferhege easken foar systeemfouttolerânsje.

Data Engineers vs. data wittenskippers

Wa binne data-yngenieurs en hoe wurde se ien?
Okee, dat wie in ienfâldige en grappige ferliking (neat persoanlik), mar it is eins folle yngewikkelder.

Earst moatte jo bewust wêze dat d'r in protte betizing is oer de rollen en feardigens fan in gegevenswittenskipper en in gegevensyngenieur. Dat is, jo kinne maklik fernuverje oer hokker feardigens nedich binne om in suksesfolle data-yngenieur te wêzen. Fansels binne d'r bepaalde feardichheden dy't oerlaapje mei beide rollen. Mar d'r binne ek in oantal diametraal tsjinoerstelde feardichheden.

Gegevenswittenskip is serieus bedriuw, mar wy geane nei in wrâld fan funksjonele gegevenswittenskip wêr't praktiken har eigen analytiken kinne dwaan. Om gegevenspipelines en yntegreare gegevensstruktueren yn te skeakeljen, hawwe jo gegevensyngenieurs nedich, net wittenskippers.

Is in data-yngenieur mear yn fraach dan in datawittenskipper?

- Ja, want foardat jo in wortelkoek meitsje kinne, moatte jo earst woartels sammelje, skilje en opslaan!

In data-yngenieur begrypt programmearring better dan hokker gegevenswittenskipper, mar as it giet om statistiken, is alles krekt oarsom.

Mar hjir is it foardiel fan in data-yngenieur:

sûnder him / har, de wearde fan in prototype model, meastentiids besteande út in stik ferskriklike kwaliteit koade yn in Python triem, krigen fan in gegevens wittenskipper en ien of oare wize produsearje in resultaat, tend to nul.

Sûnder in data-yngenieur sil dizze koade nea in projekt wurde en gjin saaklik probleem sil effektyf wurde oplost. De data-yngenieur besiket it allegear yn in produkt te meitsjen.

Basisynformaasje dy't in data-yngenieur moat witte

Wa binne data-yngenieurs en hoe wurde se ien?

Dus, as dizze baan it ljocht yn jo sparkt en jo binne fol entûsjasme - jo kinne dit leare, jo kinne alle nedige feardigens behearskje en in echte rockstjer wurde op it mêd fan data mining. En, ja, jo kinne it sels dwaan sûnder programmearfeardigens of oare technyske kennis. It is dreech, mar mooglik!

Wat binne de earste stappen?

Jo moatte in algemien idee hawwe fan wat is wat.

Alderearst ferwiist Data Engineering nei kompjûterwittenskip. Mear spesifyk moatte jo effisjinte algoritmen en gegevensstruktueren begripe. As twadde, om't data-yngenieurs mei gegevens wurkje, is it nedich om te begripen hoe't databases wurkje en de struktueren dy't har ûnderlizze.

Bygelyks, konvinsjonele B-tree SQL-databases binne basearre op de B-Tree-gegevensstruktuer, lykas, yn moderne ferspraat repositories, LSM-Tree en oare wizigingen fan hash-tabellen.

* Dizze stappen binne basearre op in geweldich artikel Adilya Khashtamova. Dus, as jo Russysk kenne, stypje dizze auteur en lês syn post.

1. Algoritmen en gegevensstruktueren

It brûken fan de juste gegevensstruktuer kin de prestaasjes fan in algoritme gâns ferbetterje. Ideal moatte wy allegear gegevensstruktueren en algoritmen leare op ús skoallen, mar dit wurdt selden oait behannele. It is yn alle gefallen nea te let om út te finen.
Dat, hjir binne myn favorite fergese kursussen foar it learen fan gegevensstruktueren en algoritmen:

Plus, ferjit net oer it klassike wurk oer Thomas Kormen's algoritmen - Ynlieding ta Algoritmen. Dit is de perfekte referinsje as jo jo ûnthâld moatte opknappe.

  • Om jo feardigens te ferbetterjen brûke Leetcode.

Jo kinne ek dûke yn 'e wrâld fan databases mei dizze geweldige Carnegie Mellon Youtube-fideo's:

2. Learje SQL

Us hiele libben is gegevens. En om dizze gegevens út 'e databank te heljen, moatte jo deselde taal mei har "sprekke".

SQL (Structured Query Language) is de taal fan kommunikaasje yn it gegevensdomein. Nettsjinsteande wat immen seit, SQL hat libbe, libbet en sil in heule tiid libje.

As jo ​​in lange tiid yn ûntwikkeling west hawwe, hawwe jo wierskynlik opfallen dat SQL's driigjende dea-geroften fan tiid ta tiid opdûke. De taal waard ûntwikkele yn 'e iere jierren '70 en is noch altyd tige populêr ûnder analisten, ûntwikkelders en gewoan entûsjasters.
Sûnder kennis fan SQL is d'r neat te dwaan yn data-engineering, om't jo ûnûntkomber fragen moatte oanmeitsje om gegevens op te heljen. Alle moderne grutte datawinkels stypje SQL:

  • Amazon RedShift
  • HP Vertica
  • Oracle
  • SQL Server

… en in protte oaren.

Foar it analysearjen fan in grutte laach fan gegevens opslein yn ferspraat systemen lykas HDFS, SQL-motoren waarden útfûn: Apache Hive, Impala, ensfh Sjoch, it giet net oeral.

Hoe kinne jo SQL leare? Doch it gewoan yn 'e praktyk.

Om dit te dwaan, ried ik oan dat jo josels fertroud meitsje mei in poerbêste tutorial, dy't trouwens fergees is, fan Mode Analytics.

  1. Intermediate SQL
  2. Joining gegevens yn SQL

In ûnderskiedend skaaimerk fan dizze kursussen is de oanwêzigens fan in ynteraktive omjouwing wêryn jo SQL-fragen direkt yn 'e browser kinne skriuwe en útfiere. Helpmiddel Moderne SQL sil net oerstallich wêze. En jo kinne dizze kennis tapasse op Leetcode taken yn 'e database seksje.

3. Programming yn Python en Java / Scala

Wêrom is it wurdich om de programmeartaal Python te learen, skreau ik al yn it artikel Python vs R. Kies it bêste ark foar AI, ML en Data Science. Wat Java en Scala oanbelanget, binne de measte ark foar it opslaan en ferwurkjen fan grutte hoemannichten gegevens yn dizze talen skreaun. Bygelyks:

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

Om te begripen hoe't dizze ark wurkje, moatte jo de talen kenne wêryn se binne skreaun. De funksjonele oanpak fan Scala lit jo de problemen fan parallelle gegevensferwurking effektyf oplosse. Python, spitigernôch, kin net opskeppe fan snelheid en parallelle ferwurking. Yn 't algemien is kennis fan ferskate talen en programmearparadigma's goed foar de breedte fan oanpakken foar probleemoplossing.

Om yn 'e Scala-taal te dûken, kinne jo lêze Programming yn Scala fan de skriuwer fan de taal. Ek hat Twitter in goede ynliedende gids publisearre - Scala Skoalle.

Wat Python oanbelanget, leau ik Fluent Python it bêste mid-level boek.

4. Tools foar it wurkjen mei grutte gegevens

Hjir is in list mei de populêrste ark yn 'e wrâld fan grutte gegevens:

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

Jo kinne mear ynformaasje fine oer it bouwen fan grutte blokken gegevens yn dizze geweldige ynteraktive omjouwing. De meast populêre ark binne Spark en Kafka. Se binne perfoarst de muoite wurdich om te studearjen, it is winsklik om te begripen hoe't se fan binnen wurkje. Jay Kreps (mei-auteur fan Kafka) publisearre yn 2013 in monumintaal wurk It log: wat elke software-ûntwikkelder moat witte oer real-time datafúzje-abstraksjeTroch de wei, de wichtichste ideeën út dizze Talmoed waarden brûkt om te meitsjen Apache Kafka.

5. Wolke platfoarms

Wa binne data-yngenieurs en hoe wurde se ien?

Kennis fan op syn minst ien wolkplatfoarm stiet op 'e list mei basiseasken foar sollisitanten foar de posysje fan data-yngenieur. Wurkjouwers jouwe foarkar oan Amazon Web Services, op it twadde plak is it Google-wolkplatfoarm, en Microsoft Azure slút de top trije.

Jo moatte bekend wêze mei Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Ferspraat systemen

Wurkje mei grutte gegevens betsjut de oanwêzigens fan klusters fan selsstannich operearjende kompjûters, de ferbining tusken dat wurdt útfierd fia in netwurk. Hoe grutter it kluster, hoe wierskynliker it is dat syn lidknooppunten mislearje. Om in geweldige gegevensekspert te wurden, moatte jo de problemen en besteande oplossingen foar ferdielde systemen begripe. Dit gebiet is âld en kompleks.

Andrew Tanenbaum wurdt beskôge as in pionier op dit mêd. Foar dyjingen dy't net bang binne foar teory, advisearje ik syn boek "Distribuearre systemen", Foar begjinners kin it lykje yngewikkeld, mar it sil echt helpe jo hone dyn feardichheden.

ik tink "Designing Data-Intensive Applications" troch Martin Kleppmann it bêste ynliedingsboek. Troch de wei, Martin hat in prachtich blog. Syn wurk sil helpe om kennis te systematisearjen oer it bouwen fan in moderne ynfrastruktuer foar it opslaan en ferwurkjen fan grutte gegevens.
Foar dyjingen dy't graach fideo's besjen, is der in kursus op Youtube Ferspraat kompjûter systemen.

7. Data pipelines

Wa binne data-yngenieurs en hoe wurde se ien?

Gegevenspipelines binne iets wêr't jo net sûnder kinne libje as data-yngenieur.

Meastentiids bout in data-yngenieur in saneamde pipeline-datum, dat is, makket in proses foar it leverjen fan gegevens fan it iene plak nei it oare. Dit kinne oanpaste skripts wêze dy't nei in eksterne tsjinst API geane of in SQL-fraach meitsje, de gegevens foltôgje en it pleatse yn in sintralisearre opslach (data warehouse) of unstrukturearre gegevens opslach (datamaren).

Om gearfetsje: de checklist foar basisgegevensyngenieur

Wa binne data-yngenieurs en hoe wurde se ien?

Gearfetsjend is in goed begryp fan it folgjende fereaske:

  • Ynformaasjesystemen;
  • Softwareûntwikkeling (Agile, DevOps, Design Techniques, SOA);
  • Ferspraat systemen en parallelle programmearring;
  • Fundamentele gegevens fan 'e database - planning, ûntwerp, operaasje en probleemoplossing;
  • Untwerpeksperiminten - A/B-tests om konsepten te bewizen, betrouberens, systeemprestaasjes te bepalen en robúste paden te ûntwikkeljen om rap goede oplossingen te leverjen.

Dit binne mar in pear fan 'e easken om in data-yngenieur te wurden, dus learje en begripe gegevenssystemen, ynformaasjesystemen, trochgeande levering / ynset / yntegraasje, programmeartalen, en oare kompjûterwittenskiplike ûnderwerpen (net yn alle fakgebieten).

En as lêste, it lêste mar tige wichtige ding wol ik sizze.

It paad om Data Engineering te wurden is net sa maklik as it liket. Hy ferjouwt net, hy frustreart, en jo moatte hjirfoar ree wêze. Guon mominten yn dizze reis kinne jo triuwe om alles te stopjen. Mar dit is in echt wurk- en learproses.

Fersierje it gewoan net fan it begjin ôf. It hiele punt fan reizgjen is om safolle mooglik te learen en ree te wêzen foar nije útdagings.
Hjir is in geweldige foto dy't ik tsjinkaam dy't dit punt goed yllustrearret:

Wa binne data-yngenieurs en hoe wurde se ien?

En ja, ferjit net om burn-out en rêst te foarkommen. Dit is ek tige wichtich. Súkses!

Hoe fynsto it artikel, freonen? Wy noegje jo út om fergees webinardat sil plakfine hjoed om 20.00. Tidens it webinar sille wy beprate hoe't jo in effisjint en skalberber gegevensferwurkingssysteem bouwe kinne foar in lyts bedriuw as opstart tsjin minimale kosten. Litte wy as praktyk yn 'e kunde komme mei de ark foar gegevensferwurking fan Google Cloud. Oant sjen!

Boarne: www.habr.com

Add a comment