Cine sunt inginerii de date și cum devii unul?

Buna din nou! Titlul articolului vorbește de la sine. În așteptarea începerii cursului Inginer de date Vă sugerăm să înțelegeți cine sunt inginerii de date. Există o mulțime de link-uri utile în articol. Lectura placuta.

Cine sunt inginerii de date și cum devii unul?

Un ghid simplu despre cum să prindeți valul Data Engineering și să nu-l lăsați să vă târască în abis.

Se pare că toată lumea vrea să devină Data Scientist în aceste zile. Dar cum rămâne cu Data Engineering? În esență, acesta este un fel de hibrid între un analist de date și un om de știință de date; Un inginer de date este, de obicei, responsabil pentru gestionarea fluxurilor de lucru, a conductelor de procesare și a proceselor ETL. Datorită importanței acestor funcții, acesta este în prezent un alt jargon profesional popular care câștigă în mod activ amploare.

Salariile mari și cererea mare sunt doar o mică parte din ceea ce face acest job extrem de atractiv! Dacă doriți să vă alăturați rândurilor eroilor, nu este niciodată prea târziu să începeți să învățați. În această postare, am adunat toate informațiile necesare pentru a vă ajuta să faceți primii pași.

Așa că hai să începem!

Ce este ingineria datelor?

Sincer, nu există o explicație mai bună decât aceasta:

„Un om de știință poate descoperi o nouă stea, dar nu poate crea una. Va trebui să ceară unui inginer să o facă pentru el”.

– Gordon Lindsay Glegg

Astfel, rolul unui inginer de date este destul de semnificativ.

După cum sugerează și numele, ingineria datelor se preocupă de date, și anume de livrarea, stocarea și prelucrarea acestora. În consecință, sarcina principală a inginerilor este de a oferi o infrastructură fiabilă pentru date. Dacă ne uităm la ierarhia nevoilor AI, ingineria datelor ocupă primele 2-3 etape: colectarea, deplasarea și stocarea, pregătirea datelor.

Cine sunt inginerii de date și cum devii unul?

Ce face un inginer de date?

Odată cu apariția datelor mari, sfera responsabilității s-a schimbat dramatic. Dacă anterior acești experți scriau interogări SQL mari și distilau date folosind instrumente precum Informatica ETL, Pentaho ETL, Talend, acum cerințele pentru inginerii de date au crescut.

Majoritatea companiilor cu posturi vacante pentru postul de inginer de date au următoarele cerințe:

  • Cunoștințe excelente de SQL și Python.
  • Experiență cu platformele cloud, în special cu Amazon Web Services.
  • De preferat cunoștințe Java/Scala.
  • Bună înțelegere a bazelor de date SQL și NoSQL (modelarea datelor, depozitarea datelor).

Rețineți că acestea sunt doar elementele esențiale. Din această listă, se poate presupune că inginerii de date sunt specialiști în domeniul dezvoltării software și al backend-ului.
De exemplu, dacă o companie începe să genereze o cantitate mare de date din diverse surse, sarcina ta ca inginer de date este să organizezi colectarea informațiilor, procesarea și stocarea acesteia.

Lista instrumentelor utilizate în acest caz poate diferi, totul depinde de volumul acestor date, viteza de primire și eterogenitate. Majoritatea companiilor nu se ocupă deloc de big data, așa că, ca depozit centralizat, așa-numit depozit de date, puteți utiliza o bază de date SQL (PostgreSQL, MySQL etc.) cu un set mic de scripturi care alimentează datele în depozitul.

Giganții IT precum Google, Amazon, Facebook sau Dropbox au cerințe mai mari: cunoștințe de Python, Java sau Scala.

  • Experiență cu big data: Hadoop, Spark, Kafka.
  • Cunoașterea algoritmilor și a structurilor de date.
  • Înțelegerea elementelor fundamentale ale sistemelor distribuite.
  • Experiența cu instrumente de vizualizare a datelor, cum ar fi Tableau sau ElasticSearch, va fi un plus.

