article-spots
article-carousel-spots
programs
Технології
Що таке Data Software Engineering і хто такі Data Software Engineers?
4 бер

Що передбачає професія data software engineer і як почати працювати в цій захопливій, хоча й доволі складній царині? Спробуємо пролити трохи світла на цю тему. Ольга Аніщенко і Костянтин Камінський, провідні інженери-розробники в EPAM, допомагають розібратися в деталях і відповідають на найпоширеніші запитання новачків у цій галузі.

Що таке data software engineering?

Фокус data software engineering або дата-інженерії, раніше відомої, як Big Data — це інфраструктура та інструменти для оброблення великих обсягів даних. Ця сфера передбачає не тільки знання мов програмування і фреймворків для розроблення програмного забезпечення, але й розуміння різних систем зберігання та оброблення даних. Хоча розмаїття доступних систем спочатку може приголомшувати, усі вони мають спільні риси і для роботи з ними потрібні схожі навички. Вправність у SQL є обов’язковою для успіху в дата-інженерії, а Python впевнено перебирає позицію стандартної мови програмування, хоча Java чи Scala досі активно використовуються.

Власне, дата-інженерія поєднує принципи розроблення програмного забезпечення з управлінням, обробленням та аналізом великих обсягів даних.

Що роблять data software engineers?

Data software engineers або дата-інженери — це фахівці, які створюють і супроводжують системи для управління, оброблення, аналізу і візуалізації великих обсягів даних. Вони відіграють ключову роль в організаціях, де дані мають вирішальне значення, адже створюють інфраструктуру для ефективного управління ними, допомагаючи компаніям ухвалювати рішення на основі інформації.

Зазвичай, дата-інженери залучені до проєктування та управління базами даних, створення таких систем, як сховища даних (data warehouses), сітки даних (data mesh) та озерні сховища (data lakehouses). Вони також працюють над алгоритмами оброблення даних, виконуючи очищення, нормалізацію та перетворення даних. За допомогою Hadoop і Apache Spark, дата-інженери оптимізують продуктивність систем і застосунків оброблення даних, щоб ефективніше працювати з великими обсягами. На цьому етапі їхня робота може включати налаштування запитів до бази даних, підвищення ефективності коду та механізмів кешування.

Дата-інженери також виконують завдання з інтеграції даних, забезпечуючи узгодженість і точність наборів даних. Вони долучаються до вирішення питань, пов’язаних із врегулюванням та безпекою даних, їхньою візуалізацією.  

Після обробки даних дата-інженери налагоджують виконання завдань за розкладом за допомогою таких інструментів, як Apache Airflow. Далі фокус уваги зміщується на забезпечення якості даних, що передбачає оцінювання вхідних і вихідних даних. Щоб визначитися з інфраструктурою для цих завдань, потрібно розумітися на хмарних технологіях, провайдерах і платформах, як-от Kubernetes, які часто використовуються з інструментами на кшталт Airflow і Spark.

Підсумовуючи, дата-інженерія включає проєктування сховищ даних, оброблення і захист даних, створення програмного забезпечення та алгоритмів для завдань, пов'язаних із даними. Дата-інженери часто беруть участь в аналізі якості даних, дослідженнях у галузі науки про дані, візуалізації даних для отримання інсайтів та інтеграції даних для запуску ETL-процесів.

Чому варто придивитися до дата-інженерії, як майбутньої професії?

Попит на дата-інженерів значно зріс за останні роки, що зумовлено кількома чинниками:

  1. Вибухове зростання кількості даних. Обсяг даних у світі експоненційно зростає, підживлюваний соцмережами, підключеними пристроями та Інтернетом речей (Internet of Things, IoT). Дата-інженери відіграють важливу роль у розробленні систем, здатних обробляти й видобувати інсайти з таких величезних обсягів складних даних.
  2. Прийняття рішень на основі даних. Бізнеси та організації все більше покладаються на дані для ухвалення обґрунтованих рішень. Отже, попит на фахівців, які можуть будувати стійкі системи, щоб ефективно збирати, зберігати, обробляти й аналізувати дані, зростатиме.
  3. Цифрова трансформація. У багатьох галузях відбувається цифрова трансформація, впроваджуються технології на основі даних для підвищення продуктивності, покращення клієнтського досвіду і здобуття конкурентних переваг. Дата-інженери безпосередньо дотичні до цих докорінних перетворень.
  4. Перехід на хмарні сервіси. Міграція інфраструктури даних у хмари підвищує попит на фахівців із досвідом роботи з хмарними рішеннями для обробки даних. Дата-інженери необхідні для проєктування, впровадження і управління системами даних у хмарних середовищах.
Ольга Аніщенко: Я розпочинала свою кар’єру як бекенд-розробник на Java, згодом стала дата-саєнтистом, спеціалізувалася на Python і машинному навчанні. З часом я переросла написання виключно бекенд-сервісів, тож вирішила придивитися до дата-напряму і, зрештою, з’ясувала, що дата-інженерія поєднує все, що мені подобається: програмування, розв’язування проблем, обробку великих обсягів даних, а ще тісну співпрацю з дата-саєнтистами, дата-аналітиками та інженерами з машинного навчання. Крім того, з огляду на стрімке зростання обсягів даних, бути дата-інженером означає бути на вістрі технологічного прогресу і стати затребуваним фахівцем на ринку. Я в захваті від того, як багато можу досягти, як дата-інженер, у сучасному світі ІТ.

Набір початківця для майбутнього дата-інженера:

  • Мови програмування: Python, Java або Scala.
  • Ґрунтовні знання SQL-запитів, об’єднань, збережених процедур, реляційних схем та SQL-оптимізації. 
  • Хмарний стек: Databricks, Azure DataFactory або AWS Glue, AWS EMR, Athena або GCP DataProc, GCP DataFlow.
  • Стек Big Data: Spark Core, Spark SQL, Spark ML, Kafka, Kafka Connect, Airflow, Streamset.
  • Сховища даних: Amazon Redshift, Google BigQuery, Azure Synapse Analytics, Snowflake
  • NoSQL: CosmosDB, DynamoDB, Cassandra, HBase, MongoDB.
  • Черги та потокова обробка: Kafka Streams; Spark Streaming;
  • Візуалізація даних: Tableau, PowerBI або Looker.
  • Глибоке розуміння розподілених обчислень та паралельної обробки.
  • Системи контролю версій: Git.
  • Тестування: компонентне/інтеграційне тестування, юніт-тестування (JUnit).
  • Контейнеризація: Docker, Kubernetes.

Різниця між дата-інженерією (Data Software Engineering), інтеграцією даних (Data Integration) і дата девопс (Data DevOps)

Професії, пов’язані з даними, споріднені між собою, завдання часто збігаються, а фахівці тісно співпрацюють. Звісно, переходити з однієї в іншу набагато легше, ніж починати з нуля. Пропонуємо познайомитися з кількома професіями, дуже близькими, але все ж відмінними від дата-інженерії.

Статті та відео, щоб глибше зануритися в тему

Big Data for everyone. An inside into technologies of tomorrow | EPAM Training Portal

Myths about Big Data, or Welcome to the Premier League | EPAM Training Portal

https://wearecommunity.io/events/growing-to-data-engineer_meetup/talks/48839

https://wearecommunity.io/events/how-i-got-into-bigdata/talks/14922

Виглядає, як перспективна професія, чи не так? Відкрий для себе нові освітні можливості з нашими програмами і дай потужний старт своїй кар’єрі в царині даних!