Kdo so podatkovni inženirji in kako to postanete?

Pozdravljeni ponovno! Naslov članka govori sam zase. V pričakovanju začetka tečaja Podatkovni inženir Predlagamo, da razumete, kdo so podatkovni inženirji. V članku je veliko uporabnih povezav. veselo branje.

Kdo so podatkovni inženirji in kako to postanete?

Preprost vodnik, kako ujeti val podatkovnega inženiringa in mu ne dovoliti, da vas povleče v brezno.

Zdi se, kot da si dandanes vsakdo želi postati podatkovni znanstvenik. Kaj pa podatkovni inženiring? V bistvu je to nekakšen hibrid podatkovnega analitika in podatkovnega znanstvenika; Podatkovni inženir je običajno odgovoren za upravljanje potekov dela, cevovodov za obdelavo in procesov ETL. Zaradi pomembnosti teh funkcij je to trenutno še en priljubljen strokovni žargon, ki aktivno pridobiva zagon.

Visoke plače in veliko povpraševanje je le majhen del tega, kar dela to delo izjemno privlačno! Če se želite pridružiti vrstam junakov, ni nikoli prepozno, da se začnete učiti. V tem prispevku sem zbral vse potrebne informacije, ki vam bodo pomagale narediti prve korake.

Torej začnimo!

Kaj je podatkovno inženirstvo?

Iskreno povedano, ni boljše razlage od te:

»Znanstvenik lahko odkrije novo zvezdo, ne more pa je ustvariti. Moral bo prositi inženirja, da to stori namesto njega."

– Gordon Lindsay Glegg

Tako je vloga podatkovnega inženirja zelo pomembna.

Kot že ime pove, se podatkovni inženiring ukvarja s podatki, in sicer z njihovo dostavo, shranjevanjem in obdelavo. Zato je glavna naloga inženirjev zagotoviti zanesljivo infrastrukturo za podatke. Če pogledamo hierarhijo potreb AI, podatkovni inženiring zavzema prve 2–3 stopnje: zbiranje, premikanje in shranjevanje, priprava podatkov.

Kdo so podatkovni inženirji in kako to postanete?

Kaj počne podatkovni inženir?

S pojavom velikih podatkov se je obseg odgovornosti dramatično spremenil. Če so prej ti strokovnjaki pisali velike poizvedbe SQL in destilirali podatke z orodji, kot so Informatica ETL, Pentaho ETL, Talend, so se zdaj zahteve za podatkovne inženirje povečale.

Večina podjetij z odprtimi prostimi delovnimi mesti za delovno mesto podatkovnega inženirja ima naslednje zahteve:

  • Odlično poznavanje SQL in Pythona.
  • Izkušnje s platformami v oblaku, zlasti Amazon Web Services.
  • Zaželeno poznavanje Java/Scala.
  • Dobro razumevanje baz podatkov SQL in NoSQL (modeliranje podatkov, skladiščenje podatkov).

Upoštevajte, da so to le najnujnejše. Iz tega seznama je mogoče domnevati, da so podatkovni inženirji specialisti na področju razvoja programske opreme in zaledja.
Na primer, če podjetje začne ustvarjati veliko količino podatkov iz različnih virov, je vaša naloga kot podatkovni inženir organizirati zbiranje informacij, njihovo obdelavo in shranjevanje.

Seznam orodij, uporabljenih v tem primeru, se lahko razlikuje, vse je odvisno od količine teh podatkov, hitrosti njihovega prejema in heterogenosti. Večina podjetij se sploh ne ukvarja z velikimi podatki, zato lahko kot centraliziran repozitorij, tako imenovano podatkovno skladišče, uporabite bazo podatkov SQL (PostgreSQL, MySQL itd.) z majhnim naborom skriptov, ki podajajo podatke v skladišče.

IT-velikani, kot so Google, Amazon, Facebook ali Dropbox, imajo višje zahteve: poznavanje Pythona, Jave ali Scale.

  • Izkušnje z velikimi podatki: Hadoop, Spark, Kafka.
  • Poznavanje algoritmov in podatkovnih struktur.
  • Razumevanje osnov porazdeljenih sistemov.
  • Izkušnje z orodji za vizualizacijo podatkov, kot sta Tableau ali ElasticSearch, bodo prednost.

