Kto sú dátoví inžinieri a ako sa nimi stať?

Ahoj zas! Názov článku hovorí sám za seba. V očakávaní začiatku kurzu dátový inžinier Odporúčame vám pochopiť, kto sú dátoví inžinieri. V článku je veľa užitočných odkazov. Príjemné čítanie.

Kto sú dátoví inžinieri a ako sa nimi stať?

Jednoduchý návod, ako chytiť vlnu Data Engineering a nenechať sa ňou stiahnuť do priepasti.

Zdá sa, že v súčasnosti sa každý chce stať Data Scientistom. Ale čo dátové inžinierstvo? V podstate ide o akýsi hybrid dátového analytika a dátového vedca; Dátový inžinier je zvyčajne zodpovedný za riadenie pracovných tokov, procesov spracovania a ETL procesov. Vzhľadom na dôležitosť týchto funkcií ide v súčasnosti o ďalší populárny odborný žargón, ktorý aktívne naberá na obrátkach.

Vysoké platy a obrovský dopyt sú len malou časťou toho, čo robí túto prácu mimoriadne atraktívnou! Ak sa chcete zaradiť medzi hrdinov, nikdy nie je neskoro začať sa učiť. V tomto príspevku som zhromaždil všetky potrebné informácie, ktoré vám pomôžu urobiť prvé kroky.

Tak začnime!

Čo je dátové inžinierstvo?

Úprimne povedané, neexistuje lepšie vysvetlenie ako toto:

„Vedec môže objaviť novú hviezdu, ale nedokáže ju vytvoriť. Bude musieť požiadať inžiniera, aby to urobil za neho."

– Gordon Lindsay Glegg

Úloha dátového inžiniera je teda dosť významná.

Ako už názov napovedá, dátové inžinierstvo sa zaoberá údajmi, konkrétne ich doručovaním, ukladaním a spracovaním. Preto je hlavnou úlohou inžinierov poskytnúť spoľahlivú infraštruktúru pre dáta. Ak sa pozrieme na hierarchiu potrieb AI, dátové inžinierstvo zaberá prvé 2–3 fázy: zber, pohyb a ukladanie, príprava dát.

Kto sú dátoví inžinieri a ako sa nimi stať?

Čo robí dátový inžinier?

S príchodom veľkých dát sa rozsah zodpovednosti dramaticky zmenil. Ak predtým títo experti písali veľké SQL dotazy a destilovali dáta pomocou nástrojov ako Informatica ETL, Pentaho ETL, Talend, teraz sa požiadavky na dátových inžinierov zvýšili.

Väčšina spoločností s voľnými pracovnými miestami na pozíciu dátového inžiniera má nasledujúce požiadavky:

  • Výborná znalosť SQL a Pythonu.
  • Skúsenosti s cloudovými platformami, najmä Amazon Web Services.
  • Uprednostňuje sa znalosť Java/Scala.
  • Dobrá znalosť SQL a NoSQL databáz (dátové modelovanie, dátové sklady).

Majte na pamäti, že toto sú len tie najnutnejšie veci. Z tohto zoznamu možno predpokladať, že dátoví inžinieri sú špecialisti v oblasti vývoja softvéru a backendu.
Ak napríklad spoločnosť začne generovať veľké množstvo údajov z rôznych zdrojov, vašou úlohou ako dátového inžiniera je organizovať zber informácií, ich spracovanie a ukladanie.

Zoznam nástrojov použitých v tomto prípade sa môže líšiť, všetko závisí od objemu týchto údajov, rýchlosti ich prijatia a heterogenity. Väčšina spoločností sa veľkými dátami vôbec nezaoberá, takže ako centralizované úložisko, takzvaný dátový sklad, môžete použiť databázu SQL (PostgreSQL, MySQL atď.) s malou sadou skriptov, ktoré vkladajú dáta do sklad.

IT giganti ako Google, Amazon, Facebook či Dropbox majú vyššie požiadavky: znalosť Pythonu, Javy či Scala.

  • Skúsenosti s veľkými dátami: Hadoop, Spark, Kafka.
  • Znalosť algoritmov a dátových štruktúr.
  • Pochopenie základov distribuovaných systémov.
  • Výhodou budú skúsenosti s nástrojmi na vizualizáciu dát ako Tableau alebo ElasticSearch.

