Kes on andmeinsenerid ja kuidas neist saavad?

Tere taas! Artikli pealkiri rÀÀgib enda eest. Enne kursuse algust „Andmeinsener“ pakkume vĂ€lja selgitada, kes on andmeinsenerid. Artiklis on palju kasulikke linke. Head lugemist.

Kes on andmeinsenerid ja kuidas neist saavad?

Lihtne juhend selle kohta, kuidas haarata Data Engineering'ist ning mitte lasta end sellega liialt kaasa viia.

Tundub, et tĂ€napĂ€eval tahab igaĂŒks saada andmeanalĂŒĂŒtikuks (Data Scientist). Aga kuidas on lood andmeinseneri (Data Engineering) ametiga? Sisuliselt on see mingisugune hĂŒbriid andmeanalĂŒĂŒtiku ja andmeanalĂŒĂŒtiku vahel; andmeinsener vastutab tavaliselt tööprotsesside, töötlemiskonveierite ja ETL-protsesside haldamise eest. Nende funktsioonide tĂ€htsuse tĂ”ttu on see praegu veel ĂŒks populaarne ametigrupp, mis aktiivselt kasvab.

Kohene tasu ja suur nÔudlus on vaid osa sellest, mis teeb töö ÀÀrmiselt atraktiivseks! Kui soovite liituda kangelaste ridadega, pole kunagi hilja Ôppima hakata. Selles postituses olen kogunud kogu vajaliku teabe, et aidata teil teha esimesed sammud.

Nii et alustame!

Mis on Data Engineering?

Ahnelt öeldes pole paremat selgitust kui see:

„Teadlane vĂ”ib avastada uue tĂ€hte, kuid ei suuda seda luua. Tal on vaja insenerilt seda paluda.”

–Gordon Lindsay Glegg

Seega on andmeinseneri roll piisavalt oluline.

Nimest jĂ€reldub, et andmeinseneria seondub andmetele, nimelt nende edastamisele, sĂ€ilitamisele ja töötlemisele. Seega on inseneride peamine ĂŒlesanne tagada usaldusvÀÀrne infrastruktuur andmete jaoks. Kui vaatame AI vajaduste hierarhiat, siis andmeinseneeria hĂ”lmab esimesi 2–3 etappi: andmete kogumine, edastamine ja sĂ€ilitamine, andmete ettevalmistamine.

Kes on andmeinsenerid ja kuidas neist saavad?

Millega tegeleb andmeinsener?

Suure andmemahu saabumisega on vastutusalad dramaatiliselt muutunud. Kui varem kirjutasid need spetsialistid suuri SQL-pĂ€ringuid ja edastasid andmeid selliste tööriistadega nagu Informatica ETL, Pentaho ETL, Talend, siis nĂŒĂŒd on nĂ”uded andmeinseneridele tĂ”usnud.

Enamikul ettevÔtetel, kus on avatud andmeinseneri ametikoht, on jÀrgmised nÔudmised:

  • SuurepĂ€rane SQL- ja Python'i teadmine.
  • Kogemus pilveteenustega, eelkĂ”ige Amazon Web Services'iga.
  • Soovitav on Java/Scala teadmine.
  • Hea arusaam SQL ja NoSQL andmebaasidest (andmemudelite koostamine, andmete salvestamine).

Pange tĂ€hele, et see on vaid kĂ”ige olulisem. Selle loendi pĂ”hjal vĂ”ib jĂ€reldada, et andmeinsenerid on tarkvaraarenduse ja tagasisĂŒsteemi spetsialistid.
NĂ€iteks, kui ettevĂ”te hakkab genereerima suurt hulka andmeid erinevatest allikatest, on teie ĂŒlesanne andmeinsenerina korraldada teabe kogumine, töötlemine ja salvestamine.

KÀesolevas olukorras kasutatavad tööriistad vÔivad erineda, kÔik sÔltub nende andmete mahust, sissetuleku kiirusest ja mitmekesisusest. Enamik ettevÔtteid ei puutu kokku suure hulga andmetega, seetÔttu vÔib keskse salvestusruumina, mida nimetatakse andmehoidmiseks, kasutada SQL andmebaasi (PostgreSQL, MySQL jne) koos vÀikese hulga skriptidega, mis suunavad andmed salvestusse.

IT-hiiglased, nagu Google, Amazon, Facebook vÔi Dropbox, esitavad kÔrgemaid nÔudmisi: teadmised Pythonist, Java'st vÔi Scala'st.

  • Kogemus suurte andmete töötlemisel: Hadoop, Spark, Kafka.
  • Teadmised algoritmidest ja andmestruktuuridest.
  • Tundmine jaotusĂŒsteemide pĂ”hialustest.
  • Kogemus andmete visualiseerimise tööriistade, nagu Tableau vĂ”i ElasticSearch, osas on suur pluss.

