Kas yra duomenų inžinieriai ir kaip jais tapti?

Labas dar kartą! Straipsnio pavadinimas kalba pats už save. Belaukiant kursų pradžios Duomenų inžinierius Siūlome suprasti, kas yra duomenų inžinieriai. Straipsnyje yra daug naudingų nuorodų. Smagaus skaitymo.

Kas yra duomenų inžinieriai ir kaip jais tapti?

Paprastas vadovas, kaip pagauti duomenų inžinerijos bangą ir neleisti jai nutempti jūsų į bedugnę.

Panašu, kad šiais laikais visi nori tapti duomenų mokslininkais. Bet kaip su duomenų inžinerija? Iš esmės tai yra tam tikras duomenų analitiko ir duomenų mokslininko hibridas; Duomenų inžinierius paprastai yra atsakingas už darbo eigos, apdorojimo vamzdynų ir ETL procesų valdymą. Dėl šių funkcijų svarbos šiuo metu tai dar vienas populiarus profesionalus žargonas, kuris aktyviai įgauna pagreitį.

Dideli atlyginimai ir didžiulė paklausa – tai tik maža dalis to, kas daro šį darbą itin patrauklų! Jei norite prisijungti prie herojų gretų, niekada nevėlu pradėti mokytis. Šiame įraše surinkau visą reikalingą informaciją, kuri padės jums žengti pirmuosius žingsnius.

Taigi, pradėkime!

Kas yra duomenų inžinerija?

Sąžiningai, nėra geresnio paaiškinimo nei šis:

„Mokslininkas gali atrasti naują žvaigždę, bet negali jos sukurti. Jis turės paprašyti inžinieriaus, kad tai padarytų už jį“.

– Gordonas Lindsay Gleggas

Taigi duomenų inžinieriaus vaidmuo yra gana reikšmingas.

Kaip rodo pavadinimas, duomenų inžinerija yra susijusi su duomenimis, būtent jų pristatymu, saugojimu ir apdorojimu. Atitinkamai, pagrindinė inžinierių užduotis yra sukurti patikimą duomenų infrastruktūrą. Jei pažvelgsime į AI poreikių hierarchiją, duomenų inžinerija užima pirmuosius 2–3 etapus: rinkimas, judėjimas ir saugojimas, duomenų paruošimas.

Kas yra duomenų inžinieriai ir kaip jais tapti?

Ką daro duomenų inžinierius?

Atsiradus dideliems duomenims, atsakomybės apimtis labai pasikeitė. Jei anksčiau šie ekspertai rašydavo dideles SQL užklausas ir distiliuodavo duomenis naudodami tokius įrankius kaip Informatica ETL, Pentaho ETL, Talend, tai dabar reikalavimai duomenų inžinieriams išaugo.

Dauguma įmonių, turinčių laisvas darbo vietas duomenų inžinieriaus pareigoms užimti, kelia šiuos reikalavimus:

  • Puikios SQL ir Python žinios.
  • Patirtis dirbant su debesų platformomis, ypač su Amazon Web Services.
  • Pageidautinos Java/Scala žinios.
  • Geras SQL ir NoSQL duomenų bazių išmanymas (duomenų modeliavimas, duomenų saugykla).

Atminkite, kad tai tik būtiniausi dalykai. Iš šio sąrašo galima daryti prielaidą, kad duomenų inžinieriai yra programinės įrangos kūrimo ir backend srities specialistai.
Pavyzdžiui, jei įmonė pradeda generuoti didelį duomenų kiekį iš įvairių šaltinių, jūsų, kaip duomenų inžinieriaus, užduotis yra organizuoti informacijos rinkimą, apdorojimą ir saugojimą.

Šiuo atveju naudojamų įrankių sąrašas gali skirtis, viskas priklauso nuo šių duomenų apimties, jų gavimo greičio ir nevienalytiškumo. Dauguma įmonių visiškai nesusitvarko su dideliais duomenimis, todėl kaip centralizuotą saugyklą, vadinamąjį duomenų saugyklą, galite naudoti SQL duomenų bazę (PostgreSQL, MySQL ir kt.) su nedideliu scenarijų rinkiniu, kuris įveda duomenis į sandėlį.

Tokiems IT gigantams kaip Google, Amazon, Facebook ar Dropbox keliami aukštesni reikalavimai: Python, Java ar Scala žinios.

  • Patirtis su dideliais duomenimis: Hadoop, Spark, Kafka.
  • Algoritmų ir duomenų struktūrų išmanymas.
  • Suprasti paskirstytų sistemų pagrindus.
  • Patirtis su duomenų vizualizavimo įrankiais, tokiais kaip Tableau ar ElasticSearch, būtų privalumas.