To znamená, že je tu jasný posun smerom k veľkým dátam, a to v ich spracovaní pri vysokej záťaži. Tieto spoločnosti majú zvýšené požiadavky na toleranciu systémových chýb.

Dátoví inžinieri vs. dátových vedcov

Kto sú dátoví inžinieri a ako sa nimi stať?
Dobre, to bolo jednoduché a vtipné prirovnanie (nič osobné), ale v skutočnosti je to oveľa komplikovanejšie.

Po prvé, mali by ste vedieť, že vo vymedzení úloh a zručností dátového vedca a dátového inžiniera je veľa nejasností. To znamená, že môžete byť ľahko zmätení v tom, aké zručnosti sú potrebné na to, aby ste boli úspešným dátovým inžinierom. Samozrejme, existujú určité zručnosti, ktoré sa prekrývajú s oboma rolami. Existuje však aj množstvo diametrálne odlišných zručností.

Dátová veda je vážna vec, ale my sa posúvame smerom k svetu funkčnej vedy o údajoch, kde sú odborníci z praxe schopní robiť vlastnú analýzu. Ak chcete povoliť dátové kanály a integrované dátové štruktúry, potrebujete dátových inžinierov, nie dátových vedcov.

Je dátový inžinier viac žiadaný ako dátový vedec?

- Áno, pretože predtým, ako budete môcť pripraviť mrkvový koláč, musíte najprv nazbierať, ošúpať a zásobiť mrkvu!

Dátový inžinier rozumie programovaniu lepšie ako ktorýkoľvek dátový vedec, no pokiaľ ide o štatistiky, opak je pravdou.

Ale tu je výhoda dátového inžiniera:

Bez neho/jej sa hodnota prototypu modelu, ktorý sa najčastejšie skladá z kúsku kódu hroznej kvality v súbore Python, získaného od dátového vedca a nejakým spôsobom produkujúceho výsledok, blíži k nule.

Bez dátového inžiniera sa tento kód nikdy nestane projektom a žiadny obchodný problém nebude efektívne vyriešený. Dátový inžinier sa to všetko snaží premeniť na produkt.

Základné informácie, ktoré by mal dátový inžinier poznať

Kto sú dátoví inžinieri a ako sa nimi stať?

Ak teda táto práca vo vás vyžaruje svetlo a ste nadšení – môžete sa ju naučiť, môžete zvládnuť všetky potrebné zručnosti a stať sa skutočnou rockovou hviezdou v oblasti dátového inžinierstva. A áno, môžete to zvládnuť aj bez programátorských zručností alebo iných technických znalostí. Je to ťažké, ale možné!

Aké sú prvé kroky?

Mali by ste mať všeobecnú predstavu o tom, čo je čo.

Po prvé, dátové inžinierstvo odkazuje na informatiku. Presnejšie povedané, musíte pochopiť efektívne algoritmy a dátové štruktúry. Po druhé, keďže dátoví inžinieri pracujú s dátami, je potrebné pochopiť princípy databáz a štruktúry, ktoré sú ich základom.

Napríklad konvenčné databázy SQL typu B-strom sú založené na dátovej štruktúre B-stromu, ako aj v moderných distribuovaných úložiskách LSM-strom a iných modifikáciách hash tabuliek.

*Tieto kroky sú založené na skvelom článku Adilya Khashtamova. Takže, ak viete po rusky, podporte tohto autora a čítajte jeho príspevok.

1. Algoritmy a dátové štruktúry

Použitie správnej dátovej štruktúry môže výrazne zlepšiť výkon algoritmu. V ideálnom prípade by sme sa všetci mali učiť o dátových štruktúrach a algoritmoch v našich školách, ale to je zriedkakedy zahrnuté. V každom prípade nikdy nie je neskoro na zoznámenie.
Takže tu sú moje obľúbené bezplatné kurzy na učenie sa dátových štruktúr a algoritmov:

Navyše nezabudnite na klasickú prácu Thomasa Cormana o algoritmoch - Úvod do algoritmov. Toto je perfektná referencia, keď si potrebujete osviežiť pamäť.

  • Ak chcete zlepšiť svoje zručnosti, použite Leetcode.