KĂ€ib selge suundumus suurte andmete poole, eriti nende töötlemisel suurte koormuste korral. Nendel ettevĂ”tetel on sĂŒsteemi rikke suhtes kĂ”rgemad nĂ”udmised.

Andmeinsenerid vs. andmeadlased

Kes on andmeinsenerid ja kuidas neist saavad?
Olgu, see oli lihtne ja naljakas vÔrdlus (pole isiklik), kuid tegelikult on kÔik palju keerulisem.

Esiteks peate teadma, et andmeadlase ja andmeinseneri rollide ja oskuste piiritlemises on piisavalt segadust. Te vÔite kergesti olla rikutud, millised oskused on vajalikud edukale andmeinsenerile. Loomulikult on teatud oskused, mis kattuvad mÔlema rolliga. Kuid samas on ka terve hulk diametraalselt vastupidiseid oskusi.

Andmeadlus on tĂ”sine asi, kuid liikume maailma suunas funktsionaalse andmeadluse poole, kus praktikandid suudavad teha oma analĂŒĂŒsi. AndmepĂ”histe torude ja integreeritud andmestruktuuride kasutamiseks on vaja andmeinsenersid, mitte teadlasi.

Kas andmete insener on rohkem nÔutud kui andmete teadlane?

— Jah, sest enne kui saad porgandikoogi kĂŒpsetada, pead kĂ”igepealt porgandid koguma, puhastama ja varuma!

Andmete insener mĂ”istab programmeerimist paremini kui ĂŒkski andmete teadlane, kuid statistika osas on kĂ”ik tĂ€pselt vastupidine.

Aga siin on andmete inseneri eelis:

ilma temata/oneta prototĂŒĂŒbi mudeli vÀÀrtus, mis enamasti koosneb kohutava kvaliteediga koodifragmendist Python failis, mille on andmete teadlane kuidagi loonud ja mis vĂ€hemalt mingit tulemust annab, kaldub nulli.

Ilma andmete insenerita ei saa see kood kunagi projektiks ning ei ĂŒhtegi Ă€riprobleemi ei suudeta tĂ”husalt lahendada. Andmete insener pĂŒĂŒab sellest kĂ”ik toote muuta.

PÔhiteadmised, mida andmete insener peab teadma

Kes on andmeinsenerid ja kuidas neist saavad?

Kuna, kui see töö Ă€ratab teises valguse ja te olete tĂ€is entusiasm — te suudate Ă”ppida seda, te suudate omandada kĂ”ik vajalikud oskused ja saada tĂ”eliseks rock-staariks andmeinsenerite alal. Ja jah, te saate seda teha isegi ilma programmeerimisoskusteta vĂ”i muude tehniliste teadmisteta. See on keeruline, kuid vĂ”imalik!

Millised on esimesed sammud?

Te peaksite omama ĂŒldist ettekujutust, mis on mis.

Esiteks, andmeinseneriteadus kuulub infotehnoloogia valdkonda. TĂ€psemalt öeldes — te peaksite mĂ”istma tĂ”husaid algoritme ja andmestruktuure. Teiseks, kuna andmeinsenerid töötavad andmetega, on vajalik mĂ”ista andmebaaside tööpĂ”himĂ”tteid ja nende aluseks olevaid struktuure.

NÀiteks tavalised B-puu SQL andmebaasid pÔhinevad B-puu andmestruktuuril, samuti tÀnapÀevastes jaotatud ladustamisplatsides LSM-puul ja muudel hash-tabelite modifikatsioonidel.

* Need sammud pÔhinevad suurepÀrasel artiklil Adil Hashtamovilt. Nii et kui te rÀÀgite vene keelt, toetage seda autorit ja lugege tema postitust.

1. Algoritmid ja andmestruktuurid

Õige andmestruktuuri kasutamine vĂ”ib oluliselt parandada algoritmi jĂ”udlust. Idee jĂ€rgi peaksime kĂ”ik Ă”ppima andmestruktuure ja algoritme meie koolides, kuid see harva kunagi kajastub. Igatahes pole kunagi liiga hilja tutvuda.
Nii et siin on minu lemmik tasuta kursused, et Ôppida andmestruktuure ja algoritme:

Ja Ă€rge unustage klassikalist teost algoritmidest Thomas Cormenilt — Algoritmide sissejuhatus. See on ideaalne kĂ€siraamat, kui peate oma mĂ€lu vĂ€rskendama.

  • Oma oskuste parandamiseks kasutage Leetcode.