Adică, există o trecere clară către big data, și anume în procesarea acestora sub încărcări mari. Aceste companii au cerințe crescute pentru toleranța la erori de sistem.

Inginerii de date vs. cercetătorii de date

Cine sunt inginerii de date și cum devii unul?
Bine, a fost o comparație simplă și amuzantă (nimic personal), dar în realitate e mult mai complicată.

În primul rând, ar trebui să știți că există multă ambiguitate în delimitarea rolurilor și abilităților unui om de știință de date și a unui inginer de date. Adică, puteți fi cu ușurință confuz cu privire la ce abilități sunt necesare pentru a fi un inginer de date de succes. Desigur, există anumite abilități care se suprapun cu ambele roluri. Dar există și o serie de abilități diametral opuse.

Știința datelor este o afacere serioasă, dar ne îndreptăm către o lume a științei datelor funcționale în care practicienii își pot face propriile analize. Pentru a activa conducte de date și structuri de date integrate, aveți nevoie de ingineri de date, nu de oameni de știință ai datelor.

Este un inginer de date mai solicitat decât un om de știință de date?

- Da, pentru că înainte de a putea face prăjitură cu morcovi, mai întâi trebuie să adunați, să curățați și să stocați morcovii!

Un inginer de date înțelege programarea mai bine decât orice om de știință de date, dar când vine vorba de statistici, opusul este adevărat.

Dar iată avantajul unui inginer de date:

Fără el/ea, valoarea modelului prototip, cel mai adesea constând dintr-o bucată de cod de calitate groaznică într-un fișier Python, obținut de la un cercetător de date și care produce cumva un rezultat, tinde spre zero.

Fără un inginer de date, acest cod nu va deveni niciodată un proiect și nicio problemă de afaceri nu va fi rezolvată eficient. Inginerul de date încearcă să transforme toate acestea într-un produs.

Informații de bază pe care un inginer de date ar trebui să le cunoască

Cine sunt inginerii de date și cum devii unul?

Așadar, dacă acest job scoate lumina în tine și ești entuziast - îl poți învăța, poți stăpâni toate abilitățile necesare și poți deveni un adevărat rock star în domeniul ingineriei datelor. Și, da, puteți realiza acest lucru chiar și fără abilități de programare sau alte cunoștințe tehnice. Este greu, dar posibil!

Care sunt primii pași?

Ar trebui să aveți o idee generală despre ce este ce.

În primul rând, Data Engineering se referă la informatică. Mai precis, trebuie să înțelegeți algoritmii eficienți și structurile de date. În al doilea rând, deoarece inginerii de date lucrează cu date, este necesar să înțelegem principiile bazelor de date și structurile care stau la baza acestora.

De exemplu, bazele de date SQL convenționale B-Tree se bazează pe structura de date B-Tree, precum și, în depozitele distribuite moderne, LSM-Tree și alte modificări ale tabelelor hash.

*Acești pași se bazează pe un articol grozav Adilya Khashtamova. Deci, dacă știți rusă, susțineți acest autor și citiți postul lui.

1. Algoritmi și structuri de date

Utilizarea structurii corecte de date poate îmbunătăți semnificativ performanța unui algoritm. În mod ideal, ar trebui să învățăm cu toții despre structurile de date și algoritmii din școlile noastre, dar acest lucru este rareori acoperit. În orice caz, niciodată nu este prea târziu pentru a face cunoștință.
Așadar, iată cursurile mele gratuite preferate pentru învățarea structurilor de date și a algoritmilor:

În plus, nu uitați de munca clasică a lui Thomas Corman despre algoritmi - Introducere în algoritmi. Aceasta este referința perfectă atunci când aveți nevoie să vă reîmprospătați memoria.

  • Pentru a vă îmbunătăți abilitățile, utilizați Leetcode.