Do sveta databáz sa môžete ponoriť aj s úžasnými videami z Carnegie Mellon University na Youtube:

2. Naučte sa SQL

Celý náš život sú dáta. A aby ste mohli extrahovať tieto údaje z databázy, musíte s nimi „hovoriť“ rovnakým jazykom.

SQL (Structured Query Language) je jazyk komunikácie v dátovej doméne. Bez ohľadu na to, čo kto hovorí, SQL žil, je nažive a bude žiť veľmi dlho.

Ak ste už dlho vo vývoji, určite ste si všimli, že sa pravidelne objavujú zvesti o blížiacej sa smrti SQL. Jazyk bol vyvinutý na začiatku 70. rokov a je stále veľmi populárny medzi analytikmi, vývojármi a jednoducho nadšencami.
Bez znalosti SQL nie je v dátovom inžinierstve čo robiť, pretože na získanie údajov budete nevyhnutne musieť vytvárať dotazy. Všetky moderné veľké dátové sklady podporujú SQL:

  • Amazon Redshift
  • HP Vertica
  • veštec
  • SQL Server

... a veľa ďalších.

Na analýzu veľkej vrstvy údajov uložených v distribuovaných systémoch, ako je HDFS, boli vynájdené SQL motory: Apache Hive, Impala atď. Vidíte, nikam to nevedie.

Ako sa naučiť SQL? Stačí to urobiť v praxi.

Na tento účel by som vám odporučil pozrieť si vynikajúci tutoriál, ktorý je mimochodom bezplatný Analýza režimu.

  1. Stredne pokročilý SQL
  2. Spájanie údajov v SQL

Tieto kurzy sú výnimočné tým, že majú interaktívne prostredie, kde môžete písať a spúšťať SQL dotazy priamo vo svojom prehliadači. Zdroj Moderné SQL nebude zbytočný. A tieto znalosti môžete použiť Úlohy Leetcode v sekcii Databázy.

3. Programovanie v Pythone a Java/Scala

Prečo by ste sa mali naučiť programovací jazyk Python som už písal v článku Python vs R. Výber najlepšieho nástroja pre AI, ML a Data Science. Pokiaľ ide o Java a Scala, väčšina nástrojov na ukladanie a spracovanie obrovského množstva údajov je napísaná v týchto jazykoch. Napríklad:

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

Aby ste pochopili, ako tieto nástroje fungujú, musíte poznať jazyky, v ktorých sú napísané. Funkčný prístup Scala vám umožňuje efektívne riešiť problémy paralelného spracovania dát. Python sa, žiaľ, nemôže pochváliť rýchlosťou a paralelným spracovaním. Vo všeobecnosti je znalosť niekoľkých jazykov a programovacích paradigiem dobrá pre šírku prístupov k riešeniu problémov.

Ak sa chcete ponoriť do jazyka Scala, môžete čítať Programovanie v Scale od autora jazyka. Twitter tiež zverejnil dobrú úvodnú príručku - Škola Scala.

Pokiaľ ide o Python, verím Plynulý Python najlepšia kniha strednej úrovne.

4. Nástroje na prácu s veľkými dátami

Tu je zoznam najpopulárnejších nástrojov vo svete veľkých dát:

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

Viac informácií o vytváraní veľkých dátových blokov nájdete v tomto úžasnom interaktívne prostredie. Najobľúbenejšie nástroje sú Spark a Kafka. Určite stoja za preštudovanie, je vhodné pochopiť, ako fungujú zvnútra. Jay Kreps (spoluautor Kafky) vydal v roku 2013 monumentálne dielo Denník: Čo by mal vedieť každý vývojár softvéru o agregácii údajov v reálnom časeMimochodom, hlavné myšlienky z tohto Talmudu boli použité na vytvorenie Apache Kafka.

5. Cloudové platformy

Kto sú dátoví inžinieri a ako sa nimi stať?

Znalosť aspoň jednej cloudovej platformy je na zozname základných požiadaviek na uchádzačov o pozíciu dátový inžinier. Zamestnávatelia uprednostňujú Amazon Web Services, pričom na druhom mieste je cloudová platforma Google a prvé tri uzatvára Microsoft Azure.