Samuti vĂ”ite sĂŒveneda andmebaaside maailma Carnegie Melloni Ülikooli suurepĂ€raste videote kaudu Youtube'is:

2. SQL-i Ôppimine

Kogu meie elu on andmed. Ja et neid andmeid andmebaasist vĂ€lja tuua, tuleb teil nendega ĂŒhel keelel "rÀÀkida".

SQL (Structured Query Language — struktureeritud pĂ€ringute keel) on andmete valdkonnas suhtlemise keel. ÜkskĂ”ik, mida keegi ĂŒtleb, on SQL elanud, elab ja elab veel vĂ€ga pikka aega.

Kui olete pikka aega arendustegevuses olnud, olete tĂ”enĂ€oliselt mĂ€rganud, et kuulujutud SQL-i kiirest surmast ilmuvad perioodiliselt. Keel loodi 70. aastate alguses ning on siiani vĂ€ga populaarne analĂŒĂŒtikute, arendajate ja lihtsalt entusiastide seas.
Ilma SQL-i teadmata andmete inseneri valdkonnas ei ole midagi teha, kuna peate paratamatult looma pÀringuid andmete ekstraheerimiseks. KÔik kaasaegsed suurandmete ladustamised toetavad SQL-i:

  • Amazon Redshift
  • HP Vertica
  • Oracle
  • SQL Server


 ja palju teisi.

Suurte andmekoguste analĂŒĂŒsimiseks jaotatud sĂŒsteemides, nagu HDFS, on vĂ€lja mĂ”eldud SQL-mehhanismid: Apache Hive, Impala jms. NĂ€hte, see ei kavatse kuhugi minna.

Kuidas SQL-i Ôppida? Lihtsalt tee seda praktikas.

Selle jaoks soovitaksin tutvuda suurepÀrase tasuta Ôpikuga, mille autor on Mode Analytics.

  1. Keskmine SQL-i tase
  2. Andmete ĂŒhendamine SQL-is

Nende kursuste eripĂ€ra on interaktiivne keskkond, kus saate SQL-pĂ€ringuid otse brauseris kirjutada ja kĂ€itada. Ressurss Modern SQL on kindlasti kasulik. Ja saate neid teadmisi rakendada Leetcodi ĂŒlesannetes andmebaaside osas.

3. Programmeerimine Pythonis ja Java/Scala

Miks tasub Ôppida programmeerimiskeelt Python, olen juba kirjutanud artiklis Python vs R. Parima tööriista valik AI, ML ja andmeteaduse jaoks. Mis puutub Java ja Scala, siis enamus suurte andmemahtude salvestamise ja töötlemise tööriistu on kirjutatud just nende keeltega. NÀiteks:

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

Nende tööriistade toimimise mĂ”istmiseks peate teadma keeli, milles need on kirjutatud. Scala funktsionaalne lĂ€henemine vĂ”imaldab tĂ”husalt lahendada andmete paralleeltöötluse ĂŒlesandeid. Paraku ei saa Python kiirusest ja paralleelsest töötlemisest rÀÀkida. Üldiselt mĂ”jutab mitme keele ja programmeerimisparadigma tundmine positiivselt probleemide lahendamise lĂ€henemisviisi laiust.

Scala keele sĂŒvitsi minekuks vĂ”ite lugeda Scala programmeerimine keele autorilt. Samuti avaldas Twitter hea sissejuhatava juhendi — Scala Kool.

Mis puutub Pythonisse, ma arvan, Fluent Python on parim keskastme raamat.

4. Suurte andmete tööriistad

Siin on nimekiri kÔige populaarsematest tööriistadest suures andme maailmas:

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

Rohkem teavet suurte andmeplokkide ehitamise kohta leiate sellest hĂ€mmastavast interaktiivsest keskkonnast. KĂ”ige populaarsemad tööriistad on Spark ja Kafka. Neid tasub kindlasti Ă”ppida, eelistatavalt mĂ”ista, kuidas need seestpoolt töötavad. Jay Kreps (Kafka kaasautor) avaldas 2013. aastal monumentaalse teose The Log: mida iga tarkvaraarendaja peab teadma andmete reaalajas ĂŒhendamise abstraktsioonist, muide, selle talmudi pĂ”hijooni kasutati Apache Kafka loomisel.

5. Pilveteenused

Kes on andmeinsenerid ja kuidas neist saavad?

ÜkskĂ”ik millise pilveplatvormi tundmine on andmeinseneri ametikoha taotlejatele esitatud pĂ”hivĂ”imetuste loendis. Tööandjad eelistavad Amazon Web Services'i, teisel kohal on Google'i pilveplatvorm ja kolmandat kohta jagab Microsoft Azure.

