Ingineri de date: mituri vs. realități
Publicat: 2018-05-10De la mașini cu conducere autonomă la etichetarea automată în imagini, știința datelor a parcurs un drum lung. Oamenii de știință și analiștii de date au devenit parte integrantă a oricărei organizații datorită valorii pe care o adaugă. Dar, cu toată sinceritatea, un cercetător de date este la fel de bun ca și datele cu care lucrează. Majoritatea organizațiilor de astăzi au datele stocate într-o varietate de formate și pe numeroase platforme. Aici apare nevoia de ingineri de date!
Inginerii de date sunt oameni care fac aceste date funcționale pentru oamenii de știință și analiștii de date. Inginerii de date sunt responsabili pentru construirea conductelor care transformă grămada de date într-un format care este utilizabil pentru oamenii de știință de date. Ei lucrează în principal în culise și, prin urmare, sunt lipsiți de toate strălucirile unui cercetător de date/analist – dar țineți cont, sunt la fel de (dacă nu mai mult) esențiale pentru funcționarea oricărei organizații.
Dacă oamenii de știință de date sunt șoferi de mașini de curse, inginerii de date sunt constructori de mașini de curse. Primul primește entuziasmul de a merge cu viteză pe o pistă și fiorul de a câștiga în fața unei mulțimi care aplaudă. Acesta din urmă, pe de altă parte, are bucuria de a regla motoarele și de a crea o mașină puternică și robustă. Un constructor de mașini de curse face munca șoferului mult mai ușoară (sau mai grea, în funcție de calitatea constructorului).
Cum poți trece la Data Analytics?
În acest sens, inginerii de date sunt aproape eroii necunoscuti ai oricărei echipe de analiză a datelor. Fără un inginer de date de sunet, un cercetător de date se va zgâria doar în cap căutând indicii în datele neformatate.
Să vedem ce presupune toate meseria de inginer de date.
Pentru o mai bună înțelegere, să presupunem că sunteți inginer de date la un concurent al Swiggy (să-i spunem Twiggy). Aveți o aplicație pe care utilizatorii o pot folosi pe orice dispozitiv și vă pot accesa serviciile. Ei comandă mâncare, comanda este redirecționată către restaurantul corespunzător, mâncarea este preluată de acolo și ajunge la tine.
Pentru a menține acest serviciu sincronizat, veți avea nevoie de:
- O aplicație mobilă pentru utilizatori
- O aplicație mobilă pentru proprietarii de restaurante
- Un server robust pentru a gestiona mai multe solicitări simultan.
După cum probabil ați înțeles până acum, această aplicație va genera cantități URIAȘE de date. În plus, veți avea nevoie de câteva depozite de date:
- O bază de date care conține detaliile utilizatorilor și restaurantelor.
- Jurnalele de acces la server. Acestea vor include orice solicitare făcută către server din aplicație.
- Jurnalele de erori de server care conțin toate erorile de pe partea serverului.
- Jurnalele de evenimente ale aplicației. Acestea vor conține informații despre acțiunile întreprinse de utilizatori sau proprietari de restaurante în aplicație.
- Jurnalele de erori ale aplicației care conțin erori bazate pe aplicații.
- Baza de date a serviciului clienți. Acesta va conține datele despre interacțiunea dvs. cu clienții dvs.
Acum, să presupunem că un cercetător de date al echipei dvs. dorește să analizeze comportamentul utilizatorilor la serviciile dvs. și să vadă ce acțiuni se corelează cu utilizatorii care cheltuiesc mari. Pentru a-i ajuta să creeze acest lucru, va trebui să combinați toate informațiile din jurnalele de acces la server și din jurnalele de evenimente ale aplicației.
Va trebui să:
- Adunați în mod regulat jurnalele de analiză a aplicațiilor.
- Combinați jurnalele de analiză a aplicațiilor cu intrările de jurnal de server pentru utilizatorii relevanți.
- Dezvoltați un API care returnează istoricul evenimentelor oricărui utilizator.
E multă muncă chiar acolo!
Pentru a face toate acestea, va trebui să creați o conductă care să poată ingera eficient jurnalele aplicațiilor mobile și jurnalele serverului în timp real, să le analizeze și să le conecteze la utilizatorul corespunzător. În plus, va trebui să stocați jurnalele analizate într-o bază de date, astfel încât API-ul să le poată interoga cu ușurință. Vor exista o mulțime de servere pe care va trebui să le porniți în spatele unui echilibrator de încărcare pentru a analiza jurnalele de intrare.
Majoritatea problemelor pe care le veți întâlni vor fi legate de sistemele distribuite și de fiabilitate. Dacă aveți milioane de dispozitive de la care adunați jurnalele și cererile dinamice (după-amiaza, primiți multe intrări de jurnal, dar nu atâtea în timpul miezului nopții), va trebui să dezvoltați un sistem care poate scala automat numărul de servere în sus și în jos. in functie de trafic.
Pașii de top pentru stăpânirea științei datelor
Aproximativ, operațiunile dintr-o conductă de inginerie de date generică trec prin următoarele faze:
- Ingestie: colectarea datelor necesare.
- Prelucrare: prelucrarea datelor pentru a obține rezultatul dorit.
- Stocare: stocarea rezultatului pentru o recuperare mai rapidă.
- Acces: permiterea unui instrument pentru a accesa rezultatele conductei de date.
Se așteaptă ca un inginer de date să posede cunoștințe în următoarele domenii.
- Depozitarea datelor:
- RDBMS precum MySQL, MS SQL Server etc.
- Baze de date NoSQL precum HBase, MongoDB, CouchDB, Cassandra etc.
- Colectare de date:
- API-uri RESTful
- Cunoștințe de modelare a datelor și expertiză în SQL.
- Transformarea datelor:
- Instrumente ETL precum Informatica, Datastage, Redpoint etc.
- Orice limbaj de scripting precum Python, Ruby, Perl etc.
Să ne uităm la câteva mituri și concepții greșite care se învârt în jurul vieții și locurilor de muncă ale acestor ingineri de date.
Cuprins
Mitul #1: Inginerii de date extrag valoare din datele colectate.
Există o mulțime de lucruri între colectarea datelor și extragerea cunoștințelor. Inginerii de date sunt în primul rând responsabili pentru conversia datelor într-o formă potrivită pentru ca oamenii de știință să le analizeze și să lucreze. În acest sens, ei nu extrag nicio valoare din date, de fapt, le prezintă pe o farfurie oamenilor de știință care descoperă apoi valoarea din acestea.