Tai yra, akivaizdus perėjimas prie didelių duomenų, būtent jų apdorojimo esant didelėms apkrovoms. Šios įmonės padidino sistemos gedimų tolerancijos reikalavimus.

Duomenų inžinieriai vs. duomenų mokslininkai

Kas yra duomenų inžinieriai ir kaip jais tapti?
Gerai, tai buvo paprastas ir juokingas palyginimas (nieko asmeniško), bet iš tikrųjų tai daug sudėtingiau.

Pirma, turėtumėte žinoti, kad duomenų mokslininko ir duomenų inžinieriaus vaidmenys ir įgūdžiai yra labai neaiškūs. Tai reiškia, kad galite lengvai susipainioti, kokių įgūdžių reikia norint tapti sėkmingu duomenų inžinieriumi. Žinoma, yra tam tikrų įgūdžių, kurie sutampa su abiem vaidmenimis. Tačiau yra ir nemažai diametraliai priešingų įgūdžių.

Duomenų mokslas yra rimtas verslas, bet mes judame link funkcinių duomenų mokslo pasaulio, kuriame praktikai gali atlikti savo analizę. Norint įgalinti duomenų vamzdynus ir integruotas duomenų struktūras, reikia duomenų inžinierių, o ne duomenų mokslininkų.

Ar duomenų inžinierius yra paklausesnis nei duomenų mokslininkas?

– Taip, nes prieš gaminant morkų pyragą pirmiausia reikia morkas surinkti, nulupti ir sudėti!

Duomenų inžinierius programavimą supranta geriau nei bet kuris duomenų mokslininkas, tačiau kalbant apie statistiką, yra atvirkščiai.

Bet čia yra duomenų inžinieriaus pranašumas:

Be jo prototipo modelio, dažniausiai susidedančio iš baisios kokybės kodo dalies Python faile, gauto iš duomenų mokslininko ir kažkaip duodančio rezultatą, vertė linkusi į nulį.

Be duomenų inžinieriaus šis kodas niekada netaps projektu ir jokia verslo problema nebus efektyviai išspręsta. Duomenų inžinierius bando visa tai paversti produktu.

Pagrindinė informacija, kurią turėtų žinoti duomenų inžinierius

Kas yra duomenų inžinieriai ir kaip jais tapti?

Taigi, jei šis darbas išryškina jumyse šviesą ir esate entuziastingas – galite jo išmokti, įvaldyti visus reikiamus įgūdžius ir tapti tikra roko žvaigžde duomenų inžinerijos srityje. Ir taip, jūs galite tai padaryti net neturėdami programavimo įgūdžių ar kitų techninių žinių. Sunku, bet įmanoma!

Kokie pirmieji žingsniai?

Turėtumėte turėti bendrą idėją, kas yra kas.

Visų pirma, duomenų inžinerija reiškia kompiuterių mokslą. Tiksliau, turite suprasti efektyvius algoritmus ir duomenų struktūras. Antra, kadangi duomenų inžinieriai dirba su duomenimis, būtina suprasti duomenų bazių principus ir jų pagrindu veikiančias struktūras.

Pavyzdžiui, įprastos B-tree SQL duomenų bazės yra pagrįstos B-Tree duomenų struktūra, taip pat šiuolaikinėse paskirstytose saugyklose LSM-Tree ir kitos maišos lentelių modifikacijos.

*Šie žingsniai pagrįsti puikiu straipsniu Adilija Khashtamova. Taigi, jei mokate rusų kalbą, palaikykite šį autorių ir skaitykite jo postas.

1. Algoritmai ir duomenų struktūros

Tinkamos duomenų struktūros naudojimas gali žymiai pagerinti algoritmo veikimą. Idealiu atveju mes visi turėtume mokytis apie duomenų struktūras ir algoritmus savo mokyklose, tačiau apie tai retai kalbama. Bet kokiu atveju, niekada nevėlu susipažinti.
Taigi čia yra mano mėgstamiausi nemokami kursai, skirti mokytis duomenų struktūrų ir algoritmų:

Be to, nepamirškite apie klasikinį Thomaso Cormano darbą apie algoritmus - Algoritmų įvadas. Tai puiki nuoroda, kai reikia atnaujinti atmintį.

  • Norėdami pagerinti savo įgūdžius, naudokite Leetcode.

