Kdo jsou datoví inženýři a jak se jimi stát?

Ahoj znovu! Titulek článku hovoří sám za sebe. V předvečer spuštění kurzu „Datový inženýr“ se podíváme na to, kdo vlastně datoví inženýři jsou. V článku je spousta užitečných odkazů. Příjemné čtení.

Kdo jsou datoví inženýři a jak se jimi stát?

Jednoduchý průvodce, jak zachytit vlnu datového inženýrství a nenechat se vtáhnout do hlubin.

Mám dojem, že dnes chce každý být datovým vědcem (Data Scientist). Ale co datové inženýrství? V podstatě je to jakýsi hybrid mezi datovým analytikem a datovým vědcem; datový inženýr obvykle odpovídá za správu pracovních toků, zpracovatelských konvejů a ETL procesů.Vzhledem k důležitosti těchto funkcí je to v současnosti další populární profesionální žargon, který aktivně nabírá na obrátkách.

Vysoký plat a obrovský zájem – to je jen malá část toho, co tuto práci činí nesmírně atraktivní! Pokud chcete přidat své jméno mezi hrdiny, nikdy není pozdě začít se učit. V tomto příspěvku jsem shromáždil všechny potřebné informace, abych vám pomohl udělat první kroky.

Tak pojďme začít!

Co je datové inženýrství?

Upřímně řečeno, není lepšího vysvětlení, než toto:

„Vědec může objevit novou hvězdu, ale nemůže ji vytvořit. Bude muset požádat inženýra, aby to udělal za něj.“

–Gordon Lindsay Glegg

Tím pádem je role datového inženýra dost důležitá.

Z názvu vyplývá, že inženýrství dat souvisí s daty, konkrétně s jejich doručováním, ukládáním a zpracováním. Hlavním úkolem inženýrů je tedy zajistit spolehlivou infrastrukturu pro data. Pokud se podíváme na hierarchii potřeb AI, inženýrství dat zaujímá první 2-3 fáze: sběr, přesun a ukládání, příprava dat.

Kdo jsou datoví inženýři a jak se jimi stát?

Čím se datový inženýr zabývá?

Se vznikem velkých dat se oblast odpovědnosti radikálně změnila. Zatímco dříve tito experti psali velké SQL dotazy a převáděli data pomocí nástrojů, jako jsou Informatica ETL, Pentaho ETL, Talend, nyní se požadavky na datové inženýry zvýšily.

Většina společností s volnými pozicemi na pozici datového inženýra uvádí následující požadavky:

  • Vynikající znalost SQL a Pythonu.
  • Zkušenosti s cloudovými platformami, zejména Amazon Web Services.
  • Preferována je znalost Java/Scala.
  • Dobré porozumění databázím SQL a NoSQL (modelování dat, ukládání dat).

Mějte na paměti, že tohle je jen to nejnutnější. Z tohoto seznamu lze předpokládat, že datoví inženýři jsou specialisté v oblasti vývoje softwaru a backendu.
Například pokud společnost začne generovat velké objemy dat z různých zdrojů, vaším úkolem jako datového inženýra je organizovat sběr informací, jejich zpracování a ukládání.

Seznam nástrojů používaných v tomto případě se může lišit, vše závisí na objemu těchto dat, rychlosti jejich příjmu a různosti. Většina společností se v podstatě nesetkává s velkými daty, takže jako centralizované úložiště, nazývané datové skladiště, lze použít SQL databázi (PostgreSQL, MySQL atd.) se sadou skriptů, které směrují data do úložiště.

IT giganti jako Google, Amazon, Facebook nebo Dropbox mají vyšší požadavky: znalost Pythonu, Javy nebo Scaly.

  • Zkušenosti s velkými daty: Hadoop, Spark, Kafka.
  • Znalost algoritmů a datových struktur.
  • Porozumění základům distribuovaných systémů.
  • Zkušenosti s nástroji pro vizualizaci dat, jako jsou Tableau nebo ElasticSearch, budou velkým plusem.

To znamená, že je patrný jasný posun směrem k velkým datům, zejména v jejich zpracování při vysokých zátěžích. Tyto společnosti mají zvýšené požadavky na odolnost systému.

Datoví inženýři vs. datoví vědci

Kdo jsou datoví inženýři a jak se jimi stát?
Dobře, to bylo jednoduché a zábavné srovnání (nic osobního), ale ve skutečnosti je to mnohem složitější.

Za prvé, musíte vědět, že existuje poměrně mnoho nejasností v rozdělení rolí a dovedností datového vědce a datového inženýra. To znamená, že vás může snadno zmást to, jaké dovednosti jsou skutečně potřebné pro úspěšného datového inženýra. Samozřejmě existují určité dovednosti, které se překrývají mezi oběma rolemi. Ale také existuje celá řada diametrálně opačných dovedností.

Datová věda je vážná věc, ale směřujeme k světu funkční datové vědy, kde jsou praktikující schopni provádět vlastní analýzu. Aby bylo možné využít datové kanály a integrované datové struktury, potřebujete datové inženýry, nikoli vědce.

Je datum engineer žádanější než datový vědec?

