Хто такія дата-інжынеры, і як імі становяцца?

І зноў добры дзень! Загаловак артыкула гаворыць сам пра сябе. Напярэдадні старту курса "Data Engineer" прапануем разабрацца ў тым, хто ж такія дата-інжынеры. У артыкуле вельмі шмат карысных спасылак. Прыемнага прачытання.

Хто такія дата-інжынеры, і як імі становяцца?

Простае кіраўніцтва аб тым, як злавіць хвалю Data Engineering і не даць ёй зацягнуць вас у бездань.

Складваецца ўражанне, што ў нашы дні кожны жадае стаць дата-саентыстам (Data Scientist). Але як наконт Data Engineering (інжынірынгу дадзеных)? Па сутнасці, гэта свайго роду гібрыд дата-аналітыка і дата-саентыста; дата-інжынер звычайна адказвае за кіраванне працоўнымі працэсамі, канвеерамі апрацоўкі і ETL-працэсамі. З прычыны важнасці гэтых функцый, у цяперашні час гэта чарговы папулярны прафесійны жарганізм, які актыўна набірае абароты.

Высокі заробак і велізарны попыт - гэта толькі малая частка таго, што робіць гэтую працу надзвычай прывабнай! Калі вы хочаце папоўніць шэрагі герояў, ніколі не позна пачаць вучыцца. У гэтым пасце я сабраў усю неабходную інфармацыю, каб дапамагчы вам зрабіць першыя крокі.

Такім чынам, пачнем!

Што такое Data Engineering?

Шчыра кажучы, няма лепшага тлумачэння, чым гэта:

«Навуковец можа адкрыць новую зорку, але не можа яе стварыць. Яму давядзецца прасіць інжынера зрабіць гэта за яго.»

-Гордан Ліндсэй Глег

Такім чынам, роля дата-інжынера дастаткова важкая.

З назвы вынікае, што інжынерыя даных звязана з дадзенымі, а менавіта з іх дастаўкай, захоўваннем і апрацоўкай. Адпаведна, асноўная задача інжынераў - забяспечыць надзейную інфраструктуру для дадзеных. Калі мы паглядзім на ІІ-іерархію запатрабаванняў, інжынерыя дадзеных займае першыя 2-3 этапы: збор, перамяшчэнне і захоўванне, падрыхтоўка даных.

Хто такія дата-інжынеры, і як імі становяцца?

Чым займаецца інжынер дадзеных?

Са з'яўленнем вялікіх звестак сфера адказнасці рэзка змянілася. Калі раней гэтыя эксперты пісалі вялікія SQL-запыты і пераганялі дадзеныя з дапамогай такіх інструментаў, як Informatica ETL, Pentaho ETL, Talend, то зараз патрабаванні да дата-інжынераў павысіліся.

Большасць кампаній з адкрытымі вакансіямі на пасаду дата-інжынера прад'яўляюць наступныя патрабаванні:

  • Выдатнае веданне SQL і Python.
  • Вопыт працы з хмарнымі платформамі, у прыватнасці Amazon Web Services.
  • Пераважна веданне Java/Scala.
  • Добрае разуменне баз дадзеных SQL і NoSQL (мадэляванне дадзеных, захоўванне дадзеных).

Майце на ўвазе, гэта толькі самае неабходнае. З гэтага спісу можна меркаваць, што дата-інжынеры з'яўляюцца спецыялістамі ў галіне распрацоўкі праграмнага забеспячэння і бэкенда.
Напрыклад, калі кампанія пачынае генераваць вялікі аб'ём дадзеных з розных крыніц, ваша задача як дата-інжынера складаецца ў тым, каб арганізаваць збор інфармацыі, яе апрацоўку і захоўванне.

Спіс выкарыстоўваных у гэтым выпадку прылад можа адрознівацца, усё залежыць ад аб'ёму гэтых дадзеных, хуткасці іх паступлення і неаднастайнасці. Большасць кампаній наогул не сутыкаюцца з вялікімі дадзенымі, таму ў якасці цэнтралізаванага сховішча, так званага сховішчы дадзеных, можна выкарыстоўваць базу дадзеных SQL (PostgreSQL, MySQL і т. д.) з невялікім наборам скрыптоў, якія накіроўваюць дадзеныя ў сховішча.

IT-гіганты, такія як Google, Amazon, Facebook або Dropbox, прад'яўляюць больш высокія патрабаванні: веданне Python, Java ці Scala.

  • Досвед працы з вялікімі дадзенымі: Hadoop, Spark, Kafka.
  • Веданне алгарытмаў і структур даных.
  • Разуменне асноў размеркаваных сістэм.
  • Досвед працы з прыладамі візуалізацыі дадзеных, такімі як Tableau ці ElasticSearch, будзе вялікім плюсам.

