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

Ahoj znovu! Název článku mluví sám za sebe. V očekávání začátku kurzu datový inženýr Doporučujeme vám pochopit, kdo jsou datoví inženýři. V článku je spousta užitečných odkazů. Šťastné čtení.

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

Jednoduchý návod, jak chytit vlnu Data Engineering a nenechat se jí stáhnout do propasti.

Zdá se, že v dnešní době se každý chce stát Data Scientist. Ale co datové inženýrství? V podstatě se jedná o jakýsi hybrid datového analytika a datového vědce; Datový inženýr je obvykle zodpovědný za správu pracovních toků, procesních kanálů a procesů ETL. Vzhledem k důležitosti těchto funkcí se v současnosti jedná o další oblíbený odborný žargon, který aktivně nabírá na síle.

Vysoké platy a obrovská poptávka jsou jen malou částí toho, co dělá tuto práci mimořádně atraktivní! Pokud se chcete zařadit do řad hrdinů, nikdy není pozdě začít se učit. V tomto příspěvku jsem shromáždil všechny potřebné informace, které vám pomohou udělat vaše první kroky.

Tak pojďme začít!

Co je datové inženýrství?

Upřímně, neexistuje lepší 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

Role datového inženýra je tedy poměrně významná.

Jak již název napovídá, datové inženýrství se zabývá daty, konkrétně jejich doručením, uložením a zpracováním. V souladu s tím je hlavním úkolem inženýrů poskytnout spolehlivou infrastrukturu pro data. Pokud se podíváme na hierarchii potřeb AI, datové inženýrství zabírá první 2–3 fáze: sběr, pohyb a ukládání, příprava dat.

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

Co dělá datový inženýr?

S příchodem velkých dat se rozsah odpovědnosti dramaticky změnil. Pokud dříve tito odborníci psali velké SQL dotazy a destilovali data pomocí nástrojů jako Informatica ETL, Pentaho ETL, Talend, nyní se požadavky na datové inženýry zvýšily.

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

  • Výborná znalost SQL a Pythonu.
  • Zkušenosti s cloudovými platformami, zejména Amazon Web Services.
  • Výhodou znalost Java/Scala.
  • Dobrá znalost SQL a NoSQL databází (datové modelování, datové sklady).

Mějte na paměti, že toto jsou jen to nejnutnější. Z tohoto výčtu lze usuzovat, že datoví inženýři jsou specialisté v oblasti vývoje softwaru a backendu.
Pokud například společnost začne generovat velké množství 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žitých v tomto případě se může lišit, vše závisí na objemu těchto dat, rychlosti jejich příjmu a heterogenitě. Většina společností se velkými daty vůbec nezabývá, takže jako centralizované úložiště, tzv. datový sklad, můžete použít SQL databázi (PostgreSQL, MySQL atd.) s malou sadou skriptů, které data do skladiš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.
  • Pochopení základů distribuovaných systémů.
  • Výhodou bude zkušenost s nástroji pro vizualizaci dat, jako je Tableau nebo ElasticSearch.

Čili je zde patrný posun směrem k velkým datům, a to v jejich zpracování při vysoké zátěži. Tyto společnosti mají zvýšené požadavky na odolnost proti chybám 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 vtipné přirovnání (nic osobního), ale ve skutečnosti je to mnohem složitější.

Za prvé, měli byste vědět, že ve vymezení rolí a dovedností datového vědce a datového inženýra je mnoho nejasností. To znamená, že můžete být snadno zmateni tím, jaké dovednosti jsou potřebné k tomu, abyste byli úspěšným datovým inženýrem. Samozřejmě existují určité dovednosti, které se překrývají s oběma rolemi. Existuje ale také řada diametrálně odlišných dovedností.

Věda o datech je vážná věc, ale my se posouváme do světa funkční vědy o datech, kde jsou odborníci schopni provádět vlastní analýzy. Chcete-li povolit datové kanály a integrované datové struktury, potřebujete datové inženýry, nikoli datové vědce.

Je datový inženýr více žádaný než datový vědec?

- Ano, protože než budete moci udělat mrkvový dort, musíte nejprve nasbírat, oloupat a skladovat mrkev!

Datový inženýr rozumí programování lépe než kterýkoli datový vědec, ale pokud jde o statistiku, opak je pravdou.

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