Taip pat galite pasinerti į duomenų bazių pasaulį su nuostabiais vaizdo įrašais iš Carnegie Mellon universiteto Youtube:

2. Išmokite SQL

Visas mūsų gyvenimas yra duomenys. O norint išgauti šiuos duomenis iš duomenų bazės, reikia su ja „kalbėti“ ta pačia kalba.

SQL (struktūrinės užklausos kalba) yra bendravimo kalba duomenų srityje. Nepriklausomai nuo to, ką kas sako, SQL gyveno, yra gyvas ir gyvuos labai ilgai.

Jei kuriate ilgą laiką, tikriausiai pastebėjote, kad gandai apie neišvengiamą SQL mirtį pasirodo periodiškai. Kalba buvo sukurta 70-ųjų pradžioje ir vis dar yra labai populiari tarp analitikų, kūrėjų ir tiesiog entuziastų.
Neturint SQL žinių, duomenų inžinerijoje nėra ką veikti, nes neišvengiamai turėsite kurti užklausas, kad gautumėte duomenis. Visos šiuolaikinės didelės duomenų saugyklos palaiko SQL:

  • „Amazon Redshift“
  • „HP Vertica“
  • orakulas
  • "SQL Server

... ir daugelis kitų.

Norint išanalizuoti didelį duomenų sluoksnį, saugomą paskirstytose sistemose, tokiose kaip HDFS, buvo išrasti SQL varikliai: Apache Hive, Impala ir kt. Žiūrėkite, tai niekur nedings.

Kaip išmokti SQL? Tiesiog darykite tai praktiškai.

Norėdami tai padaryti, rekomenduočiau peržiūrėti puikią mokymo programą, kuri, beje, yra nemokama Režimo analizė.

  1. Vidutinis SQL
  2. Duomenų sujungimas SQL

Šie kursai ypatingi yra tuo, kad juose yra interaktyvi aplinka, kurioje galite rašyti ir vykdyti SQL užklausas tiesiog savo naršyklėje. Išteklius Šiuolaikinis SQL nebus perteklinis. Ir jūs galite pritaikyti šias žinias „Leetcode“ užduotys skiltyje Duomenų bazės.

3. Programavimas Python ir Java/Scala kalbomis

Kodėl turėtumėte išmokti Python programavimo kalbą, jau rašiau straipsnyje Python vs R. Geriausio AI, ML ir duomenų mokslo įrankio pasirinkimas. Kalbant apie „Java“ ir „Scala“, dauguma įrankių, skirtų dideliems duomenų kiekiams saugoti ir apdoroti, yra parašyti šiomis kalbomis. Pavyzdžiui:

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

Norėdami suprasti, kaip šie įrankiai veikia, turite mokėti kalbas, kuriomis jie parašyti. „Scala“ funkcinis požiūris leidžia efektyviai išspręsti lygiagretaus duomenų apdorojimo problemas. Python, deja, negali pasigirti greičiu ir lygiagrečiu apdorojimu. Apskritai, kelių kalbų ir programavimo paradigmų žinios yra naudingos įvairiems požiūriams į problemų sprendimą.

Norėdami pasinerti į Scala kalbą, galite skaityti Programavimas Scala iš kalbos autoriaus. „Twitter“ taip pat paskelbė gerą įvadinį vadovą – „Scala“ mokykla.

Kalbant apie Python, aš tikiu Laisvas Python geriausia vidutinio lygio knyga.

4. Darbo su dideliais duomenimis įrankiai

Pateikiame populiariausių didelių duomenų pasaulyje įrankių sąrašą:

  • Apache Spark
  • Apache Kafka
  • „Apache Hadoop“ (HDFS, HBase, „Hive“)
  • Apache cassandra

Daugiau informacijos apie didelių duomenų blokų kūrimą rasite šiame nuostabiame interaktyvi aplinka. Populiariausi įrankiai yra Spark ir Kafka. Juos tikrai verta studijuoti, patartina suprasti, kaip jie veikia iš vidaus. Jay Kreps (Kafkos bendraautorius) paskelbė monumentalų kūrinį 2013 m Žurnalas: ką kiekvienas programinės įrangos kūrėjas turėtų žinoti apie duomenų kaupimą realiuoju laikuBeje, pagrindinės šio Talmudo idėjos buvo panaudotos kuriant Apache Kafka.

5. Debesų platformos

Kas yra duomenų inžinieriai ir kaip jais tapti?