Гэта значыць, назіраецца відавочнае зрушэнне ў бок вялікіх дадзеных, а менавіта ў іх апрацоўцы пры высокіх нагрузках. У гэтых кампаній павышаныя патрабаванні да адмоваўстойлівасці сістэмы.

Дата-інжынеры Vs. дата-саентысты

Хто такія дата-інжынеры, і як імі становяцца?
Добра, гэта было простае і пацешнае параўнанне (нічога асабістага), але насамрэч усё нашмат складаней.

Па-першае, вы павінны ведаць, што існуе дастаткова шмат невыразнасці ў размежаванні роляў і навыкаў дата-саентыста і дата-інжынера. Гэта значыць, вы лёгка можаце быць збянтэжаныя тым, якія ўсёткі навыкі неабходны для паспяховага дата-інжынера. Вядома, ёсць пэўныя навыкі, якія накладаюцца на абедзве ролі. Але таксама ёсць цэлы шэраг дыяметральна супрацьлеглых навыкаў.

Навука аб дадзеных - гэта сур'ёзная справа, але мы рухаецца да міру з функцыянальнай дата саенс, дзе практыкуючыя здольныя рабіць сваю ўласную аналітыку. Каб задзейнічаць канвееры дадзеных і інтэграваныя структуры дадзеных, вам патрэбныя інжынеры дадзеных, а не вучоныя.

Ці з'яўляецца дата-інжынер больш запатрабаваным, чым дата-саентыст?

- Так, таму што перш чым вы зможаце прыгатаваць маркоўны пірог, вам трэба спачатку сабраць, ачысціць і назапасіцца морквай!

Дата-інжынер разбіраецца ў праграмаванні лепш, чым любы дата-саентыст, але калі справа даходзіць да статыстыкі, усё з дакладнасцю да наадварот.

Але вось перавага дата-інжынера:

без яго/яе каштоўнасць мадэлі-прататыпа, часцей за ўсё якая складаецца з фрагмента кода жудаснай якасці ў файле Python, атрыманай ад дата-саентыста і нейкім чынам якая дае вынік, імкнецца да нуля.

Без дата-інжынера гэты код ніколі не стане праектам, і ніякая бізнэс-праблема не будзе эфектыўна вырашана. Інжынер дадзеных спрабуе ператварыць гэта ўсё ў прадукт.

Асноўныя звесткі, якія павінен ведаць дата-інжынер

Хто такія дата-інжынеры, і як імі становяцца?

Такім чынам, калі гэтая праца абуджае ў вас святло і вы поўныя энтузіязму - вы здольныя навучыцца гэтаму, вы можаце авалодаць усімі неабходнымі навыкамі і стаць сапраўднай рок-зоркай у галіне распрацоўкі дадзеных. І, так, вы можаце ажыццявіць гэта нават без навыкаў праграмавання ці іншых тэхнічных ведаў. Гэта складана, але магчыма!

Якія першыя крокі?

Вы павінны мець агульнае ўяўленне аб тым, што ёсць што.

Перш за ўсё, Data Engineering адносіцца да інфарматыкі. Канкрэтна - вы павінны разумець эфектыўныя алгарытмы і структуры дадзеных. Па-другое, паколькі дата-інжынеры працуюць з дадзенымі, неабходна разуменне прынцыпаў працы баз дадзеных і структур, якія ляжаць у іх аснове.

Напрыклад, звычайныя B-tree SQL базы дадзеных заснаваныя на структуры дадзеных B-Tree, а таксама, у сучасных размеркаваных рэпазітарах, LSM-Tree і іншых мадыфікацыях хэш-табліц.

* Гэтыя крокі заснаваныя на выдатным артыкуле Адыля Хаштамава. Такім чынам, калі вы ведаеце рускую мову, падтрымайце гэтага аўтара і прачытайце яго пост.

1. Алгарытмы і структуры дадзеных

Выкарыстанне правільнай структуры дадзеных можа значна палепшыць прадукцыйнасць алгарытму. У ідэале мы ўсе павінны вывучаць структуры дадзеных і алгарытмы ў нашых школах, але гэта рэдка калі-небудзь асвятляецца. Ва ўсякім разе, азнаёміцца ​​ніколі не позна.
Такім чынам, вось мае любімыя бясплатныя курсы для вывучэння структур даных і алгарытмаў:

Плюс не забывайце пра класічную працу над алгарытмамі Томаса Кормэна. Увядзенне ў алгарытмы. Гэта ідэальны даведнік, калі вам трэба асвяжыць сваю памяць.

  • Каб палепшыць свае навыкі, выкарыстоўвайце Leetcode.