De asemenea, vă puteți scufunda în lumea bazelor de date cu videoclipuri uimitoare de la Universitatea Carnegie Mellon pe Youtube:

2. Învață SQL

Întreaga noastră viață sunt date. Și pentru a extrage aceste date din baza de date, trebuie să „vorbiți” aceeași limbă cu ea.

SQL (Structured Query Language) este limbajul de comunicare în domeniul datelor. Indiferent de ceea ce spune cineva, SQL a trăit, este în viață și va trăi foarte mult timp.

Dacă sunteți în dezvoltare de mult timp, probabil ați observat că apar periodic zvonuri despre moartea iminentă a SQL. Limbajul a fost dezvoltat la începutul anilor 70 și este încă foarte popular printre analiști, dezvoltatori și pur și simplu entuziaști.
Fără cunoștințe de SQL nu există nimic de făcut în ingineria datelor, deoarece va trebui inevitabil să creați interogări pentru a prelua date. Toate depozitele de date mari moderne acceptă SQL:

  • Amazon RedShift
  • HP Vertica
  • Oracol
  • SQL Server

... și multe altele.

Pentru a analiza un strat mare de date stocate în sisteme distribuite precum HDFS, au fost inventate motoare SQL: Apache Hive, Impala, etc. Vezi, nu merge nicăieri.

Cum să înveți SQL? Doar fă-o în practică.

Pentru a face acest lucru, aș recomanda să consultați un tutorial excelent, care, apropo, este gratuit Mod Analytics.

  1. SQL intermediar
  2. Unirea datelor în SQL

Ceea ce face aceste cursuri speciale este că au un mediu interactiv în care puteți scrie și rula interogări SQL chiar în browser. Resursă SQL modern nu va fi de prisos. Și puteți aplica aceste cunoștințe la Sarcini Leetcode în secțiunea Baze de date.

3. Programare în Python și Java/Scala

De ce ar trebui să înveți limbajul de programare Python, am scris deja în articol Python vs R. Alegerea celui mai bun instrument pentru AI, ML și Data Science. Când vine vorba de Java și Scala, majoritatea instrumentelor pentru stocarea și procesarea unor cantități uriașe de date sunt scrise în aceste limbi. De exemplu:

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

Pentru a înțelege cum funcționează aceste instrumente, trebuie să cunoașteți limbile în care sunt scrise. Abordarea funcțională Scala vă permite să rezolvați eficient problemele de procesare paralelă a datelor. Python, din păcate, nu se poate lăuda cu viteză și procesare paralelă. În general, cunoașterea mai multor limbaje și paradigme de programare este bună pentru amploarea abordărilor pentru rezolvarea problemelor.

Pentru a vă scufunda în limba Scala, puteți citi Programare in Scala de la autorul limbii. Twitter a publicat și un ghid introductiv bun - Scoala Scala.

Cât despre Python, cred Python fluent cea mai buna carte de nivel mediu.

4. Instrumente pentru lucrul cu big data

Iată o listă cu cele mai populare instrumente din lumea big data:

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

Puteți găsi mai multe informații despre construirea de blocuri mari de date în acest uimitor mediu interactiv. Cele mai populare instrumente sunt Spark și Kafka. Cu siguranță merită studiate, este indicat să înțelegeți cum funcționează din interior. Jay Kreps (coautor al lui Kafka) a publicat o lucrare monumentală în 2013 Jurnalul: Ce ar trebui să știe fiecare dezvoltator de software despre abstracția de agregare a datelor în timp realApropo, ideile principale din acest Talmud au fost folosite pentru a crea Apache Kafka.

5. Platforme cloud

Cine sunt inginerii de date și cum devii unul?

Cunoașterea a cel puțin unei platforme cloud se află pe lista cerințelor de bază pentru solicitanții pentru postul de inginer de date. Angajatorii preferă Amazon Web Services, platforma cloud a Google pe locul doi și Microsoft Azure completând primele trei.