Musíte mať dobré znalosti o Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Distribuované systémy

Práca s veľkými dátami znamená prítomnosť zhlukov nezávisle fungujúcich počítačov, medzi ktorými sa komunikácia uskutočňuje cez sieť. Čím väčší je klaster, tým väčšia je pravdepodobnosť zlyhania jeho členských uzlov. Aby ste sa stali skvelým dátovým vedcom, musíte pochopiť problémy a existujúce riešenia pre distribuované systémy. Táto oblasť je stará a zložitá.

Andrew Tanenbaum je považovaný za priekopníka v tejto oblasti. Pre tých, ktorí sa neboja teórie, odporúčam jeho knihu "Distribuované systémy", pre začiatočníkov sa to môže zdať skľučujúce, ale skutočne vám to pomôže zdokonaliť vaše zručnosti.

Myslím si Navrhovanie dátovo náročných aplikácií od Martina Kleppmanna najlepšia úvodná kniha. Mimochodom, Martin má nádherné blog. Jeho práca pomôže systematizovať poznatky o budovaní modernej infraštruktúry na ukladanie a spracovanie veľkých dát.
Pre tých, ktorí radi pozerajú videá, je tu kurz na Youtube Distribuované počítačové systémy.

7. Dátové kanály

Kto sú dátoví inžinieri a ako sa nimi stať?

Dátové kanály sú niečo, bez čoho ako dátový inžinier nemôžete žiť.

Dátový inžinier väčšinou vytvára takzvaný dátový kanál, to znamená, že vytvára proces na doručovanie údajov z jedného miesta na druhé. Môžu to byť vlastné skripty, ktoré idú do API externej služby alebo vytvoria dotaz SQL, rozšíria údaje a vložia ich do centralizovaného úložiska (dátového skladu) alebo do neštruktúrovaného úložiska údajov (dátové jazerá).

Aby som to zhrnul: základný kontrolný zoznam pre dátového inžiniera

Kto sú dátoví inžinieri a ako sa nimi stať?

Aby sme to zhrnuli, vyžaduje sa dobré pochopenie nasledujúceho:

  • Informačné systémy;
  • Vývoj softvéru (Agile, DevOps, Design Techniques, SOA);
  • Distribuované systémy a paralelné programovanie;
  • Základy databázy – plánovanie, návrh, prevádzka a odstraňovanie problémov;
  • Návrh experimentov – A/B testy na overenie konceptov, určenie spoľahlivosti, výkonu systému a vývoj spoľahlivých ciest na rýchle poskytovanie dobrých riešení.

Toto je len niekoľko požiadaviek na to, aby ste sa stali dátovým inžinierom, takže sa naučte a pochopte dátové systémy, informačné systémy, nepretržité poskytovanie/nasadzovanie/integráciu, programovacie jazyky a ďalšie témy informatiky (nie všetky oblasti).

A nakoniec posledná, ale veľmi dôležitá vec, ktorú chcem povedať.

Cesta k dátovému inžinierstvu nie je taká jednoduchá, ako by sa mohlo zdať. Neodpúšťa, frustruje a na to musíte byť pripravení. Niektoré momenty na tejto ceste vás môžu prinútiť vzdať sa. Ale toto je skutočná práca a proces učenia.

Len to necukrujte hneď od začiatku. Celý zmysel cestovania je naučiť sa čo najviac a byť pripravený na nové výzvy.
Tu je skvelý obrázok, na ktorý som narazil a ktorý dobre ilustruje tento bod:

Kto sú dátoví inžinieri a ako sa nimi stať?

A áno, nezabudnite sa vyhnúť vyhoreniu a odpočinku. To je tiež veľmi dôležité. Veľa štastia!

Čo si myslíte o článku, priatelia? Pozývame vás na bezplatný webinár, ktorý sa uskutoční dnes o 20.00 hod. Počas webinára si povieme, ako vybudovať efektívny a škálovateľný systém spracovania dát pre malú firmu alebo startup s minimálnymi nákladmi. V praxi sa zoznámime s nástrojmi na spracovanie údajov Google Cloud. Maj sa!

Zdroj: hab.com

Pridať komentár