Вы таксама можаце пагрузіцца ў свет баз дадзеных з дапамогай узрушаючых відэаролікаў Універсітэта Карнегі-Меллона на Youtube:

2. Вывучэнне SQL

Усё наша жыццё - гэта дадзеныя. І для таго, каб атрымаць гэтыя дадзеныя з базы дадзеных, вам трэба «гаварыць» з імі на адной мове.

SQL (Structured Query Language - мова структураваных запытаў) з'яўляецца мовай зносін у вобласці дадзеных. Незалежна ад таго, што нехта кажа, SQL жыў, жывы і будзе жыць яшчэ вельмі доўга.

Калі вы доўгі час знаходзіліся ў распрацоўцы, вы, верагодна, заўважылі, што чуткі аб хуткай смерці SQL з'яўляюцца перыядычна. Мова быў распрацаваны ў пачатку 70-х гадоў і да гэтага часу карыстаецца вялікай папулярнасцю сярод аналітыкаў, распрацоўшчыкаў і проста энтузіястаў.
Без ведання SQL у інжынерыі дадзеных рабіць няма чаго, бо вам непазбежна прыйдзецца ствараць запыты для вымання дадзеных. Усе сучасныя сховішчы вялікіх дадзеных падтрымліваюць SQL:

  • Amazon RedShift
  • HP Vertica
  • Аракул
  • SQL Server

… і мноства іншых.

Для аналізу вялікага пласта дадзеных, якія захоўваюцца ў размеркаваных сістэмах, такіх як HDFS, былі вынайдзены механізмы SQL: Apache Hive, Impala і т. д. Бачыце, ён не збіраецца нікуды сыходзіць.

Як вывучыць SQL? Проста рабі гэта на практыцы.

Для гэтага я б парэкамендаваў азнаёміцца ​​з выдатным падручнікам, які, дарэчы, бясплатны, ад Рэжым аналітыкі.

  1. Сярэдні ўзровень SQL
  2. Аб'яднанне дадзеных у SQL

Адметнай асаблівасцю гэтых курсаў з'яўляецца наяўнасць інтэрактыўнага асяроддзя, у якім вы можаце пісаць і выконваць SQL-запыты прама ў браўзэры. Рэсурс Modern SQL не будзе лішнім. І вы можаце прымяніць гэтыя веды ў задачах Leetcode у раздзеле Базы дадзеных.

3. Праграмаванне на Python і Java/Scala

Чаму варта вывучаць мову праграмавання Python, я ўжо пісаў у артыкуле Python vs R. Выбар лепшай прылады для AI, ML і Data Science. Што да Java і Scala, большасць прылад для захоўвання і апрацоўкі велізарных аб'ёмаў дадзеных напісаны на гэтых мовах. Напрыклад:

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

Каб зразумець, як працуюць гэтыя інструменты, вам трэба ведаць мовы, на якіх яны напісаны. Функцыянальны падыход Scala дазваляе эфектыўна рашаць задачы паралельнай апрацоўкі дадзеных. Python, нажаль, не можа пахваліцца хуткасцю і раўналежнай апрацоўкай. У цэлым, веданне некалькіх моў і парадыгмаў праграмавання добра ўплывае на шырыню падыходаў да рашэння праблем.

Каб пагрузіцца ў мову Scala, вы можаце прачытаць Праграмаванне ў Scala ад аўтара мовы. Таксама кампанія Twitter апублікавала добрае ўступнае кіраўніцтва. Scala School.

Што тычыцца Python, я лічу Свабодны Python лепшай кнігай сярэдняга ўзроўню.

4. Інструменты для працы з вялікімі дадзенымі

Вось спіс самых папулярных інструментаў у свеце вялікіх дадзеных:

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

Больш інфармацыі аб пабудове вялікіх блокаў дадзеных вы можаце знайсці ў гэтай дзіўнай інтэрактыўнаму асяроддзю. Самыя папулярныя інструменты - Spark і Kafka. Іх вызначана варта вывучыць, пажадана зразумець, як яны працуюць знутры. Jay Kreps (суаўтар Kafka) у 2013 годзе апублікаваў манументальную працу The Log: што павінен ведаць кожны распрацоўшчык праграмнага забеспячэння аб абстракцыі аб'яднання дадзеных у рэальным часе, дарэчы, асноўныя ідэі з гэтага талмуду былі скарыстаны для стварэння Apache Kafka.

5. Воблачна платформы

Хто такія дата-інжынеры, і як імі становяцца?

Веданне хаця б адной хмарнай платформы знаходзіцца ў спісе базавых патрабаванняў, якія прад'яўляюцца да суіскальнікаў на пасаду дата-інжынера. Працадаўцы аддаюць перавагу Amazon Web Services, на другім месцы – хмарная платформа Google, і замыкае тройку лідэраў Microsoft Azure.

