Хто такі Data Engineers і чим вони займаються
Складно уявити сучасний світ без Big Data: з обробленими та «великими даними» ми зустрічаємось щодня. На їх основі генеруються рекомендації на стрімінговому сервісі, улюблені щотижневі плейлисти Spotify. Але хто забезпечує функціонування Big Data, структурує великі обсяги даних, щоб вони приносили користь?
Data Engineer - відносно нова, але дуже популярна професія.
Чим займається Data Engineer?
Вибором найбільш підходящої архітектури, що використовується для зберігання інформації;
Створенням інфраструктури, що обробляє дані, та підтримкою її функціонування;
Усуненням в отриманій системі помилок і багів;
Структуруванням даних, очищенням від «шуму» — невалідної інформації, — приведенням їх до єдиного формату;
Постійним удосконаленням системи зберігання та обробки даних, покращенням її характеристик (наприклад, збільшенням швидкості вилучення даних) та розширенням можливостей для більш швидкої та точної роботи з Big Data;
Налаштування кластера на десятки або сотні серверів для зберігання та обробки даних;
Контроль та підтримка різних потоків даних та пов'язаних з ними систем (моніторинг алертів, що повідомляють про зміни, що відбулися в системі, що дозволяє вчасно зреагувати на проблему).
Якими навичками повинен володіти Data Engineer?
Data Engineer повинен розуміти, як працюють дані, мати хороші аналітичні здібності та вміти працювати з великим технологічним стеком, а саме:
- З мовами програмування. Найбільш поширений - Python, часто зустрічається і Scala. Деякі фреймворки підтримують цю мову, тому знання Scala точно не буде зайвим. Набагато рідше зустрічається Java, але забувати про нього не варто.
- Важливо розуміти, які бувають сховища, який формат буде найбільш ефективним у розрізі конкретного випадку тощо.
- З базами даних: SQL & NoSQL: PostgreSQL, Oracle, MongoDB, Cassandra.
- З операційними системами UNIX - Windows у роботі зустрічається дуже рідко.
- Із хмарними системами: AWS, Google, Azure.
- З BI інструменти: Tableau, PowerBI, QlikView, ELK.
- Data Engineer теж має вміти працювати з візуалізацією даних. Маючи подібну навичку, Data Engineer зможе самостійно підготувати чорновий варіант графіків, діаграм та таблиць на основі Big Data, який буде представлений PM та клієнту на погодження. Це дозволить на ранніх етапах розробки системи зберігання та обробки даних визначити коректність обраних інженером за інформацією рішень, структур та сортувальних характеристик.
- Необхідне володіння технічним стеком Big Data: Hadoop, Hive, Spark, Kafka. А ще знання ETL tools & frameworks: Informatica, Pentaho, Talend, Apache Camel, Spring Batch/Integration.
Data Engineer та взаємозв'язок з іншими фахівцями
У рамках проектних завдань Data Engineer найбільше контактує з Data Scientist. Цей спеціаліст на основі даних, отриманих від Data Engineer, проводить аналітичну роботу, виділяє інформацію, що несе для компанії business value, складає підсумкову візуалізацію проекту для клієнта. Існує також спеціаліст, який може працювати на проекті на позиції Data Scientist: Data Analyst.
Порівняємо обов'язки кожного з них:
Data Engineer - той, хто розробляє, тестує та підтримує інфраструктуру системи з даними. Також до його обов'язків входить обробка даних, їх очищення та структурування. Готова, підігнана до єдиного виду інформація передається до роботи Data Scientist чи Data Analyst. Інструменти, з якими працюють Data Analyst і Data Engineer, схожі, так само, як і обов'язки фахівців: обидва застосовують у роботі Tableau, SQL і навіть Python, проте з їх допомогою досягають різних цілей.
Data Analyst аналізує отриману інформацію, витягуючи ту, що несе Business Value, візуалізує дані та переводить у формат, зрозумілий замовнику. В основному, аналітики комунікують зі стейкхолдерами компанії, надають їм щоденні та щотижневі звіти з результатами роботи.
Що стосується Data Scientist, це фахівець, який володіє великим набором технічних навичок, знаннями Big Data, так само як і прокачаними soft skills. Поряд із Data Analyst займається аналізом інформації, A/B-тестуванням, візуалізацією. Але, на відміну від першого, може створювати на проекті моделі даних за допомогою алгоритмів машинного навчання та нейромереж, чим допомагає клієнту розкривати нові закономірності бізнес-процесів та отримувати розширені прогнози.