Kes on andmeinsenerid ja kuidas neist saada?

Tere jälle! Artikli pealkiri räägib enda eest. Kursuse alguse ootuses Andmeinsener Soovitame teil mõista, kes on andmeinsenerid. Artiklis on palju kasulikke linke. Head lugemist.

Kes on andmeinsenerid ja kuidas neist saada?

Lihtne juhend, kuidas tabada andmetehnoloogia lainet ja mitte lasta sellel end kuristikku tirida.

Tundub, et tänapäeval tahavad kõik saada andmeteadlasteks. Aga kuidas on lood andmetehnoloogiaga? Sisuliselt on see andmeanalüütiku ja andmeteadlase hübriid; Andmeinsener vastutab tavaliselt töövoogude, torujuhtmete töötlemise ja ETL-protsesside haldamise eest. Nende funktsioonide olulisuse tõttu on see praegu veel üks populaarne erialane kõnepruuk, mis kogub aktiivselt hoogu.

Kõrged palgad ja suur nõudlus on vaid väike osa sellest, mis teeb selle töö äärmiselt atraktiivseks! Kui soovite liituda kangelaste ridadega, pole kunagi hilja õppida. Sellesse postitusse olen kogunud kogu vajaliku teabe, mis aitab teil esimesi samme astuda.

Alustame siis!

Mis on andmetehnoloogia?

Ausalt öeldes pole paremat seletust kui see:

"Teadlane võib avastada uue tähe, kuid ta ei saa seda luua. Ta peab paluma inseneril seda tema eest teha."

– Gordon Lindsay Glegg

Seega on andmeinseneri roll üsna märkimisväärne.

Nagu nimigi ütleb, on andmetehnoloogia seotud andmetega, nimelt nende edastamise, säilitamise ja töötlemisega. Sellest lähtuvalt on inseneride põhiülesanne anda andmetele usaldusväärne infrastruktuur. Kui vaatame tehisintellekti vajaduste hierarhiat, hõlmab andmetöötlus 2–3 esimest etappi: kogumine, teisaldamine ja säilitamine, andmete ettevalmistamine.

Kes on andmeinsenerid ja kuidas neist saada?

Mida teeb andmeinsener?

Suurandmete tulekuga on vastutuse ulatus dramaatiliselt muutunud. Kui varem kirjutasid need eksperdid suuri SQL päringuid ja destilleerisid andmeid kasutades selliseid tööriistu nagu Informatica ETL, Pentaho ETL, Talend, siis nüüd on nõuded andmeinseneridele tõusnud.

Enamikul ettevõtetel, kellel on andmeinseneri ametikohale vabad ametikohad, on järgmised nõuded:

  • Suurepärased teadmised SQL-ist ja Pythonist.
  • Kogemus pilveplatvormidega, eriti Amazon Web Services.
  • Soovitavalt Java/Scala tundmine.
  • Hea arusaam SQL ja NoSQL andmebaasidest (andmete modelleerimine, andmeladu).

Pidage meeles, et need on ainult hädavajalikud. Selle loendi põhjal võib eeldada, et andmeinsenerid on tarkvaraarenduse ja taustaprogrammi spetsialistid.
Näiteks kui ettevõte hakkab erinevatest allikatest genereerima suurel hulgal andmeid, on teie kui andmeinseneri ülesanne korraldada teabe kogumist, selle töötlemist ja säilitamist.

Sel juhul kasutatavate tööriistade loend võib erineda, kõik sõltub nende andmete mahust, nende vastuvõtmise kiirusest ja heterogeensusest. Enamik ettevõtteid ei tegele üldse suurandmetega, nii et tsentraliseeritud hoidla, nn andmehoidlana saate kasutada SQL-andmebaasi (PostgreSQL, MySQL jne) koos väikese skriptide komplektiga, mis edastavad andmed ladu.

IT-gigantidel nagu Google, Amazon, Facebook või Dropbox on kõrgemad nõuded: Pythoni, Java või Scala tundmine.

  • Kogemus suurandmetega: Hadoop, Spark, Kafka.
  • Algoritmide ja andmestruktuuride tundmine.
  • Hajutatud süsteemide põhialuste mõistmine.
  • Kasuks tuleb kogemus andmete visualiseerimise tööriistadega nagu Tableau või ElasticSearch.