Вы павінны добра арыентавацца ў Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Размеркаваныя сістэмы

Праца з вялікімі дадзенымі мае на ўвазе наяўнасць кластараў незалежна якія працуюць кампутараў, сувязь паміж якімі ажыццяўляецца па сетцы. Чым больш кластар, тым больш верагоднасць адмовы яго вузлоў-членаў. Каб стаць крутым экспертам у галіне дадзеных, вам неабходна ўглыбіцца ў праблемы і існуючыя рашэнні для размеркаваных сістэм. Гэтая вобласць старая і складаная.

Эндру Таненбаўм лічыцца піянерам у гэтай галіне. Для тых, хто не баіцца тэорыі, я рэкамендую яго кнігу "Размеркаваныя сістэмы", для пачаткоўцаў яна можа здацца складанай, але гэта сапраўды дапаможа вам адтачыць свае навыкі.

Я лічу «Праектаванне прыкладанняў з інтэнсіўным выкарыстаннем дадзеных» пад аўтарствам Марціна Клепмана лепшай уступнай кнігай. Дарэчы, у Марціна ёсць выдатны блог. Яго праца дапаможа сістэматызаваць веды аб пабудове сучаснай інфраструктуры для захоўвання і апрацоўкі вялікіх даных.
Для тых, хто любіць глядзець відэа, на Youtube ёсць курс Размеркаваныя кампутарныя сістэмы.

7. Канвееры дадзеных

Хто такія дата-інжынеры, і як імі становяцца?

Канвееры дадзеных - гэта тое, без чаго вы не можаце жыць у якасці дата-інжынера.

Вялікую частку часу дата-інжынер будуе так званую пайплайн дату, гэта значыць стварае працэс дастаўкі дадзеных з аднаго месца ў іншае. Гэта могуць быць карыстацкія сцэнары, якія ідуць да API знешняга сэрвісу або робяць SQL-запыт, дапаўняюць дадзеныя і змяшчаюць іх у цэнтралізаванае сховішча (сховішча дадзеных) або сховішча неструктураваных дадзеных (возера дадзеных).

Падводзячы вынік: асноўны чэкліст дата-інжынера

Хто такія дата-інжынеры, і як імі становяцца?

Падагульнім - неабходна добрае разуменне наступнага:

  • Інфармацыйныя сістэмы;
  • Распрацоўка праграмнага забеспячэння (Agile, DevOps, Design Techniques, SOA);
  • Размеркаваныя сістэмы і паралельнае праграмаванне;
  • Асновы баз дадзеных - планаванне, праектаванне, эксплуатацыя і ўхіленне няспраўнасцяў;
  • Праектаванне эксперыментаў - A / B-тэсты для доказу канцэпцый, вызначэння надзейнасці, прадукцыйнасці сістэм, а таксама для распрацоўкі надзейных шляхоў для аператыўнага прадастаўлення добрых рашэнняў.

Гэта толькі некалькі патрабаванняў для таго, каб стаць інжынерам дадзеных, таму вывучыце і разбярыцеся з сістэмамі дадзеных, інфармацыйнымі сістэмамі, бесперапыннай дастаўкай / разгортваннем / інтэграцыяй, мовамі праграмавання і іншымі тэмамі па інфарматыцы (не ва ўсіх прадметных галінах).

І, нарэшце, апошняе, але вельмі важнае, што я хачу сказаць.

Шлях станаўлення Data Engineering не так просты, як можа падацца. Ён не даруе, фруструе, і вы павінны быць гатовыя да гэтага. Некаторыя моманты ў гэтым падарожжы могуць падштурхнуць вас усё кінуць. Але гэта сапраўдная праца і навучальны працэс.

Проста не перабольшвайце яго з самага пачатку. Увесь сэнс падарожжа ў тым, каб даведацца як мага больш і быць гатовым да новых выклікаў.
Вось выдатная карцінка, з якой я сутыкнуўся, якая добра ілюструе гэты момант:

Хто такія дата-інжынеры, і як імі становяцца?

І так, не забудзьцеся пазбягаць выгарання і адпачываць. Гэта таксама вельмi важна. Удачы!

Як вам артыкул, сябры? Запрашаем на бясплатны вэбінар, які адбудзецца ўжо сёньня ў 20.00. У рамках вебинара абмяркуем, як пабудаваць эфектыўную і якая маштабуецца сістэму апрацоўкі дадзеных для невялікай кампаніі ці стартапа з мінімальнымі выдаткамі. У якасці практыкі пазнаёмімся з інструментамі апрацоўкі даных Google Cloud. Да сустрэчы!

Крыніца: habr.com

Дадаць каментар