Bent vienos debesų platformos išmanymas yra pagrindinių reikalavimų pretendentams į duomenų inžinieriaus pareigas sąraše. Darbdaviai teikia pirmenybę „Amazon Web Services“, kurioje „Google“ debesų platforma yra antroje vietoje, o „Microsoft Azure“ – trejetuką.

Turite gerai išmanyti Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Paskirstytos sistemos

Darbas su dideliais duomenimis reiškia, kad yra savarankiškai veikiančių kompiuterių grupių, kurių ryšys vyksta tinkle. Kuo didesnis klasteris, tuo didesnė jo narių mazgų gedimo tikimybė. Norėdami tapti puikiu duomenų mokslininku, turite suprasti paskirstytų sistemų problemas ir esamus sprendimus. Ši sritis yra sena ir sudėtinga.

Andrew Tanenbaumas laikomas šios srities pradininku. Nebijantiems teorijos rekomenduoju jo knygą "Paskirstytos sistemos", pradedantiesiems tai gali atrodyti bauginanti, tačiau tai tikrai padės patobulinti savo įgūdžius.

aš manau Daug duomenų naudojančių programų projektavimas, Martinas Kleppmannas geriausia įžanginė knyga. Beje, Martinas turi nuostabų dienoraštis. Jo darbas padės susisteminti žinias apie modernios didelių duomenų saugojimo ir apdorojimo infrastruktūros kūrimą.
Tiems, kurie mėgsta žiūrėti vaizdo įrašus, yra kursai Youtube Paskirstytos kompiuterinės sistemos.

7. Duomenų vamzdynai

Kas yra duomenų inžinieriai ir kaip jais tapti?

Duomenų vamzdynai yra kažkas, be kurio negalite gyventi kaip duomenų inžinierius.

Dažniausiai duomenų inžinierius sukuria vadinamąjį duomenų vamzdyną, tai yra, sukuria duomenų perdavimo iš vienos vietos į kitą procesą. Tai gali būti pasirinktiniai scenarijai, kurie nukreipiami į išorinės paslaugos API arba pateikia SQL užklausą, papildo duomenis ir įkelia juos į centralizuotą saugyklą (duomenų saugyklą) arba nestruktūrizuotą duomenų saugyklą (duomenų ežerai).

Apibendrinant: pagrindinis duomenų inžinieriaus kontrolinis sąrašas

Kas yra duomenų inžinieriai ir kaip jais tapti?

Apibendrinant, reikia gerai suprasti šiuos dalykus:

  • Informacinės sistemos;
  • Programinės įrangos kūrimas (Agile, DevOps, Design Techniques, SOA);
  • Paskirstytos sistemos ir lygiagretus programavimas;
  • Duomenų bazės pagrindai – planavimas, projektavimas, veikimas ir trikčių šalinimas;
  • Eksperimentų planavimas – A/B testai, skirti įrodyti koncepcijas, nustatyti patikimumą, sistemos našumą ir sukurti patikimus kelius, kaip greitai pateikti gerus sprendimus.

Tai tik keli reikalavimai norint tapti duomenų inžinieriumi, todėl mokykitės ir supraskite duomenų sistemas, informacines sistemas, nuolatinį pristatymą/diegimą/integravimą, programavimo kalbas ir kitas informatikos temas (ne visų dalykų sritis).

Ir galiausiai paskutinis, bet labai svarbus dalykas, kurį noriu pasakyti.

Kelias į duomenų inžineriją nėra toks paprastas, kaip gali atrodyti. Jis neatleidžia, nuvilia, ir jūs turite būti tam pasiruošę. Kai kurios šios kelionės akimirkos gali priversti jus pasiduoti. Bet tai tikras darbas ir mokymosi procesas.

Tik nebarstykite jo nuo pat pradžių. Visa kelionės esmė – kuo daugiau išmokti ir pasiruošti naujiems iššūkiams.
Štai puikus paveikslėlis, kurį aptikau ir kuris gerai iliustruoja šį teiginį:

Kas yra duomenų inžinieriai ir kaip jais tapti?

Ir taip, nepamirškite vengti perdegimo ir poilsio. Tai taip pat labai svarbu. Sėkmės!

Ką manote apie straipsnį, draugai? Kviečiame į nemokamas internetinis seminaras, kuris vyks šiandien 20.00 val. Webinaro metu aptarsime, kaip minimaliomis sąnaudomis sukurti efektyvią ir keičiamo dydžio duomenų apdorojimo sistemą mažai įmonei ar startuoliui. Praktiškai susipažinsime su Google Cloud duomenų apdorojimo įrankiais. Iki!

Šaltinis: www.habr.com

Добавить комментарий