To pomeni, da je očiten premik k velikim podatkom, in sicer pri njihovi obdelavi pod velikimi obremenitvami. Ta podjetja imajo povečane zahteve glede tolerance sistemskih napak.

Podatkovni inženirji vs. podatkovni znanstveniki

Kdo so podatkovni inženirji in kako to postanete?
Ok, to je bila preprosta in smešna primerjava (nič osebnega), a v resnici je veliko bolj zapletena.

Najprej morate vedeti, da je v razmejitvi vlog in veščin podatkovnega znanstvenika in podatkovnega inženirja veliko dvoumnosti. To pomeni, da ste zlahka zmedeni glede tega, katere veščine so potrebne za uspešnega podatkovnega inženirja. Seveda obstajajo določene veščine, ki se prekrivajo z obema vlogama. Obstaja pa tudi vrsta diametralno nasprotnih veščin.

Podatkovna znanost je resen posel, vendar se pomikamo v svet funkcionalne podatkovne znanosti, kjer lahko izvajalci delajo lastno analitiko. Če želite omogočiti podatkovne kanale in integrirane podatkovne strukture, potrebujete podatkovne inženirje, ne podatkovnih znanstvenikov.

Ali je podatkovni inženir bolj iskan kot podatkovni znanstvenik?

- Da, kajti preden lahko pripravite korenčkovo torto, morate najprej pobrati, olupiti in shraniti korenje!

Podatkovni inženir razume programiranje bolje kot kateri koli podatkovni znanstvenik, ko pa gre za statistiko, je ravno nasprotno.

Toda tukaj je prednost podatkovnega inženirja:

Brez njega/nje se vrednost prototipnega modela, ki je najpogosteje sestavljen iz dela kode strašne kakovosti v datoteki Python, pridobljenega od podatkovnega znanstvenika in nekako daje rezultat, nagiba k ničli.

Brez podatkovnega inženirja ta koda nikoli ne bo postala projekt in noben poslovni problem ne bo učinkovito rešen. Podatkovni inženir poskuša vse to spremeniti v izdelek.

Osnovne informacije, ki jih mora poznati podatkovni inženir

Kdo so podatkovni inženirji in kako to postanete?

Torej, če vas to delo razsvetli in ste navdušeni – se ga lahko naučite, obvladate vse potrebne veščine in postanete prava rock zvezda na področju podatkovnega inženiringa. In da, to lahko izvedete tudi brez veščin programiranja ali drugega tehničnega znanja. Težko je, a mogoče!

Kakšni so prvi koraki?

Morali bi imeti splošno predstavo o tem, kaj je kaj.

Podatkovni inženiring se najprej nanaša na računalništvo. Natančneje, razumeti morate učinkovite algoritme in podatkovne strukture. Drugič, ker podatkovni inženirji delajo s podatki, je treba razumeti načela podatkovnih baz in struktur, ki so osnova zanje.

Na primer, običajne baze podatkov SQL B-tree temeljijo na podatkovni strukturi B-Tree, kot tudi v sodobnih porazdeljenih repozitorijih LSM-Tree in druge modifikacije zgoščevalnih tabel.

*Ti koraki temeljijo na odličnem članku Adilya Khashtamova. Torej, če znate rusko, podprite tega avtorja in berite njegova objava.

1. Algoritmi in podatkovne strukture

Uporaba prave podatkovne strukture lahko bistveno izboljša delovanje algoritma. V idealnem primeru bi se morali vsi učiti o podatkovnih strukturah in algoritmih v naših šolah, vendar je to redkokdaj zajeto. Vsekakor pa nikoli ni prepozno, da se spoznate.
Tukaj so moji najljubši brezplačni tečaji za učenje podatkovnih struktur in algoritmov:

Poleg tega ne pozabite na klasično delo Thomasa Cormana o algoritmih - Uvod v algoritme. To je odlična referenca, ko morate osvežiti spomin.

  • Če želite izboljšati svoje sposobnosti, uporabite Leetcode.