Bez něj/jí má hodnota prototypového modelu, nejčastěji sestávajícího z kousku strašlivého kvalitního kódu v Python souboru, získaného od datového vědce a nějakým způsobem produkujícího výsledek, k nule.

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

Základní informace, které by datový inženýr měl znát

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

Takže, pokud ve vás tato práce přináší světlo a jste nadšení - můžete se ji naučit, můžete zvládnout všechny potřebné dovednosti a stát se skutečnou rockovou hvězdou v oblasti datového inženýrství. A ano, můžete to zvládnout i bez znalosti programování nebo jiných technických znalostí. Je to těžké, ale možné!

Jaké jsou první kroky?

Měli byste mít obecnou představu o tom, co je co.

Za prvé, datové inženýrství odkazuje na informatiku. Přesněji řečeno, musíte rozumět účinným algoritmům a datovým strukturám. Za druhé, protože datoví inženýři pracují s daty, je nutné porozumět principům databází a strukturám, které jsou jejich základem.

Například konvenční databáze SQL typu B-strom jsou založeny na datové struktuře B-Stromu a v moderních distribuovaných úložištích také na LSM-Stromu a dalších modifikacích hashovacích tabulek.

*Tyto kroky jsou založeny na skvělém článku Adilya Khashtamova. Pokud tedy umíte rusky, podpořte tohoto autora a čtěte jeho příspěvek.

1. Algoritmy a datové struktury

Použití správné datové struktury může výrazně zlepšit výkon algoritmu. V ideálním případě bychom se všichni měli učit o datových strukturách a algoritmech v našich školách, ale to je zřídka kdy pokryto. Každopádně na seznámení není nikdy pozdě.
Zde jsou mé oblíbené bezplatné kurzy pro výuku datových struktur a algoritmů:

Navíc nezapomeňte na klasickou práci Thomase Cormana o algoritmech - Úvod do algoritmů. Toto je perfektní reference, když si potřebujete osvěžit paměť.

  • Chcete-li zlepšit své dovednosti, použijte Leetcode.

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

2. Naučte se SQL

Celý náš život jsou data. A abyste mohli tato data z databáze extrahovat, musíte s nimi „mluvit“ stejným jazykem.

SQL (Structured Query Language) je jazyk komunikace v datové doméně. Bez ohledu na to, co kdo říká, SQL žil, je naživu a bude žít velmi dlouho.

Pokud jste ve vývoji dlouhou dobu, pravděpodobně jste si všimli, že se pravidelně objevují zvěsti o blížícím se úmrtí SQL. Jazyk byl vyvinut na počátku 70. let a je stále velmi populární mezi analytiky, vývojáři a prostě nadšenci.
Bez znalosti SQL nelze v datovém inženýrství nic dělat, protože pro načtení dat budete nevyhnutelně muset vytvářet dotazy. Všechny moderní velké datové sklady podporují SQL:

  • Amazon RedShift
  • HP Vertica
  • Věštec
  • SQL Server

... a mnoho dalších.

Pro analýzu velké vrstvy dat uložených v distribuovaných systémech, jako je HDFS, byly vynalezeny SQL motory: Apache Hive, Impala atd. Vidíte, nikam to nevede.

Jak se naučit SQL? Stačí to udělat v praxi.

Chcete-li to provést, doporučil bych se podívat na vynikající tutoriál, který je mimochodem zdarma Analýza režimu.

  1. Středně pokročilý SQL
  2. Spojení dat v SQL

Tyto kurzy jsou výjimečné tím, že mají interaktivní prostředí, kde můžete psát a spouštět SQL dotazy přímo ve vašem prohlížeči. Zdroj Moderní SQL nebude nadbytečná. A tyto znalosti můžete aplikovat Úlohy Leetcode v sekci Databáze.

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

Proč byste se měli naučit programovací jazyk Python, jsem již psal v článku Python vs R. Výběr nejlepšího nástroje pro AI, ML a Data Science. Pokud jde o Javu a Scala, většina nástrojů pro ukládání a zpracování obrovského množství 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 pochopili, jak tyto nástroje fungují, musíte znát jazyky, ve kterých jsou napsány. Funkční přístup Scala umožňuje efektivně řešit problémy paralelního zpracování dat. Python se bohužel nemůže pochlubit rychlostí a paralelním zpracováním. Obecně platí, že znalost několika jazyků a programovacích paradigmat je dobrá pro šíři přístupů k řešení problémů.