See tähendab, et toimub selge nihe suurandmete poole, nimelt nende töötlemisel suure koormuse all. Nendel ettevõtetel on suurenenud nõuded süsteemi tõrketaluvusele.

Andmeinsenerid vs. andmeteadlased

Kes on andmeinsenerid ja kuidas neist saada?
Olgu, see oli lihtne ja naljakas võrdlus (ei midagi isiklikku), aga tegelikult on see palju keerulisem.

Esiteks peaksite teadma, et andmeteadlase ja andmeinseneri rollide ja oskuste piiritlemisel on palju ebaselgust. See tähendab, et võite kergesti segadusse jääda, milliseid oskusi on vaja edukaks andmeinseneriks saamiseks. Muidugi on teatud oskused, mis kattuvad mõlema rolliga. Kuid on ka mitmeid diametraalselt vastandlikke oskusi.

Andmeteadus on tõsine äri, kuid me liigume funktsionaalse andmeteaduse maailma poole, kus praktikud saavad ise analüüsida. Andmekonveierite ja integreeritud andmestruktuuride lubamiseks vajate andmeinsenere, mitte andmeteadlasi.

Kas andmeinsener on nõudlikum kui andmeteadlane?

- Jah, sest enne porgandikoogi valmistamist tuleb porgandid koristada, koorida ja varuda!

Andmeinsener mõistab programmeerimist paremini kui ükski andmeteadlane, kuid statistika osas on asi vastupidine.

Kuid siin on andmeinseneri eelis:

Ilma temata kipub prototüübi mudeli väärtus, mis koosneb enamasti Pythoni faili kohutavast kvaliteedikoodist, mis on saadud andmeteadlaselt ja annab kuidagi tulemuse, nulli.

Ilma andmeinsenerita ei saa sellest koodist kunagi projekt ja ükski äriprobleem ei lahene tõhusalt. Andmeinsener püüab seda kõike muuta tooteks.

Põhiteave, mida andmeinsener peaks teadma

Kes on andmeinsenerid ja kuidas neist saada?

Seega, kui see töö toob sinus valguse esile ja oled entusiastlik – võid seda õppida, saad omandada kõik vajalikud oskused ja saada tõeliseks rokkstaariks andmetehnika vallas. Ja jah, saate seda teha isegi ilma programmeerimisoskuste või muude tehniliste teadmisteta. See on raske, kuid võimalik!

Millised on esimesed sammud?

Teil peaks olema üldine ettekujutus, mis on mis.

Esiteks viitab andmetehnoloogia arvutiteadusele. Täpsemalt peate mõistma tõhusaid algoritme ja andmestruktuure. Teiseks, kuna andmeinsenerid töötavad andmetega, on vaja mõista andmebaaside põhimõtteid ja nende aluseks olevaid struktuure.

Näiteks tavapärased B-puu SQL-andmebaasid põhinevad B-Tree andmestruktuuril, aga ka kaasaegsetes hajutatud hoidlates LSM-puul ja muudel räsitabelite modifikatsioonidel.

*Need sammud põhinevad suurepärasel artiklil Adilya Khashtamova. Seega, kui oskad vene keelt, siis toeta seda autorit ja loe tema postitus.

1. Algoritmid ja andmestruktuurid

Õige andmestruktuuri kasutamine võib oluliselt parandada algoritmi jõudlust. Ideaalis peaksime kõik õppima oma koolides andmestruktuuride ja algoritmide kohta, kuid seda käsitletakse harva. Igal juhul pole kunagi liiga hilja tutvuda.
Siin on minu lemmik tasuta kursused andmestruktuuride ja algoritmide õppimiseks:

Lisaks ärge unustage Thomas Cormani klassikalist tööd algoritmide alal - Algoritmide tutvustus. See on ideaalne viide, kui teil on vaja oma mälu värskendada.

  • Oma oskuste parandamiseks kasutage Leetcode.

Saate sukelduda andmebaaside maailma ka YouTube'i Carnegie Melloni ülikooli hämmastavate videotega:

2. Õppige SQL-i

Kogu meie elu on andmed. Ja selleks, et neid andmeid andmebaasist välja tõmmata, peate nendega "rääkima" sama keelt.

SQL (Structured Query Language) on andmedomeeni suhtluskeel. Sõltumata sellest, mida keegi ütleb, on SQL elanud, on elus ja elab veel väga kaua.

Kui olete pikka aega arendamisega tegelenud, olete ilmselt märganud, et kuulujutud SQL-i peatse surma kohta ilmuvad perioodiliselt. Keel töötati välja 70ndate alguses ja on siiani väga populaarne analüütikute, arendajate ja lihtsalt entusiastide seas.
Ilma SQL-i tundmiseta pole andmetöötluses midagi teha, kuna andmete toomiseks peate paratamatult looma päringuid. Kõik kaasaegsed suured andmelaod toetavad SQL-i:

  • Amazoni punane nihe
  • HP Vertica
  • Oraakel
  • SQL Server

... ja paljud teised.

Hajutatud süsteemides, nagu HDFS, salvestatud suure andmekihi analüüsimiseks leiutati SQL-mootorid: Apache Hive, Impala jne. Vaata, see ei vii kuhugi.

Kuidas SQL-i õppida? Tehke seda lihtsalt praktikas.

Selleks soovitaksin vaadata suurepärast õpetust, mis, muide, on tasuta Režiimianalüüs.

  1. Kesktaseme SQL
  2. Andmete ühendamine SQL-is

Need kursused teeb eriliseks see, et neil on interaktiivne keskkond, kus saate kirjutada ja käivitada SQL päringuid otse brauseris. Ressurss Kaasaegne SQL ei jää üleliigseks. Ja saate neid teadmisi rakendada Leetcode'i ülesanded jaotises Andmebaasid.

3. Programmeerimine Pythonis ja Javas/Scalas

Miks peaksite Pythoni programmeerimiskeelt õppima, kirjutasin juba artiklis Python vs R. Parima tööriista valimine AI, ML ja andmeteaduse jaoks. Java ja Scala puhul on enamik tohutute andmemahtude salvestamise ja töötlemise tööriistu kirjutatud nendes keeltes. Näiteks:

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

Et mõista, kuidas need tööriistad töötavad, peate teadma keeli, milles need on kirjutatud. Scala funktsionaalne lähenemine võimaldab tõhusalt lahendada paralleelse andmetöötluse probleeme. Kahjuks ei saa Python kiiruse ja paralleelse töötlemisega kiidelda. Üldiselt on mitme keele ja programmeerimisparadigma tundmine hea probleemide lahendamise lähenemisviiside laiaulatuslikuks jaoks.

Scala keelde sukeldumiseks võite lugeda Programmeerimine Scalas keele autorilt. Twitter avaldas ka hea sissejuhatava juhendi - Scala kool.

Mis puutub Pythonisse, siis ma usun Ladus Python parim kesktaseme raamat.

4. Tööriistad suurandmetega töötamiseks

Siin on nimekiri kõige populaarsematest tööriistadest suurandmete maailmas:

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

Sellest hämmastavast artiklist leiate lisateavet suurte andmeplokkide loomise kohta interaktiivne keskkond. Kõige populaarsemad tööriistad on Spark ja Kafka. Neid tasub kindlasti õppida, soovitav on mõista, kuidas need toimivad seestpoolt. Jay Kreps (Kafka kaasautor) avaldas 2013. aastal monumentaalse teose Logi: mida iga tarkvaraarendaja peaks reaalajas andmete koondamise kohta teadmaMuide, selle Talmudi peamisi ideid kasutati Apache Kafka loomisel.

5. Pilveplatvormid

Kes on andmeinsenerid ja kuidas neist saada?

Vähemalt ühe pilveplatvormi tundmine on andmeinseneri ametikohale kandideerija põhinõuete nimekirjas. Tööandjad eelistavad Amazon Web Services, teisel kohal on Google'i pilveplatvorm ja esikolmikus Microsoft Azure.

Teil peavad olema head teadmised Amazon EC2, AWS Lambda, Amazon S3, DynamoDB kohta.

