Data Engineer і Data Scientist: якая ўвогуле розніца?

Прафесіі Data Scientist і Data Engineer часта блытаюць. У кожнай кампаніі свая спецыфіка працы з дадзенымі, розныя мэты іх аналізу і рознае ўяўленне, хто са спецыялістаў якой часткай працы павінен займацца, таму і патрабаванні кожны прад'яўляе свае. 

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

У першым артыкуле Алена Герасімава, кіраўнік факультэта «Data Science і аналітыка» у Неталогіі, распавядае, у чым розніца паміж Data Scientist і Data Engineer і з якімі прыладамі яны працуюць.

Як адрозніваюцца ролі інжынераў і саентістаў

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

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

Галоўнае адрозненне паміж Data Scientist і Data Engineer складаецца ў тым, што звычайна ў іх розныя мэты. Абодва працуюць для таго, каб дадзеныя былі даступнымі і якаснымі. Але Data Scientist знаходзіць адказы на свае пытанні і правярае гіпотэзы ў экасістэме дадзеных (напрыклад, на базе Hadoop), а Data Engineer – стварае пайплайн абслугоўвання алгарытму машыннага навучання, напісанага дата-саентыстам, у кластары Spark усярэдзіне той жа экасістэмы. 

Інжынер дадзеных прыносіць каштоўнасць бізнэсу, працуючы ў камандзе. Яго задача – выступіць важным звяном паміж рознымі ўдзельнікамі: ад распрацоўшчыкаў да бізнес-спажыўцоў справаздачнасці, – і павысіць прадуктыўнасць аналітыкаў – ад маркетынгавых і прадуктовых да BI. 

Data Scientist жа, наадварот, прымае актыўны ўдзел у стратэгіі кампаніі і выманні інсайтаў, прыняцці рашэнняў, укараненні алгарытмаў аўтаматызацыі, мадэлявання і генерацыі каштоўнасці з дадзеных.
Data Engineer і Data Scientist: якая ўвогуле розніца?

Праца з дадзенымі падпарадкоўваецца прынцыпу GIGO (garbage in – garbage out): калі аналітыкі і дата-саентісты маюць справу з непадрыхтаванымі і патэнцыйна некарэктнымі дадзенымі, то вынікі нават з дапамогай самых выдасканаленых алгарытмаў аналізу будуць няслушныя. 

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

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

Умоўна: калі кампаніі трэба пасябраваць BI і ETL – загрузку дадзеных і абнаўлення справаздач, вось тыповы legacy-падмурак, з якім давядзецца мець справу Data Engineer (добра, калі ў камандзе акрамя яго будзе яшчэ і архітэктар).

Абавязкі Data Engineer

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

Існуе яшчэ адна спецыялізацыя ўнутры траекторыі Data Engineer – ML engineer. Калі сцісла, то такія інжынеры спецыялізуюцца на давядзенні мадэляў машыннага навучання да прамысловага ўкаранення і выкарыстанні. Часцяком мадэль, якая паступіла ад дата-саенціста, з'яўляецца часткай даследавання і можа не зарабіць у баявых умовах.

Абавязкі Data Scientist

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

І Data Engineer, і Data Scientist аб'ядноўвае адчувальны ўклад у развіццё культуры працы з дадзенымі, з дапамогай якой кампанія можа атрымліваць дадатковы прыбытак або скарачаць выдаткі.

З якімі мовамі і інструментамі працуюць інжынеры і саентысты

Сёння чаканні ад спецыялістаў па апрацоўцы даных змяніліся. Раней інжынеры збіралі вялікія SQL-запыты, уручную пісалі MapReduce і апрацоўвалі дадзеныя з дапамогай такіх прылад, як Informatica ETL, Pentaho ETL, Talend. 

У 2020 годзе спецыялісту не абысціся без ведання Python і сучасных інструментаў правядзення вылічэнняў (напрыклад Airflow), разумення прынцыпаў працы з хмарнымі платформамі (выкарыстання іх для эканоміі на «жалезе», пры выкананні прынцыпаў бяспекі).

SAP, Oracle, MySQL, Redis – гэта традыцыйныя для інжынера дадзеных інструменты ў вялікіх кампаніях. Яны добрыя, але кошт ліцэнзій настолькі высокая, што вучыцца працаваць з імі мае сэнс толькі ў прамысловых праектах. Пры гэтым ёсць бясплатная альтэрнатыва ў выглядзе Postgres - ён бясплатны і падыходзіць не толькі для навучання. 

Data Engineer і Data Scientist: якая ўвогуле розніца?
Гістарычна часта сустракаецца запыт на Java і Scala, хаця па меры развіцця тэхналогій і падыходаў гэтыя мовы адыходзяць на другі план.

Тым не менш, хардкорная BigData: Hadoop, Spark і астатні заапарк – гэта ўжо не абавязковая ўмова для інжынера дадзеных, а разнавіднасць прылад для рашэння задач, якія не вырашыць традыцыйным ETL. 

У трэндзе — сэрвісы для выкарыстання інструментаў без ведання мовы, на якой яны напісаны (напрыклад, Hadoop без ведання Java), а таксама прадастаўленне гатовых сэрвісаў для апрацоўкі струменевых дадзеных (распазнаванне голасу ці вобразаў на відэа).

Папулярныя прамысловыя рашэнні ад SAS і SPSS, пры гэтым Tableau, Rapidminer, Stata і Julia таксама шырока выкарыстоўваюцца дата-саенцістамі для лакальных задач.

Data Engineer і Data Scientist: якая ўвогуле розніца?
Магчымасць самім будаваць пайплайны з'явілася ў аналітыкаў і дата-саенцістаў усяго пару гадоў таму: напрыклад, ужо можна адносна нескладанымі скрыптамі накіроўваць дадзеныя ў сховішча на аснове PostgreSQL. 

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

Навошта Data Engineer і Data Scientist працаваць разам

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

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

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

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

У кампаніях, якія ставяць за мэту развіццё культуры працы з дадзенымі і выбудоўванне бізнес-працэсаў на іх аснове, Data Scientist і Data Engineer дапаўняюць адзін аднаго і ствараюць паўнавартасную сістэму аналізу дадзеных. 

У наступным матэрыяле раскажам пра тое, якая адукацыя павінна быць у Data Engineer і Data Scientists, якія навыкі ім трэба развіваць і як уладкованы рынак.

Ад рэдакцыі Неталогіі

Калі прыглядаецеся да прафесіі Data Engineer ці Data Scientist, запрашаем вывучыць праграмы нашых курсаў:

Крыніца: habr.com

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