W 2012 roku Business Harvard Review okrzykną Data Science, „Najseksowniejszym zawodem na świecie”. Ponad 10 lat później, świat się zmienił, technologia się rozwinęła, przybyło danych i role które w firmach które wokół danych istniały, ewaluowały. 10 lat temu nikt nie mówił o Data Engineerach, nie było ogłoszeń, a firmy nie miały problemu, aby ich nie mogą znaleźć.
O co chodzi z tym Data Engineerem i czemu miałby „wygryźć” z tronu Data Scientista?
Świat się zmienia, ilość danych rośnie
Tak wygląda estymowana ilość danych w podziale na lata, z predykcją na najbliższą przyszłość. W roku 2022 jest około 14 razy więcej danych niż w roku 2012.
Dane są dzisiaj generowane przez samochody, lodówki, zegarki, camery, aplikacje mobilne i masę innych rzeczy oraz ludzi.
2012 roku, Data Science był na fali. Głównym wyzwaniem stawianym firmom, była analiza danych, którą wierzono że należy wykonać przy użyciu machine learningu. Tak jak dzisiaj wszyscy wierzą w AI, tak w tedy wierzono w magiczną rolę Data Scientistów. Dane były w głównej mierze trzymane w tradycyjnych, relacyjnych bazach danych takich jak Oracle, i życie było proste.
Firmy dokonują Digital Transformation, czyli transformacji cyfrowej
Aż tu nagle boom. Dzięki AWS, Azure, GCP i innym chmurom, moc oraz przestrzeń komputerowa zrobiła się tania. Przybyło danych. Pojawiło się bardzo dużo startupów które zaczęły konkurować z korporacjami. W efekcie doprowadzając do tego że firmy masowo rozpoczęły wszelakiej maści programy transformacji cyfrowej.
Wszystko po to, aby przy pomocy nowych rozwiązań stać się bardziej efektywnym i/lub pozyskać nowych klientów. Standardowo taka transformacja ma 3 filary:
- Data Driven Company – czyli dążenie, aby decyzje, na każdym szczeblu organizacji, były podejmowane przy użyciu danych dotyczących zagadnienia, a nie na bazie intuicji managerów
- Business Process Automation – czyli eliminacji powtarzalnych i dobrze udokumentowanych zadań wykonywanych przez ludzi i zastąpienie ich chociażby rozwiązaniami typy RPA (Robotic Process Automation) jak UiPath, BluePrism czy automatyzacja przy użyciu Python
- New Business Model – czyli uruchomienie nowych usług lub produktów na bazie danych lub systemów które dana korporacja już posiada, i rozszerzeniu swojego portfolio
Wszystkie z wyżej wymienionych filarów transformacji cyfrowej, są wykonywane lepiej, w momencie kiedy mamy do dyspozycji odpowiednie dane, zorganizowane i zarządzone w odpowiedni sposób. A danych zrobiło się dużo, dużo więcej.
Narodziny roli Data Engineer
Tak gwałtowny wzrost ilości danych doprowadził, nie tylko, do gwałtownego wzrostu możliwości ich wykorzystania, ale również do gwałtownego wzrostu wyzwań technologicznych związanych z ich przetrzymywaniem, przetwarzaniem, zarządzaniem, czy analizą.
Problemy które kiedyś były rozwiązywane przez pojedyncze firmy, takie jak Oracle, urosły do tego stopnia, iż trzeba wykorzystywać wiele różnych rozwiązań, technologii i podejść razem, połączony w odpowiedni sposób, w zależności od sytuacji.
Z drugiej strony, kiedyś aby Data Scientist mógł wykonać swoją pracę, musiał poświęcić troszkę czasu na zebranie danych, troszkę więcej na ich wyczyszczenie, i sporo na analizę. Dzisiaj, „troszkę czasu na zebranie danych” stało się tak złożone, czasochłonne i wyrafinowane, że Data Scientist nie jest już tego wstanie wykonać.
I tym samym narodził się zawód Data Engineer.
Co robi Data Engineer
Data Engineer odpowiada za pozyskanie, przetworzenie, przechowanie oraz udostępnienie danych, na potrzeby dalszych analiz biznesowych, innych systemów które z tych danych chcą skorzystać, czy też Data Scientistów.
Data Engineer musi rozumieć jakie dane są dostępne w firmie oraz po za nią, oraz jakie dane są potrzebne w organizacji. Następnie przy pomocy wybranych narzędzi, takich jak Apache Spark, Airflow czy też Snowflake, sprawić, aby odpowiednie dane zostały dostarczone, w efektywny sposób do odpowiednich ludzi.
Jest to połączenie wiedzy z zakresu baz danych oraz SQL, programowania (bardzo często w Python), zarządzania przepływem danych, zarządzania jakością danych oraz rozwiązań chmurowych, takich jak Azure, AWS czy też GCP. Nie rzadko przydają się podstawy Linux, shella oraz Dockers.
W porównaniu do Data Scientist, Data Engineer nie potrzebuje wiedzy z zakresu statystyki, machine learningu czy też deep learningu. Data Egnineer jest osobą bardziej techniczną. Ma również mniej interakcji z „biznessem”. Porównując Data Engineera i Data Scientista do programistów, można powiedzieć że Data Engineer jest Back-end developerem, gdzie Data Scientist jest Front-End developerem.
Data Engineer jest na fali
Według raportu firmy deci z 2020, Data Engineer był najszybciej rozwijającym się technicznym zawodem:
To nie jest tak że Data Scientist został zawodem porzuconym. Po prostu w firmie, która chce być Data Driven, a co za tym idzie inwestuje w pozyskiwanie i przetwarzanie danych na potrzeby analiz czy modeli machine learningowych, na każdego Data Scientista, przypada prawdopodobnie 5 Data Engineerów.
Jednocześnie w przeciwieństwie do Data Science, kierunkiem obecnym na każdej uczelni, Data Engineer jest zawodem młodym. Co za tym idzie, zapotrzebowanie na Data Enginierów jest po prostu duże i póki co, niezaspokojone.
Jak wygląda praca Data Engineera
2 najczęstsze rodzaje projektów przy których pracuje Data Engineer to:
1. Pozyskiwanie nowych danych
W tego typu projektach mamy osoby które zgłaszają się do zespołu Data Engineeringu z zapytaniem o nowe dane. Przykładowo szef działu logistyki, chciałby móc lepiej planować transport i w tym celu potrzebuje:
- cen paliw w poszczególnych krajach
- aktualny koszt transportu kontenera drogą morską
- ceny przewozu palety towarów drogą naziemną, oferowane przez firmy transportowe.
I tutaj do gry wchodzi Data Engineer, który musi zidentyfikować gdzie takie informacje się znajdują, jak je pobrać, jak przechować, ile ich będzie i na końcu jak je udostępnić naszemu szefowi logistyki.
Po drodze napisze parę skryptów w Python, przygotuje bazę danych, potworzy tabele, ustawi harmonogramy pobrania danych, oraz poinformuje zainteresowanych, gdzie i kiedy dane będą dla nich dostępne.
Tego typu projektów jest oczywiście wiele, i jest to tylko bardzo drobny przykład.
2. Migracja danych ze starych rozwiązań do nowych
Jest to drugi, bardzo popularny typ projektów. Większość firm od zawsze miała jakiś rodzaj baz danych. W raz ze wzrostem ilości danych oraz ich różnorodności, bardzo często obecne rozwiązania okazują się być niewystarczające lub drogie.
I tym samym wszystkie zebrane dane są migrowanie do rozwiązań chmurowych, takich Azure, AWS, GCP, lub innych, wyspecjalizowanych baz danych, jak Snowflake, czy DataBricks.
Mniej biznesowy typ projektu niż pierwszy, ale często wiążący się z możliwością szybkiej nauki nowych technologii.
Data Engineer vs ChatGPT
W przeciwieństwie do zawodów typu Junior Software Developer, gdzie praca polega na pisaniu małych kawałków kodu, zawód Data Egnineera jest o wiele bardziej odporny na zawirowania związane z AI.
Praca Data Engineera, wymaga zrozumienia kontekstu, i często wiąże się z wyborem i użyciem wyspecjalizowanych narzędzi. Jest to praca o wiele bliższa architektowi, niż programiście. Oczywiście większość Data Engineerów również programuje, i ta część pracy może zostać znacznie przyspieszona przez AI, które jednak ciągle przed długie, długie lata, pozostanie tylko narzędziem w rękach Data Engineera.
Czy Data Engineer to zawód, dla Ciebie?
Ten zawód nie jest dla wszystkich. Trzeba lubić uczyć się nowych technologii i spędzać godziny czasu w samotności aby je zrozumieć. Mamy mniej interakcji z ludzi niż to jest w innych rolach związanych z danymi. Można powiedzieć że jest to zawód dla introwertyka lubiącego dane.
W drugiej strony, próg wejścia do zawodu nie jest aż taki wysoki. Niektóre zadania które wykonuje Data engineer są relatywnie proste, powtarzalne. Czasami wystarczy znajomość Python, SQL, podstawy baz danych. A czasami zrobienie jednego z certyfikatów oferowanych przez dostawców rozwiązań chmurowych, takich jak:
- Google Cloud Data Engineer
- Azure Data Engineer Associate
- Databricks Certified Data Engineer Associate
Oczywiście zostanie ekspertem, tak jak w każdym innym zawodzie, zajmie nam lata. No ale na końcu czeka nas duży komfort wyboru pracodawcy, duże zarobki, oraz przyszłościowo stabilny zawód.