Chcete-li se ponořit do jazyka Scala, můžete číst Programování ve Scale od autora jazyka. Twitter také zveřejnil dobrou úvodní příručku - Škola Scala.

Pokud jde o Python, věřím Plynulý Python nejlepší kniha střední úrovně.

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

Zde je seznam nejoblíbenějších nástrojů ve světě velkých dat:

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

Více informací o vytváření velkých datových bloků najdete v tomto úžasném interaktivní prostředí. Nejoblíbenějšími nástroji jsou Spark a Kafka. Určitě stojí za prostudování, je vhodné pochopit, jak fungují zevnitř. Jay Kreps (spoluautor Kafky) vydal v roce 2013 monumentální dílo Záznam: Co by měl každý vývojář softwaru vědět o agregaci dat v reálném čase abstrakcíMimochodem, hlavní myšlenky z tohoto Talmudu byly použity k vytvoření Apache Kafka.

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ů na uchazeče o pozici datového inženýra. Zaměstnavatelé preferují Amazon Web Services, přičemž na druhém místě je cloudová platforma Google a první tři završuje Microsoft Azure.

Musíte mít dobré znalosti Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Distribuované systémy

Práce s velkými daty předpokládá přítomnost shluků nezávisle pracujících počítačů, mezi nimiž komunikace probíhá po síti. Čím větší je cluster, tím větší je pravděpodobnost selhání jeho členských uzlů. Abyste se stali skvělým datovým vědcem, musíte porozumět problémům a existujícím řešením pro distribuované systémy. Tato oblast je stará a složitá.

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", může se to zdát pro začátečníky skličující, ale opravdu vám to pomůže zdokonalit vaše dovednosti.

Myslím, že Návrh datově náročných aplikací od Martina Kleppmanna nejlepší úvodní kniha. Mimochodem, Martin to má báječně blog. Jeho práce pomůže systematizovat poznatky o budování moderní infrastruktury pro ukládání a zpracování velkých dat.
Pro ty, co rádi sledují videa, je tu kurz na Youtube Distribuované počítačové systémy.

7. Datové kanály

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

Datové kanály jsou něco, bez čeho jako datový inženýr nemůžete žít.

Většinu času datový inženýr staví takzvaný datový kanál, to znamená, že vytváří proces pro doručování dat z jednoho místa na druhé. Mohou to být vlastní skripty, které jdou do rozhraní API externí služby nebo provádějí SQL dotaz, rozšiřují data a vkládají je do centralizovaného úložiště (datového skladu) nebo nestrukturovaného úložiště dat (datová jezera).

Abych to shrnul: základní kontrolní seznam pro datového inženýra

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

Abych to shrnul, je třeba dobře rozumět následujícímu:

  • Informační systémy;
  • Vývoj softwaru (Agile, DevOps, Design Techniques, SOA);
  • Distribuované systémy a paralelní programování;
  • Základy databáze – plánování, návrh, provoz a odstraňování problémů;
  • Návrh experimentů – A/B testy pro ověření konceptů, stanovení spolehlivosti, výkonu systému a vývoj spolehlivých cest pro rychlé dodání dobrých řešení.

To jsou jen některé z požadavků, abyste se stali datovým inženýrem, takže se naučte a porozumějte datovým systémům, informačním systémům, průběžnému dodávání/nasazování/integraci, programovacím jazykům a dalším tématům informatiky (ne všechny obory).

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

Cesta k datovému inženýrství není tak jednoduchá, jak by se mohlo zdát. Neodpouští, frustruje a na to musíte být připraveni. Některé okamžiky na této cestě vás mohou donutit to vzdát. Ale to je skutečná práce a proces učení.

Jen to ze začátku necukrujte. Celý smysl cestování je naučit se co nejvíce a být připraven na nové výzvy.
Zde je skvělý obrázek, na který jsem narazil a který tento bod dobře ilustruje:

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í!

Co říkáte na článek, přátelé? Zveme vás na webinář zdarma, který se uskuteční dnes ve 20.00. Během webináře probereme, jak vybudovat efektivní a škálovatelný systém zpracování dat pro malou firmu nebo startup s minimálními náklady. V praxi se seznámíme s nástroji pro zpracování dat Google Cloud. Uvidíme se!

Zdroj: www.habr.com

Přidat komentář