Prav tako se lahko potopite v svet baz podatkov z osupljivimi videoposnetki Univerze Carnegie Mellon na Youtube:

2. Naučite se SQL

Vse naše življenje so podatki. In če želite izvleči te podatke iz baze podatkov, morate z njimi "govoriti" isti jezik.

SQL (Structured Query Language) je jezik komunikacije v podatkovni domeni. Ne glede na to, kaj kdo reče, je SQL živel, je živ in bo živel še zelo dolgo.

Če se že dolgo ukvarjate z razvojem, ste verjetno opazili, da se govorice o skorajšnji smrti SQL pojavljajo občasno. Jezik je bil razvit v zgodnjih 70-ih in je še vedno zelo priljubljen med analitiki, razvijalci in preprosto navdušenci.
Brez poznavanja SQL pri podatkovnem inženirstvu ni kaj početi, saj boste neizogibno morali ustvariti poizvedbe za pridobivanje podatkov. Vsa sodobna skladišča velikih podatkov podpirajo SQL:

  • Amazon RedShift
  • HP Vertica
  • Oracle
  • SQL Server

... in mnogi drugi.

Za analizo velikega sloja podatkov, shranjenih v porazdeljenih sistemih, kot je HDFS, so bili izumljeni motorji SQL: Apache Hive, Impala itd. Vidite, to ne pelje nikamor.

Kako se naučiti SQL? Samo naredi to v praksi.

Če želite to narediti, priporočam, da si ogledate odlično vadnico, ki je mimogrede brezplačna Način Analytics.

  1. Vmesni SQL
  2. Združevanje podatkov v SQL

Ti tečaji so posebni po tem, da imajo interaktivno okolje, kjer lahko pišete in izvajate poizvedbe SQL kar v brskalniku. Vir Sodoben SQL ne bo odveč. In to znanje lahko uporabite pri Naloge Leetcode v razdelku Baze podatkov.

3. Programiranje v Python in Java/Scala

Zakaj bi se morali naučiti programskega jezika Python, sem že napisal v članku Python proti R. Izbira najboljšega orodja za AI, ML in Data Science. Ko gre za Javo in Scalo, je večina orodij za shranjevanje in obdelavo ogromnih količin podatkov napisanih v teh jezikih. Na primer:

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

Če želite razumeti, kako ta orodja delujejo, morate poznati jezike, v katerih so napisana. Scalin funkcionalni pristop vam omogoča učinkovito reševanje težav vzporedne obdelave podatkov. Python se žal ne more pohvaliti s hitrostjo in vzporednim procesiranjem. Na splošno je poznavanje več jezikov in programskih paradigem dobro za širino pristopov k reševanju problemov.

Če se želite poglobiti v jezik Scala, lahko preberete Programiranje v Scali od avtorja jezika. Twitter je objavil tudi dober uvodni vodič - Šola Scala.

Glede Pythona verjamem Tekoče Python najboljša knjiga srednje ravni.

4. Orodja za delo z velikimi podatki

Tukaj je seznam najbolj priljubljenih orodij v svetu velikih podatkov:

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

Več informacij o gradnji velikih podatkovnih blokov najdete v tem neverjetnem interaktivno okolje. Najbolj priljubljeni orodji sta Spark in Kafka. Vsekakor jih je vredno preučiti, priporočljivo je razumeti, kako delujejo od znotraj. Jay Kreps (soavtor Kafke) je leta 2013 objavil monumentalno delo Dnevnik: kaj bi moral vsak razvijalec programske opreme vedeti o abstrakciji združevanja podatkov v realnem časuMimogrede, glavne ideje iz tega Talmuda so bile uporabljene za ustvarjanje Apache Kafke.

5. Oblačne platforme

Kdo so podatkovni inženirji in kako to postanete?

Poznavanje vsaj ene platforme v oblaku je na seznamu osnovnih zahtev za kandidate za delovno mesto podatkovnega inženirja. Delodajalci imajo raje spletne storitve Amazon, Googlova platforma v oblaku je na drugem mestu, Microsoft Azure pa zaokrožuje prvo trojico.

Morate dobro poznati Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Porazdeljeni sistemi

Delo z velikimi podatki pomeni prisotnost grozdov neodvisno delujočih računalnikov, komunikacija med katerimi poteka prek omrežja. Večja kot je gruča, večja je verjetnost okvare njenih članskih vozlišč. Če želite postati odličen podatkovni znanstvenik, morate razumeti težave in obstoječe rešitve za porazdeljene sisteme. To območje je staro in kompleksno.

Andrew Tanenbaum velja za pionirja na tem področju. Tistim, ki se ne bojijo teorije, priporočam njegovo knjigo "Razdeljeni sistemi", se morda zdi zastrašujoče za začetnike, vendar vam bo resnično pomagalo izpopolniti svoje veščine.

Štejem Oblikovanje podatkovno intenzivnih aplikacij Martin Kleppmann najboljša uvodna knjiga. Mimogrede, Martin ima čudovito blog. Njegovo delo bo pomagalo sistematizirati znanje o izgradnji sodobne infrastrukture za shranjevanje in obdelavo velikih podatkov.
Za tiste, ki radi gledate videe, obstaja tečaj na Youtube Porazdeljeni računalniški sistemi.

7. Podatkovni cevovodi

Kdo so podatkovni inženirji in kako to postanete?

Podatkovni cevovodi so nekaj, brez česar kot podatkovni inženir ne morete živeti.

Podatkovni inženir največkrat zgradi tako imenovani podatkovni cevovod, torej ustvari proces za dostavo podatkov iz enega kraja v drugega. To so lahko skripti po meri, ki gredo v API zunanje storitve ali izvedejo poizvedbo SQL, povečajo podatke in jih shranijo v centralizirano shrambo (podatkovno skladišče) ali nestrukturirano shrambo podatkov (podatkovna jezera).

Če povzamem: osnovni kontrolni seznam za podatkovnega inženirja

Kdo so podatkovni inženirji in kako to postanete?

Če povzamem, potrebno je dobro razumevanje naslednjega:

  • Informacijski sistemi;
  • Razvoj programske opreme (Agile, DevOps, Design Techniques, SOA);
  • Porazdeljeni sistemi in vzporedno programiranje;
  • Osnove baze podatkov – načrtovanje, oblikovanje, delovanje in odpravljanje težav;
  • Načrtovanje eksperimentov – A/B testi za dokazovanje konceptov, določanje zanesljivosti, zmogljivosti sistema in razvoj zanesljivih poti za hitro zagotavljanje dobrih rešitev.

To je le nekaj zahtev, da postanete podatkovni inženir, zato se naučite in razumejte podatkovne sisteme, informacijske sisteme, neprekinjeno dostavo/uvajanje/integracijo, programske jezike in druge teme računalništva (ne vsa predmetna področja).

In končno, zadnja, a zelo pomembna stvar, ki jo želim povedati.

Pot, da postanete Data Engineering, ni tako preprosta, kot se morda zdi. Ne odpušča, frustrira in na to morate biti pripravljeni. Nekateri trenutki na tem potovanju vas lahko spodbudijo, da obupate. Ampak to je pravo delo in učni proces.

Samo ne pocukrajte ga od začetka. Bistvo potovanja je, da se naučiš čim več in si pripravljen na nove izzive.
Tukaj je odlična slika, na katero sem naletel in ki to dobro ponazarja:

Kdo so podatkovni inženirji in kako to postanete?

In ja, ne pozabite se izogibati izgorelosti in počivati. Tudi to je zelo pomembno. Vso srečo!

Kaj menite o članku, prijatelji? Vabimo vas, da brezplačni spletni seminar, ki bo danes ob 20.00. Med webinarjem bomo razpravljali o tem, kako zgraditi učinkovit in razširljiv sistem za obdelavo podatkov za majhno podjetje ali startup z minimalnimi stroški. V praksi se bomo seznanili z orodji za obdelavo podatkov Google Cloud. Se vidiva!

Vir: www.habr.com

Dodaj komentar