Trebuie să aveți cunoștințe bune despre Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Sisteme distribuite

Lucrul cu date mari implică prezența unor clustere de computere care funcționează independent, comunicarea între care se realizează printr-o rețea. Cu cât clusterul este mai mare, cu atât este mai mare probabilitatea de eșec a nodurilor sale membre. Pentru a deveni un mare om de știință a datelor, trebuie să înțelegeți problemele și soluțiile existente pentru sistemele distribuite. Această zonă este veche și complexă.

Andrew Tanenbaum este considerat un pionier în acest domeniu. Pentru cei cărora nu le este frică de teorie, recomand cartea lui "Sisteme distribuite", poate părea descurajantă pentru începători, dar te va ajuta cu adevărat să-ți perfecționezi abilitățile.

Consider Proiectarea aplicațiilor intensive de date de Martin Kleppmann cea mai bună carte introductivă. Apropo, Martin are un minunat blog. Munca sa va ajuta la sistematizarea cunoștințelor despre construirea unei infrastructuri moderne pentru stocarea și procesarea datelor mari.
Pentru cei cărora le place să urmărească videoclipuri, există un curs pe Youtube Sisteme informatice distribuite.

7. Conducte de date

Cine sunt inginerii de date și cum devii unul?

Conductele de date sunt ceva fără de care nu poți trăi ca inginer de date.

De cele mai multe ori, un inginer de date construiește o așa-numită conductă de date, adică creează un proces pentru livrarea datelor dintr-un loc în altul. Acestea pot fi scripturi personalizate care merg la API-ul unui serviciu extern sau fac o interogare SQL, măresc datele și le pun într-un depozit centralizat (depozit de date) sau într-un depozit de date nestructurat (lacuri de date).

Pentru a rezuma: lista de verificare de bază pentru un inginer de date

Cine sunt inginerii de date și cum devii unul?

Pentru a rezuma, este necesară o bună înțelegere a următoarelor:

  • Sisteme de informare;
  • Dezvoltare software (Agile, DevOps, Design Techniques, SOA);
  • Sisteme distribuite și programare paralelă;
  • Fundamentele bazei de date - planificare, proiectare, operare și depanare;
  • Proiectarea experimentelor - teste A/B pentru a demonstra concepte, a determina fiabilitatea, performanța sistemului și pentru a dezvolta căi fiabile pentru a oferi soluții bune rapid.

Acestea sunt doar câteva dintre cerințele pentru a deveni inginer de date, așa că învățați și înțelegeți sistemele de date, sistemele informaționale, livrarea/implementarea/integrarea continuă, limbaje de programare și alte subiecte de informatică (nu toate domeniile).

Și în sfârșit, ultimul, dar foarte important lucru pe care vreau să-l spun.

Calea pentru a deveni Data Engineering nu este atât de simplă pe cât ar părea. El nu iartă, el frustrează, iar tu trebuie să fii pregătit pentru asta. Unele momente din această călătorie te pot împinge să renunți. Dar aceasta este o muncă reală și un proces de învățare.

Doar nu-l înveli de la început. Scopul călătoriei este să înveți cât mai mult posibil și să fii pregătit pentru noi provocări.
Iată o imagine grozavă pe care am întâlnit-o, care ilustrează bine acest punct:

Cine sunt inginerii de date și cum devii unul?

Și da, nu uitați să evitați epuizarea și odihna. Acest lucru este, de asemenea, foarte important. Noroc!

Ce părere aveți despre articol, prieteni? Vă invităm să webinar gratuit, care va avea loc astăzi la ora 20.00. În timpul webinarului, vom discuta despre cum să construim un sistem de procesare a datelor eficient și scalabil pentru o companie mică sau startup la un cost minim. Ca practică, ne vom familiariza cu instrumentele de procesare a datelor Google Cloud. Te văd!

Sursa: www.habr.com

Adauga un comentariu