Te peaks hÀsti orienteeruma Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Jagatud sĂŒsteemid

Suure andmemahu töötlemine eeldab sĂ”ltumatute arvutiklasterite olemasolu, mille vaheline suhtlus toimub vĂ”rgus. Mida suurem on klaster, seda tĂ”enĂ€olisem on tema liikmete rikke. Et saada andmeekspert, peate sĂŒvenema jagatud sĂŒsteemide probleemidesse ja olemasolevatesse lahendustesse. See valdkond on vana ja keeruline.

Andrew Tanenbaum on selle valdkonna pioneer. Neile, kes ei karda teooriat, soovitan tema raamatut „Jagatud sĂŒsteemid“, alustajatele vĂ”ib see tunduda keeruline, kuid see aitab teil tĂ”eliselt oma oskusi lihvida.

Olen arvamusel et „Andmekasutusega rakenduste projekteerimine“ autoriks on Martin Kleppmann kĂ”ige parem sissejuhatav raamat. ÜkskĂ”ik, kas Martinil on suurepĂ€rane blogi. Tema töö aitab struktureerida teadmisi kaasaegse andmete salvestamise ja töötlemise infrastruktuuri ehitamise kohta.
Neile, kes armastavad videoid vaadata, on YouTube'is kursus Jaotatud arvutisĂŒsteemid.

7. Andmevood

Kes on andmeinsenerid ja kuidas neist saavad?

Andmevood on see, ilma milleta ei saa te andmeinsenerina elada.

Suure osa ajast loob andmeinsener nn andmevooge, see tĂ€hendab andmete edastamise protsessi loomist ĂŒhest kohast teise. Need vĂ”ivad olla kasutuslood, mis suunavad vĂ€listeenuse API-le vĂ”i teevad SQL-pĂ€ringu, tĂ€iendavad andmeid ja paigutavad need kesksetesse salvestuskohtadesse (andmehoidlad) vĂ”i struktureerimata andmete ladustamisse (andmejĂ€rved).

KokkuvÔtteks: andmeinseneri peamine kontrollnimekiri

Kes on andmeinsenerid ja kuidas neist saavad?

KokkuvÔtteks on vajalik hea arusaam jÀrgmistest:

  • Teabe sĂŒsteemid;
  • Tarkvaraarendus (Agile, DevOps, disainitehnika, SOA);
  • Jaotatud sĂŒsteemid ja paralleelne programmeerimine;
  • Andmebaaside alused — planeerimine, projekteerimine, haldamine ja vigade parandus;
  • Katsedegedeerimine — A/B-testid kontseptsioonide tĂ”estamiseks, sĂŒsteemide usaldusvÀÀrsuse ja jĂ”udluse mÀÀramiseks ning usaldusvÀÀrsete lahenduste kiireks kĂ€itamiseks.

Need on vaid mĂ”ned nĂ”uded, et saada andmeinseneriks, seega tutvuge andmesĂŒsteemide, infosĂŒsteemide, pideva tarnimise/deployimise/integratsiooni, programmeerimiskeelte ja teiste IT-teemadega (mitte kĂ”ikides ainetes).

Ja lĂ”puks, viimane, kuid ĂŒlimalt oluline asi, mille ma soovin öelda.

Teekond andmeinseneriks saamisel ei ole nii lihtne, nagu see esialgu tunduda vÔib. See ei anna andestust, frustreerib ja peate olema valmis selleks. MÔned hetked sellel teekonnal vÔivad teid kÔikidest loobuma sundida. Aga see on tÔeline töö ja Ôppimisprotsess.

Ärge lihtsalt kaunistage seda algusest peale. Kogu teekonna mĂ”te on Ă”ppida vĂ”imalikult palju ja olla valmis uute vĂ€ljakutsetega silmitsi seisma.
Siin on suurepÀrane pilt, millega ma kokku puutusin, mis illustreerib seda punkti hÀsti:

Kes on andmeinsenerid ja kuidas neist saavad?

Ja, Àrge unustage vÀltida lÀbipÔlemist ning puhkama. See on samuti vÀga oluline. Edu!

Kuidas teile artikkel meeldis, sĂ”brad? Olete oodatud tasuta veebinarile, mis toimub juba tĂ€na kell 20.00. Veebiseminari raames arutame, kuidas luua tĂ”hus ja skaleeritav andmete töötlemise sĂŒsteem vĂ€ikesele ettevĂ”ttele vĂ”i idufirmale minimaalsete kuludega. Praktika osana tutvume Google Cloudi andmete töötlemise tööriistadega. NĂ€gemiseni!

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster