Zawody Data Scientist i Data Engineer są często mylone. Każda firma ma swoją specyfikę pracy z danymi, różne cele analizy oraz różne przekonania na temat tego, która część pracy należy do którego specjalisty, więc wymagania stawiane są różne.
Zrozumiemy, jaka jest różnica między tymi specjalistami, jakie zadania biznesowe rozwiązują, jakie umiejętności posiadają i ile zarabiają. Materiał wyszedł obszerny, więc podzieliliśmy go na dwie publikacje.
W pierwszym artykule Elena Gerasimova, kierownik wydziału „” w Netologii, opowiada o różnicach między Data Scientist a Data Engineer oraz narzędziach, z którymi pracują.
Jak różnią się role inżynierów i scientistów
Inżynier danych to specjalista, który z jednej strony projektuje, testuje i utrzymuje infrastrukturę pracy z danymi: bazy danych, magazyny i systemy masowej obróbki. Z drugiej strony to osoba, która oczyszcza i „przygotowuje” dane do użytku przez analityków i data scientistów, czyli tworzy potoki przetwarzania danych.
Data Scientist tworzy i trenuje modele predykcyjne (i nie tylko) przy użyciu algorytmów uczenia maszynowego oraz sieci neuronowych, pomagając firmom odkrywać ukryte wzorce, przewidywać rozwój wydarzeń oraz optymalizować kluczowe procesy biznesowe.
Główna różnica między Data Scientist a Data Engineer polega na tym, że zazwyczaj mają różne cele. Obaj pracują nad tym, aby dane były dostępne i wysokiej jakości. Jednak Data Scientist znajduje odpowiedzi na swoje pytania i weryfikuje hipotezy w ekosystemie danych (na przykład na bazie Hadoop), podczas gdy Data Engineer tworzy pipeline do obsługi algorytmu uczenia maszynowego opracowanego przez Data Scientist w klastrze Spark w tym samym ekosystemie.
Inżynier danych przynosi wartość firmie, pracując w zespole. Jego zadaniem jest rozwiązanie ważnego ogniwa między różnymi uczestnikami: od deweloperów po biznesowych użytkowników raportów — oraz zwiększenie produktywności analityków — od marketingowych i produktowych po BI.
Data Scientist, wręcz przeciwnie, aktywnie uczestniczy w strategii firmy oraz wydobywaniu wniosków, podejmowaniu decyzji, wdrażaniu algorytmów automatyzacji, modelowaniu i generowaniu wartości z danych.

Praca z danymi podlega zasadzie GIGO (garbage in — garbage out): jeśli analitycy i data scientist zaznajamiają się z nieprzygotowanymi i potencjalnie niepoprawnymi danymi, wyniki, nawet przy użyciu najbardziej zaawansowanych algorytmów analizy, będą błędne.
Inżynierowie danych rozwiązują ten problem, tworząc pipeline do przetwarzania, oczyszczania i transformacji danych, co pozwala data scientistowi pracować z jakością danych.
Na rynku dostępnych jest wiele narzędzi do pracy z danymi, które obejmują każdy etap: od pojawienia się danych do ich wizualizacji na pulpicie dla zarządu. Ważne jest, aby decyzję o ich użyciu podejmował inżynier, nie dlatego, że to modne, ale dlatego, że rzeczywiście pomoże to innym uczestnikom procesu.
W skrócie: gdy firma potrzebuje zintegrować BI z ETL — ładowaniem danych i aktualizacją raportów, oto typowa infrastruktura legacy, z którą będzie musiał zmierzyć się Data Engineer (dobrze, jeśli w zespole będzie również architekt).
Obowiązki Data Engineer
- Tworzenie, budowanie i utrzymywanie infrastruktury do pracy z danymi.
- Obsługa błędów i tworzenie niezawodnych konduktów przetwarzania danych.
- Przekształcanie danych nieustrukturyzowanych z różnych dynamicznych źródeł w formę, która będzie odpowiednia dla analityków.
- Zapewnienie rekomendacji dotyczących zwiększenia spójności i jakości danych.
- Zapewnienie i wsparcie architektury danych używanej przez data scientistów i analityków danych.
- Przetwarzanie i przechowywanie danych w sposób ciągły i efektywny w rozproszonym klastrze składającym się z dziesiątek lub setek serwerów.
- Ocena kompromisów technicznych narzędzi do tworzenia prostych, ale niezawodnych architektur, które będą mogły przetrwać awarie.
- Monitorowanie i wsparcie strumieni danych oraz powiązanych systemów (ustawianie monitoringu i alertów).
Istnieje jeszcze jedna specjalizacja w obrębie ścieżki Data Engineer – inżynier ML. Krótko mówiąc, tacy inżynierowie specjalizują się w przekształcaniu modeli uczenia maszynowego do wdrożenia i użycia w przemysłowych warunkach. Często model, który pochodzi od data scientist, jest częścią badań i może nie działać w warunkach bojowych.
Obowiązki Data Scientist
- Ekstrahowanie cech z danych w celu zastosowania algorytmów uczenia maszynowego.
- Wykorzystanie różnych narzędzi uczenia maszynowego do prognozowania i klasyfikacji wzorców w danych.
- Zwiększanie wydajności i dokładności algorytmów uczenia maszynowego poprzez dostrajanie i optymalizację algorytmów.
- Formułowanie «silnych» hipotez zgodnych z strategią firmy, które należy przetestować.
Zarówno Data Engineer, jak i Data Scientist mają znaczący wkład w rozwój kultury pracy z danymi, dzięki którym firma może osiągać dodatkowe zyski lub obniżać koszty.
Z jakimi językami i narzędziami pracują inżynierowie i specjaliści?
Obecne oczekiwania względem specjalistów zajmujących się przetwarzaniem danych uległy zmianie. Kiedyś inżynierowie tworzyli złożone zapytania SQL, ręcznie pisali MapReduce i przetwarzali dane przy użyciu takich narzędzi jak Informatica ETL, Pentaho ETL, Talend.
W 2020 roku specjalista nie może obejść się bez znajomości Pythona i nowoczesnych narzędzi obliczeniowych (na przykład Airflow) oraz zrozumienia zasad działania platform chmurowych (ich wykorzystanie w celu oszczędzania na sprzęcie, przy zachowaniu zasad bezpieczeństwa).
SAP, Oracle, MySQL, Redis to tradycyjne narzędzia dla inżynierów danych w dużych firmach. Są one dobre, ale koszty licencji są tak wysokie, że nauka pracy z nimi ma sens tylko w projektach przemysłowych. Istnieje jednak bezpłatna alternatywa w postaci Postgresa — jest on darmowy i nadaje się nie tylko do nauki.

Historycznie często pojawia się zapotrzebowanie na Java i Scala, chociaż w miarę rozwoju technologii i podejść te języki ustępują miejsca innym.
Jednak hardcore BigData, jak Hadoop, Spark i inne narzędzia, to już nie wymóg dla inżyniera danych, lecz rodzaj narzędzi do rozwiązywania problemów, które nie mogą być rozwiązane tradycyjnym ETL.
Trendy obejmują usługi umożliwiające korzystanie z narzędzi bez znajomości języka, w którym zostały napisane (na przykład Hadoop bez znajomości Java), a także dostarczanie gotowych usług do przetwarzania danych strumieniowych (rozpoznawanie głosu lub obrazu wideo).
Popularne są przemysłowe rozwiązania od SAS i SPSS, podczas gdy Tableau, Rapidminer, Stata i Julia również są szeroko wykorzystywane przez data scientistów do lokalnych zadań.

Możliwość samodzielnego budowania pipeline'ów pojawiła się u analityków i data scientistów zaledwie kilka lat temu: na przykład, można już stosunkowo prostymi skryptami przekazywać dane do magazynu opartego na PostgreSQL.
Zazwyczaj użycie pipeline'ów i zintegrowanych struktur danych pozostaje w gestii inżynierów danych. Jednak dziś, jak nigdy wcześniej, widać trend na specjalistów o umiejętnościach T — z szerokimi kompetencjami w pokrewnych dziedzinach, ponieważ narzędzia są cały czas upraszczane.
Dlaczego inżynier danych i data scientist powinni współpracować
Pracując w bliskiej współpracy z inżynierami, Data Scientist mogą skupić się na badaniach, tworząc algorytmy uczenia maszynowego gotowe do użycia.
Inżynierowie mogą skoncentrować się na skalowalności, ponownym wykorzystaniu danych oraz zapewnieniu, że pipeline'y danych w każdym projekcie odpowiadają globalnej architekturze.
Takie podział obowiązków zapewnia spójność działań między zespołami specjalistów pracujących nad różnymi projektami uczenia maszynowego.
Współpraca umożliwia efektywne tworzenie nowych produktów. Szybkość i jakość osiągane są dzięki równowadze między tworzeniem usług dla wszystkich (globalne magazyny lub integracja dashboardów) a realizacją specyficznych potrzeb danego projektu (wąsko wyspecjalizowany pipeline, podłączenie zewnętrznych źródeł).
Ścisła współpraca z data scientistami i analitykami pomaga inżynierom rozwijać umiejętności analityczne i badawcze, co prowadzi do pisania lepszego kodu. Wzmacnia to wymianę wiedzy między użytkownikami magazynów danych i jezior danych, co sprawia, że projekty stają się bardziej elastyczne i zapewniają bardziej trwałe wyniki w dłuższym okresie.
W firmach, które dążą do rozwijania kultury pracy z danymi i budowania procesów biznesowych w oparciu o nie, Data Scientist i Data Engineer uzupełniają się nawzajem, tworząc kompletny system analizy danych.
W następnym materiale omówimy, jakie wykształcenie powinien mieć Data Engineer i Data Scientist, jakie umiejętności muszą rozwijać oraz jak wygląda rynek.
Od redakcji Netologii
Jeśli rozważasz karierę jako Data Engineer lub Data Scientist, zapraszamy do zapoznania się z programami naszych kursów:
- Zawód „».
- Zawód „».
Źródło: habr.com