Mitul #2: Inginerii de date trebuie să facă toate datele curate.
Vă veți da seama de absurditatea acestui lucru dacă citiți încet propoziția de mai sus. Un inginer de date se ocupă de fluxurile de date primite pe parcursul zilei. Aceste date trebuie să fie curățate și luate în considerare imediat, ca nu cumva să devină învechite. Prin învechit, înțelegem neînțelegător și vechi. Deci, inginerii de date nu fac ca toate datele să fie curate. Ei lucrează cu datele disponibile combinate cu alte date care sunt necesare pentru problema în cauză. Curățarea setului de date complet va dura luni de zile și până atunci nu va mai fi de folos.
Fundamentele de bază ale statisticii pentru știința datelor
Mitul #3: Inginerii de date aruncă datele pe instrumente gata făcute și se bucură de datele curate/funcționabile ca rezultat.
Vă rugăm să nu o spuneți cu voce tare în fața niciunui inginer de date. Vreodată. Niciun inginer de date care se respectă nu va tolera o asemenea insultă flagrantă. La fel ca orice alt inginer (software, mecanic, chimic etc.), inginerii de date necesită să aibă limitele de gândire pe tot timpul. Nu există o abordare care să se potrivească tuturor în ingineria datelor, iar inginerii de date trebuie să modeleze algoritmi pentru a se potrivi în mod continuu cu cazul lor de utilizare. Ei trebuie să fie conștienți de cele mai recente tehnici și metode în jurul muncii lor pentru a asigura o eficiență perfectă.
Mitul #4: Inginerii de date sunt doar ingineri de software care lucrează pe Big Data.
Inginerii software lucrează la dezvoltarea de aplicații mobile/web. Munca lor implică o mulțime de probleme diverse, iar dificultatea constă în gestionarea sarcinilor – gândiți, comunicați și organizați codul. Inginerii de date, pe de altă parte, au în general mai puține probleme, dar problemele individuale sunt mult mai dificile din punct de vedere tehnic. De la perspectivă la setul de abilități, totul este complet diferit pentru un inginer de date decât pentru un inginer de software.
Cine este un Data Scientist, un Data Analyst și un Data Engineer?
Obțineți certificare în știința datelor de la cele mai bune universități din lume. Învață programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.
Este Data Engineering similar cu un rol clasic IT?
„Inginer de date” și „Inginer de software” pot suna interschimbabile pentru cei din afara sectorului computerelor, deoarece ambele se bazează în mare parte pe abilitățile de programare. Dar, de fapt, ei sunt experți în diferite domenii. Scopul principal al inginerilor software este de a crea site-uri web ușor de utilizat. Inginerii de date stabilesc sisteme pentru stocarea, consolidarea și preluarea datelor, care sunt apoi utilizate de dezvoltatorii de software pentru a construi sisteme și aplicații. Inginerii de date pot crea și menține, de asemenea, o conductă de integrare și livrare continuă (CI/CD) pentru toate datele organizaționale, precum și sisteme de control al versiunilor pentru a asigura calitatea datelor în întreaga infrastructură.
Este necesar să aveți o educație universitară sau o diplomă avansată pentru a deveni inginer de date?
Pentru a lucra ca inginer de date, nu aveți nevoie de o diplomă, deși anumiți angajatori pot prefera candidații cu cel puțin o diplomă de licență. Niciun curs academic sau curriculum online nu vă poate pregăti în întregime pentru a crea sisteme de date care pot muta date dintr-o varietate de surse, le pot modifica și le pot stoca pentru analiză. Adevărul este că cei mai de succes ingineri de date învață multe la locul de muncă în timp ce operează în lumea reală cu clienți reali. Dar da, este important ca un inginer de date să aibă abilități bune de a lucra cu anumite instrumente precum Amazon Athena, Amazon Redshift, Apache Spark etc. și să cunoască cele mai bune practici de gestionare a datelor.
Cum să devii un inginer de date de succes?
Pentru afacerile bazate pe date, ingineria datelor este esențială, dar ce fac exact inginerii de date? Iată calea pentru a deveni un inginer de date de succes
1. Deveniți expert în programare: dacă doriți să deveniți un inginer de date de succes, în primul rând, începeți prin a vă perfecționa elementele fundamentale de programare. Python și Scala sunt cele mai utilizate tehnologii în sector.
2. Aflați cum să automatizați și să scrieți scripturi: automatizarea învățării este crucială pentru inginerii de date. Deoarece sunt multe sarcini de efectuat cu privire la date, care pot fi plictisitoare sau pot apărea în mod regulat. Unele instrumente importante pentru automatizare sunt scripturile Shell și Procesarea datelor în Shell.
3. Aflați cum să vă folosiți bazele de date: acest lucru se poate face prin învățarea SQL și modelarea datelor.
4. Tehnici adepte de procesare a datelor: Pentru a stăpâni tehnicile de prelucrare a datelor este important să învățați cum să procesați datele în loturi și fluxuri, înainte de a încărca rezultatele în bazele de date țintă.