— Ano, protože než můžete připravit mrkvový koláč, musíte nejprve nasbírat, oloupat a zásobit mrkev!

Datum engineer rozumí programování lépe než jakýkoli datový vědec, ale co se statistik týče, je všechno naopak.

Ale tady je výhoda datového inženýra:

bez něj/ní hodnotu modelu prototypu, který se většinou skládá z útržku kódu hrozné kvality v souboru Python, získaného od datového vědce a somehow poskytujícího výsledek, směřuje k nule.

Bez datového inženýra se tento kód nikdy nestane projektem a žádný podnikový problém nebude efektivně vyřešen. Datový inženýr se snaží to všechno přetvořit na produkt.

Základní znalosti, které by měl datový inženýr ovládat

Kdo jsou datoví inženýři a jak se jimi stát?

Pokud vás tato práce vzrušuje a jste plní nadšení — máte schopnosti se to naučit, můžete zvládnout všechny nezbytné dovednosti a stát se skutečnou rockovou hvězdou v oblasti vývoje dat. A ano, můžete to dosáhnout i bez programovacích dovedností nebo jakýchkoli jiných technických znalostí. Je to obtížné, ale možné!

Jaké jsou první kroky?

Musíte mít obecnou představu o tom, jak to funguje.

Především, datové inženýrství se vztahuje na informatiku. Konkrétně — musíte rozumět efektivním algoritmům a datovým strukturám. Za druhé, protože datoví inženýři pracují s daty, je nezbytné chápat principy fungování databází a struktur, na kterých jsou založené.

Například běžné B-tree SQL databáze jsou založeny na datové struktuře B-tree, a také v moderních distribuovaných repozitářích, LSM-tree a dalších modifikacích hash tabulek.

* Tyto kroky jsou založeny na skvělém článku Adila Chashtamova. Takže pokud znáte ruštinu, podpořte tohoto autora a přečtěte si jeho příspěvek.

1. Algoritmy a datové struktury

Použití správné datové struktury může významně zlepšit výkon algoritmu. Ideálně bychom se měli všichni učit datové struktury a algoritmy ve školách, ale to se zřídka kdy probírá. V každém případě, nikdy není pozdě se seznámit.
Takže tady jsou mé oblíbené bezplatné kurzy pro studium datových struktur a algoritmů:

A nezapomeňte na klasické dílo o algoritmech od Thomase Cormena — Úvod do algoritmů. To je ideální příručka, když potřebujete osvěžit svou paměť.

  • Abyste zlepšili své dovednosti, používejte Leetcode.

Můžete se také ponořit do světa databází pomocí úžasných videí z Carnegie Mellon University na Youtube:

2. Učení SQL

Celý náš život jsou data. A abychom tato data extrahovali z databáze, musíte s nimi „mluvit“ jedním jazykem.

SQL (Structured Query Language — jazyk strukturovaných dotazů) je jazykem komunikace v oblasti dat. Bez ohledu na to, co někdo říká, SQL žilo, žije a bude žít ještě velmi dlouho.

Pokud jste dlouho pracovali ve vývoji, pravděpodobně jste si všimli, že se periodicky objevují fámy o brzkém konci SQL. Jazyk byl vyvinut na začátku 70. let a dodnes je nesmírně populární mezi analytiky, vývojáři a prostými nadšenci.
Bez znalosti SQL v datovém inženýrství se neobejdete, protože nevyhnutelně budete muset vytvářet dotazy pro extrakci dat. Všechny moderní datové sklady podporují SQL:

  • Amazon Redshift
  • HP Vertica
  • Oracle
  • SQL Server

… a mnoho dalších.

Pro analýzu velkého množství dat uložených v distribuovaných systémech, jako je HDFS, byly vynalezeny mechanismy SQL: Apache Hive, Impala atd. Vidíte, že nikam odcházet nemá.

Jak se naučit SQL? Jednoduše se učte praxí.

K tomu bych doporučil podívat se na skvělou příručku, která je mimochodem zdarma, od Mode Analytics.

  1. Středně pokročilé SQL
  2. Spojování dat v SQL

Charakteristickým rysem těchto kurzů je interaktivní prostředí, ve kterém můžete psát a vykonávat SQL dotazy přímo v prohlížeči. Zdroje Modern SQL nebudou na škodu. A můžete tyto znalosti využít v úlohách Leetcode v sekci Databáze.

3. Programování v Pythonu a Java/Scala

Proč se učit programovací jazyk Python, už jsem psal v článku Python vs R. Výběr nejlepšího nástroje pro AI, ML a Data Science. Co se týče Javy a Scaly, většina nástrojů pro ukládání a zpracování obrovských objemů dat je napsána v těchto jazycích. Například:

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

Abyste porozuměli, jak tyto nástroje fungují, musíte znát jazyky, ve kterých jsou napsány. Funkcionální přístup Scala umožňuje efektivně řešit úkoly paralelního zpracování dat. Python, bohužel, nemůže nabídnout rychlost a paralelní zpracování. Celkově znalost několika jazyků a programovacích paradigmat příznivě ovlivňuje šíři přístupů k řešení problémů.