6. Hajutatud süsteemid

Suurandmetega töötamine eeldab iseseisvalt töötavate arvutite klastrite olemasolu, mille vaheline suhtlus toimub võrgu kaudu. Mida suurem on klaster, seda suurem on selle liikmesõlmede rikke tõenäosus. Suureks andmeteadlaseks saamiseks peate mõistma hajutatud süsteemide probleeme ja olemasolevaid lahendusi. See piirkond on vana ja keeruline.

Andrew Tanenbaumi peetakse selles valdkonnas teerajajaks. Kes teooriat ei karda, soovitan tema raamatut "Hajutatud süsteemid", võib see algajatele tunduda hirmutav, kuid see aitab tõesti oma oskusi lihvida.

Ma arvan Martin Kleppmann andmemahukate rakenduste kavandamine parim sissejuhatav raamat. Muide, Martinil on imeline blog. Tema töö aitab süstematiseerida teadmisi suurandmete salvestamise ja töötlemise kaasaegse infrastruktuuri ehitamisest.
Neile, kellele meeldib videoid vaadata, on Youtube’is kursus Hajutatud arvutisüsteemid.

7. Andmekonveierid

Kes on andmeinsenerid ja kuidas neist saada?

Andmekonveierid on midagi, ilma milleta andmeinsenerina elada ei saa.

Enamasti ehitab andmeinsener nn andmekonveieri ehk loob protsessi andmete ühest kohast teise toimetamiseks. Need võivad olla kohandatud skriptid, mis lähevad välise teenuse API-le või teevad SQL-päringu, suurendavad andmeid ja paigutavad need tsentraliseeritud hoidlasse (andmelattu) või struktureerimata andmesalve (andmejärved).

Kokkuvõtteks: andmeinseneri põhikontrollnimekiri

Kes on andmeinsenerid ja kuidas neist saada?

Kokkuvõtteks on vaja head arusaamist järgmisest:

  • Infosüsteemid;
  • Tarkvaraarendus (Agile, DevOps, Design Techniques, SOA);
  • hajutatud süsteemid ja paralleelprogrammeerimine;
  • Andmebaasi alused – planeerimine, projekteerimine, kasutamine ja tõrkeotsing;
  • Katsete kavandamine – A/B testid kontseptsioonide tõestamiseks, töökindluse ja süsteemi jõudluse kindlaksmääramiseks ning usaldusväärsete meetodite väljatöötamiseks heade lahenduste kiireks pakkumiseks.

Need on vaid mõned nõuded andmeinseneriks saamiseks, nii et õppige ja mõistke andmesüsteeme, infosüsteeme, pidevat tarnimist/juurutamist/integreerimist, programmeerimiskeeli ja muid arvutiteaduse teemasid (mitte kõik ainevaldkonnad).

Ja lõpuks viimane, kuid väga oluline asi, mida ma tahan öelda.

Tee andmetehnikaks saamiseni pole nii lihtne, kui võib tunduda. Ta ei andesta, ta valmistab frustratsiooni ja sa pead olema selleks valmis. Mõned hetked sellel teekonnal võivad sundida teid loobuma. Kuid see on tõeline töö ja õppimisprotsess.

Ärge lihtsalt määrige seda algusest peale suhkruga. Reisimise mõte on õppida nii palju kui võimalik ja olla valmis uuteks väljakutseteks.
Siin on suurepärane pilt, mille peale sattusin ja mis illustreerib seda punkti hästi:

Kes on andmeinsenerid ja kuidas neist saada?

Ja jah, ärge unustage läbipõlemist ja puhkamist vältida. See on samuti väga oluline. Edu!

Mida arvate artiklist, sõbrad? Kutsume teid üles tasuta veebiseminar, mis toimub täna kell 20.00. Veebiseminaril arutleme, kuidas väiksele ettevõttele või alustavale ettevõttele minimaalsete kuludega üles ehitada tõhus ja skaleeritav andmetöötlussüsteem. Praktikana teeme tutvust Google Cloudi andmetöötlustööriistadega. Näeme!

Allikas: www.habr.com

Lisa kommentaar