Data Engineer: хто це і що потрібно знати для цієї роботи
Ми продовжуємо рубрику «Кар’єра в IT», де докладно описуємо специфіку окремих IT-професій. Цього разу розповідаємо про Data Engineer.
За даними DOU, Data Engineer — серед найоплачуваніших ІТ-спеціалістів, які не мають керівної функції. Їхня медіанна зарплата — $3500. Найбільше серед цих фахівців чоловіків рівня Middle і Senior. Ми поспілкувалися зі спеціалістами Data Engineer і дізналися, які їхні обов’язки на проєктах, чим вони займаються протягом дня та які технології, інструменти повинні знати для роботи. Усі цитати взяті з їхніх розповідей.
👨💻 Хто такий Data Engineer
💰 Які медіанні зарплати в цій ніші
💾 Що робить Data Engineer
✅ Завдання Data Engineer упродовж робочого дня
💫 Software, Scientist, Analyst, Quality — у чому різниця
📚 Що має знати новачок Data Engineer
👉 Як стати Data Engineer
👨💻 Хто такий Data Engineer
Data Engineer і Big Data Engineer досить рідкісні спеціалізації в українському ІТ: за даними літнього зарплатного опитування DOU, у 2023 році ці фахівці становили лише 1% айтівців. Близько половини з них перейшли з іншої ІТ-спеціалізації.
Серед Data / Big Data Engineer багато початківців. 10% фахівців мають до року досвіду в цій спеціалізації, і лише 20% працюють понад п’ять років. 7% ще вчаться у виші (серед інших спеціалізацій студентів лише 4%).
Data / Big Data Engineer — переважно чоловічий напрям. Жінки становлять лише 16%, але тут їх більше, ніж у розробці, де жінок 10%.
Ці фахівці переважно добре знають англійську: 70% з них володіють нею на рівні Upper Intermediate чи Advanced (загалом серед українських айтівців 56% мають такий рівень).
Освіту Data / Big Data Engineer найчастіше здобувають у великих ІТ-університетах. Близько третини з них вчилися в КПІ ім. Сікорського та Львівській політехніці.
Портрет українського Data Engineer:
Data / Big Data Engineers найчастіше наймають великі компанії: понад половина цих фахівців працює у компаніях з більш ніж 200 співробітниками.
Вони дещо частіше за інших фахівців вважають свою роботу дуже цікавою (21% проти 17% серед всіх айтівців) і проводять на ній дещо більше часу (19% працюють понад 40 годин на тиждень проти 15% серед всіх айтівців).
У 12% вистачає часу та енергії на додаткову оплачувану роботу (загалом серед айтівців лише 8% мають додаткову роботу), найчастіше це part-time. Ще 14% мають пет-проєкт.
Основна мова програмування Data / Big Data Engineers — Python. Нею найчастіше користуються 58% фахівців. Ще для чверті найпопулярніша SQL.
Де працюють Data / Big Data Engineers:
💰 Які медіанні зарплати в цій ніші
З фінансового погляду цей напрям дуже привабливий. Медіанна зарплата Data Engineer / Big Data Engineer влітку 2023 року становила $3500, як і у розробників. Зарплати початківців дещо вищі у розробці, але досвідчені Data / Big Data Engineer можуть розраховувати на вищі зарплати, ніж розробники такого ж тайтлу.
Junior Data Engineers отримують $950, Middle — $3000, а фахівці рівня Senior — $5650.
Порівняння медіанних зарплат Data Engineers і Software Engineers
Порівняння медіанних зарплат в галузі Data Science і Data Engineering:
Водночас на цю професію порівняно невисока конкуренція. У грудні
💾 Що робить Data Engineer
Data Engineer — це фахівець, який займається збором, обробкою (перетворенням, валідацією) і переміщенням великих обсягів даних. Він відповідає за створення ефективних систем збору даних, їхню оптимізацію та забезпечення доступу для дата-аналітиків, саєнтистів, бізнес-аналітиків та інших користувачів.
«Data Engineer — це як диригент оркестру у світі даних. Він координує різноманітні джерела даних, технології та процеси для створення цінної інформації».
«Якщо говорити загально, то дані десь мають оброблятись і зберігатись. Data Engineer відповідальний за те, як це відбувається».
Обов’язки Data Engineer:
- Розробка та оптимізація процесів збору, обробки та споживання даних (batch- і streaming processing).
- Створення та підтримка інструментів з даними різних обсягів, використовуючи фреймворки, як-от Spark.
- Побудова, управління та інтеграція архітектур даних (data warehouse, data lakes, lakehouses).
- Проєктування та реалізація реляційних та/або NoSQL баз даних.
- Підвищення перформансу.
- Валідування даних заради підтримки їхньої якості.
- Розробка та розвиток каталогу даних — рішення, що дає змогу структурувати інформацію про дані в системи, їхні види та правила обробки.
«Результатами, які видає Data Engineer, користуються Data Scientist, Data Analyst та інші. Тобто дата-інженер забезпечує ресурсами — даними. Завдання інженера — знайти дані, зібрати їх і надати в такому форматі, який потрібен дата-аналітику, саєнтисту або навіть кінцевому споживачу».
«Data Engineer не просто трансформує дані зі структури A в структуру B, він відповідальний за те, як ці дані споживаються. Ця трансформація робиться для того, щоб розв’язати певну бізнес-проблему. Data Engineer повинен вміти взаємодіяти з кінцевими споживачами та робити інтерфейси, які зручні для споживачів його даних».
✅ Завдання Data Engineer упродовж робочого дня
ETL-процеси
Основне, чим займається Data Engineer, це робота з даними (структурованими і напівструктурованими). Йдеться про створення, налаштування, оптимізацію ETL-процесів (Extract, Transform, Load), виявлення та усунення помилок у них, розробку рішень для запобігання подібним проблемам у майбутньому. Також це робота з різними сорсами даних (API, DB, IoT, Streaming, etc.), звідки Data Engineer має дані витягнути, обробити згідно з визначеними правилами та зберегти у відповідному форматі й місці.
Робота з базами даних
Data Engineer щодня взаємодіє з базами даних. Вони можуть бути реляційні та нереляційні. На обох можна побудувати data warehouse або інше data-focused рішення. Але все частіше доводиться мати справу із сучасними підходами та клауд-сервісами, що забезпечують MPP-підхід для обробки даних, таких як Snowflake, Redshift, Synapse. Або ж організацією datalake за допомогою blob storage (s3, ADLS2) і роботою з цими даними через відповідні сервіси чи бібліотеки.
Комунікація
Data Engineer, як і всі Software Engineer, мають володіти достатніми софт-скілами, щоб налагоджувати якісну комунікацію в команді та із замовником. Також така людина має бути частиною команди, і не тільки дата, а й цілої команди, яка працює над конкретним проєктом.
Data Engineer дотримується SDLS-підходу і бере участь у мітингах: дейлі-стендапах, плануваннях, ретроспективах тощо. Найчастіше Data Engineer взаємодіє з Data Science, Data Analyst, Data Quality командами, оскільки на проєкті саме ці ролі є основними споживачами даних. Проте це залежить від компанії, відділу та процесів.
Код-рев’ю
Якість обробки даних є основним критерієм, тому Data Engineer може контролювати код, який пише команда дата-інженерів. Одним з перевірених методів контролю, що добре працює — через пул-реквести.
«Зараз Data Engineer — це своєрідна людина-оркестр. Тому варто вміти оптимізувати та моніторити продуктивність, налаштовувати інфраструктуру. Це не щоденні завдання, але іноді таке потрібно робити.
Я часто бачу, що більш досвідчені Data Engineer можуть виконувати деякі завдання DevOps. Тому що рідко в дата-команді є окремий фахівець для цього. Наприклад, інженери самі налаштовують пайплайни, CI/CD-процеси. Так само у контейнеризації: Data Engineer менеджерить контейнери, де раниться його код, і координує роботу загальної мережі контейнерів».
💫 Software, Scientist, Analyst, Quality — у чому різниця
Є різні напрями фахівців, які працюють з даними: Data Scientist, Data Analyst, Data Quality Engineer і Data Software Engineer. Важливо розуміти, у чому різниця між їхніми обов’язками та зонами відповідальності.
Data Scientist — це фахівець, який може отримати певну корисну інформацію з даних. Наприклад, на основі вхідних даних він розробляє модель, що здатна передбачити важливі параметри.
Що повинні знати саєнтисти:
- технології візуалізації даних і звітності;
- дискретну математику, статистику та статистичний аналіз.
- мову програмування (переважно Python);
- бібліотеки: numpy, pandas, scikit-learn, matplotlib;
- бази даних MySQL і Postgres;
- фреймворк розподілених обчислень Hadoop MapReduce.
- алгоритми Machine Learning.
«Саєнтисти зазвичай розв’язують проблеми через тренування моделі: ти їй даєш вхід, вона дає вихід. Інженери трансформують дані, щоб можна було тренувати цю модель».
Data Analyst — фахівець, який збирає, опрацьовує та аналізує дані. Використовує різні інструменти, щоб знайти закономірності, зробити певні висновки та мати користь від них.
Що повинні знати аналітики:
- мову програмування (переважно Python);
- базові метрики: ARPU, ROI, LTV, CPC, CPM;
- інструменти для звітів Tableau та опціонально Power BI;
- SQL;
- статистику, аналіз даних і лінійну алгебру.
«Data Engineer відповідальний за те, щоб дані щодня потрапляли у сховище. Далі з ними працює аналітик. Спираючись на запит клієнтів, він опрацьовує ці дані, щоб подати їх у форматі звіту. Тобто робить їх „читомими“ для клієнтів».
«Позиції Data Engineer, Data Analyst і Data Scientist пов’язані: всі ці фахівці працюють з даними. Тому досить легко можна перекваліфікуватись. Якщо ви знаєте SQL, англійську мову та Python (ця мова програмування найпоширеніша в дата-інжинірингу), то не буде складно перейти між цими трьома позиціями. Але, звісно, буде потрібно опанувати нові інструменти».
Data Quality Engineer — інженер, який перевіряє інформацію, щоб вона була зручною для використання, відповідала бізнес-вимогам і конкретним метрикам якості. Також цей фахівець вибудовує процеси автоматичних перевірок даних на різних рівнях системи та етапах її розробки.
Що повинні знати дата тестувальники:
- теорію тестування;
- мову програмування (переважно Python);
- теорії реляційних СУБД;
- SQL.
Data Software Engineer — ця спеціальність об’єднує роль Data Engineer і Software Engineer. Цей фахівець часто проєктує та розробляє розподілені системи обробки даних, алгоритми, опікується складними ETL-процесами (Extract, Transform, Load).
Знання та навички Data Software Engineer аналогічні до Data Engineer.
«Загалом Data Software Engineer використовує свої навички в програмуванні та обробці даних для створення програмного забезпечення, яке може ефективно обробляти, зберігати та аналізувати великі обсяги даних, які називають Big Data».
📚 Що має знати новачок Data Engineer
- Основи програмування: мови програмування є інструментом для роботи з даними, (наприклад, Python/Java/Scala).
- Принципи роботи однієї з хмарних технологій: Azure/AWS/GCP.
- SQL and Databases — для взаємодії з базами даних.
- NoSQL: CosmosDB, DynamoDB, Cassandra, HBase, MongoDB Redis, Kafka.
- Добре знати Docker, опціонально Kubernetes.
- Для роботи з Big Data добре знати Apache Spark, Apache Kafka, Databricks, Apache Airflow.
- Англійська мова для роботи з документацією і комунікації з клієнтом.
«Тренди в дата-інжинірингу постійно оновлюються, тому за ними потрібно стежити. Можна час від часу переглядати вимоги до нових вакансій. Зараз компанії використовують такі інструменти, як Snowflake, Airflow або BigQuery. Але все залежить від проєкту, на який ви приходите. У вакансії будуть писати, з якими технологіями, інструментами та мовою програмування працюють на конкретному проєкті. Але якщо ти вже знаєшся на одному інструменті, то опанувати аналогічний досить легко».
До чого потрібно бути готовим
- Велика кількість комунікації. Data Engineer взаємодіє з різними фахівцями, і у нього може бути багато мітингів для обговорення завдань.
- Постійне навчання. Дата-напрям надзвичайно залежить від вектору розвитку компанії. І відповідно завдання можуть змінюватися досить часто. Тому потрібно постійно опановувати нові інструменти й технології.
- Чітке розуміння своєї ролі. Іноді замовники перекладають на Data Engineer роботу Data Quality Engineer, тобто вимагають, щоб він самостійно тестував свій код. Проте, як зазначають наші експерти, у такому разі інженер не буде об’єктивно ставитись до своєї роботи.
- Велика кількість абревіатур. Професію варто опанувати поступово та наполегливо, крок за кроком розбираючись у значенні абревіатур та вивчаючи технології.
Велика кількість навчання може стати викликом для новачка Data Engineer, проте наші спікери назвали це перевагою для себе.
«Особисто я кайфую від дата-інженерії. Тут багато роботи та розвитку. Скільки я працюю, стільки паралельно навчаюсь, адже старі технології відходять, а натомість приходять нові. Тому у мене навіть думки не було піти в іншу професію».
Якими можуть бути робочі завдання новачка Data Engineer
«Початківцям добре стартувати, коли є вже більш-менш готова інфраструктура і робочі дата-пайплайни. Йому важливо зрозуміти правила, яких дотримується команда. Також початкові завдання мають бути простими й не вимагати багато трансформацій даних. Наприклад, доставити дані згідно з визначеною специфікацією, де інженер має витягнути дані з сорс-системи, зробити певні маніпуляції й доставити дані у відповідне місце. І далі поступово можна долучатися до складніших завдань».
Ось яким може бути завдання для новачка:
Перетворити декларативний SQL-код на класичний код однієї з мов програмування (Python/Scala/Java).
👉 Як стати Data Engineer
Щодо вищої освіти, то тут підійде спеціальність, де є курс навчання баз даних. Наприклад КНУ ім. Тараса Шевченка, факультет ФРЕКС. Або КПІ ім. Ігоря Сікорського, факультет ФІОТ.
Безплатні курси для Data Engineer:
EPAM University — курси, повʼязані з Data Engineering, що дають базу для старту карʼєри.
Data Engineer Learning Path — матеріали курсу безкоштовні (без отримання сертифіката).
Codecademy — курс для глибшого вивчення Python.
IBM: Data Engineering Basics for Everyone — курс безплатний для прослуховування (перевірка домашніх завдань і фідбек передбачає оплату).
Платформи:
python-course — ресурс для вивчення Python.
leetcode — ресурс для практики кодингу.
Інші ресурси та матеріали:
Data Engineering Podcast — подкасти з обговореннями актуальних тем у галузі інженерії даних.
Data Engineering Subreddit — спільнота на Reddit для обговорення питань та обміну інформацією, пов’язаною з інженерією даних.
M. Beauchemin’s blog — блог Максима Бошемена, де він ділиться знаннями та інсайтами в інженерії даних.
Data Awesome Newsletter — щомісячний бюлетень з вибраними матеріалами та ресурсами у сфері даних.
Hacker News — популярний ресурс для новин та обговорень у світі технологій і стартапів.
Data Flair — сайт зі структурованою інформацією до Data Engineering.
W3Schools — теорія для вивчення SQL.
Medium Roadmap, Data Science Reality Roadmap — матеріали, корисні для тих, хто планує стати Data Engineer.
Дякуємо за підготовку та рецензування матеріалу нашим експертам:
Олександр Чакалов — Senior Big Data Developer у N-іX;
Андрій Лузан — Chief of Analytics в appflame;
Марʼян Федів — Software Engineering Team Leader в EPAM Systems;
Тарас Кльоба — Associate Director, Big Data & Analytics у SoftServe;
Анна Ясенова — Data analyst у Master of Code Global;
Ігор Яременко — Data Engineer in Master of Code Global, LivePerson;
Олександр Федірко — CEE Head of BigData Practice у GlobalLogic;
Валентин Зубенко — Data Engineering Director в Avenga;
Тетяна Лелюх — Data Engineering Lead у Solidgate.
Текст матеріалу: Олена Коваль
Аналітика: Ірина Іпполітова
9 коментарів
Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.