Abyste se ponořili do jazyka Scala, můžete si přečíst Programování v Scale od autora jazyka. Také společnost Twitter zveřejnila dobrého úvodního průvodce — Scala School.

Pokud jde o Python, považuji Fluent Python za nejlepší knihu střední úrovně.

4. Nástroje pro práci s velkými daty

Zde je seznam nejpopulárnějších nástrojů v oblasti velkých dat:

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

Více informací o budování velkých bloků dat můžete najít v tomto úžasném interaktivním prostředí. Nejoblíbenějšími nástroji jsou Spark a Kafka. Určitě stojí za to se je naučit, ideálně pochopit, jak fungují zevnitř. Jay Kreps (spoluautor Kafky) v roce 2013 zveřejnil monumentální práci The Log: co by měl každý vývojář softwaru vědět o abstrakci spojování dat v reálném čase, mimochodem, hlavní myšlenky z tohoto textu byly použity při vytváření Apache Kafky.

5. Cloudové platformy

Kdo jsou datoví inženýři a jak se jimi stát?

Znalost alespoň jedné cloudové platformy je na seznamu základních požadavků kladených na uchazeče o pozici datového inženýra. Zaměstnavatelé dávají přednost Amazon Web Services, na druhém místě je cloudová platforma Google a třetí místo zaujímá Microsoft Azure.

Musíte se dobře orientovat v Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Distribuované systémy

Práce s velkými daty zahrnuje existenci klastrů nezávisle fungujících počítačů, jejichž spojení je zajištěno přes síť. Čím větší je klastr, tím větší je pravděpodobnost selhání jeho uzlů. Abyste se stali skvělým odborníkem na data, musíte se ponořit do problémů a existujících řešení pro distribuované systémy. Tato oblast je stará a komplikovaná.

Andrew Tanenbaum je považován za průkopníka v této oblasti. Pro ty, kteří se nebojí teorie, doporučuji jeho knihu „Distribuované systémy“, pro začátečníky se to může zdát složité, ale skutečně vám to pomůže zdokonalit vaše dovednosti.

Myslím si, že „Navrhování aplikací s vysokou intenzitou dat“ od Martiny Kleppmannové je nejlepší úvodní kniha. Mimochodem, Martin má skvělý blog. Jeho práce vám pomůže systémově uspořádat znalosti o výstavbě moderní infrastruktury pro ukládání a zpracovávání velkých dat.
Pro ty, kteří mají rádi sledování videí, je na YouTube kurz Distribuované počítačové systémy.

7. Datové toky

Kdo jsou datoví inženýři a jak se jimi stát?

Datové toky jsou to, bez čeho nemůžete žít jako datový inženýr.

Většinu času datový inženýr vytváří takzvaný datový pipeline, tedy vytváří proces dodávání dat z jednoho místa na druhé. Mohou to být uživatelské scénáře, které vedou k API externí služby nebo provádějí SQL dotazy, doplňují data a ukládají je do centralizovaného úložiště (datového skladu) nebo úložiště nestrukturovaných dat (datových jezer).

Shrnutí: hlavní kontrolní seznam datového inženýra

Kdo jsou datoví inženýři a jak se jimi stát?

Závěrem — je třeba mít dobré porozumění následujícímu:

  • Informační systémy;
  • Vývoj softwaru (Agilní, DevOps, Design Techniques, SOA);
  • Distribuované systémy a paralelní programování;
  • Základy databází — plánování, návrh, provoz a odstraňování chyb;
  • Návrh experimentů — A/B testy k prokázání konceptů, určení spolehlivosti, výkonu systémů a také k vyvinutí spolehlivých cest pro operativní poskytování dobrých řešení.

To jsou jen některé požadavky, abyste se stali datovým inženýrem, proto se seznamte a porozumějte datovým systémům, informačním systémům, kontinuálnímu dodávání / nasazení / integraci, programovacím jazykům a dalším tématům v oblasti informatiky (ne ve všech předmětech).

A nakonec poslední, ale velmi důležitá věc, kterou chci říct.

Cesta k Data Engineering není tak jednoduchá, jak se může zdát. Nekomunikuje s vámi, frustrace je na denním pořádku a musíte být na to připraveni. Některé okamžiky na této cestě vás mohou přimět všechno vzdát. Ale je to opravdová práce a proces učení.

Jednoduše to nezkreslujte hned od začátku. Celý smysl cesty je naučit se co nejvíce a být připraven na nové výzvy.
Tady je skvělý obrázek, na který jsem narazil, a který dobře ilustruje tento okamžik:

Kdo jsou datoví inženýři a jak se jimi stát?

A ano, nezapomeňte se vyhnout vyhoření a odpočívat. To je také velmi důležité. Hodně štěstí!

Jak se vám článek líbí, přátelé? Zveme vás na bezplatný webinář, který se koná již dnes v 20:00. Během webináře si promluvíme o tom, jak vybudovat efektivní a škálovatelný systém zpracování dat pro malé firmy nebo startupy s minimálními náklady. V praxi se seznámíme s nástroji pro zpracování dat Google Cloud. Těšíme se na shledanou!

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster