6. Обеспечение процессов обработки данных

Авторы: В. А. Сазонов, Н. В. Скворцов, Р. С. Стрекаловский
Время чтения: 15 мин.

Ключевые идеи

Дата-инжиниринг — область знаний, связанная с разработкой, тестированием и поддержкой инфраструктуры работы с данными.
Цель инженера данных — внедрить систему (платформу), куда автоматически загружаются данные, где они получают доступную для конечных пользователей форму и где пользователи могут самостоятельно проверять гипотезы и решать свои задачи, используя правильные метрики.
В архитектуре аналитической рабочей среды организации выделяются пять слоев: источники данных, обработка данных, хранение данных, наука
о данных и бизнес-аналитика.
Слой обработки данных выделен для обозначения операций, которые идут либо в потоковом (непрерывном) режиме, либо в пакетном (с перерывами)
Слой хранения включает традиционное хранилище данных, оно же Data Warehouse, и хранилище больших данных (озеро данных); другой вариант — современное хранилище, объединяющее DWH и озеро данных (платформа данных).

6.1 Задачи инженера данных

Когда в организации создана команда для управления данными (см. раздел 5.1), встает вопрос о том, как подступиться к большим объемам сырых данных: как их правильно собирать, обрабатывать и хранить.
ДАТА-ИНЖИНИРИНГ — область знаний, связанная с разработкой, тестированием и поддержкой инфраструктуры работы с данными: баз данных, хранилищ, систем массовой обработки и подготовки данных. К ней относится построение процессов извлечения, загрузки, преобразования, хранения и подготовки данных для систем-потребителей: аналитики, алгоритмов машинного обучения, науки о данных (Data Science) и т. д.
Инженеры данных — это инженеры-программисты, которые отвечают за построение конвейеров данных (Data Pipelines) для объединения информации из разных систем-источников. Они интегрируют, консолидируют и очищают данные, строят хранилища данных, извлекают и структурируют данные для использования в аналитических решениях (приложениях, системах). Объем данных, с которыми работает инженер, зависит от характеристик организации, особенно от ее размера. Некоторые отрасли обрабатывают данные более интенсивно (например, здравоохранение, розничная торговля, банковский сектор). Чем крупнее организация, тем больше данных, за которые отвечает инженер.
Отличие дата-инженера от аналитика и исследователя данных можно описать метафорой. Прежде чем приготовить морковный пирог, нужно собрать морковь, привезти ее с огорода, помыть и почистить, и роли в этом процессе распределяются так: инженер собирает морковь, привозит ее, моет и чистит, а аналитик (или исследователь) готовит из нее пирог
Экосистема больших данных (см. раздел 2.3) может включать самые разные технологические компоненты, показанные на рис. 27, и прежде всего распределенные файловые системы. Они работают на нескольких серверах сразу, способны хранить файлы, которые не умещаются на диск отдельного компьютера, ориентированы на параллельную обработку файлов (одновременно на нескольких компьютерах) и легко масштабируются.
Силен Д., Мейсман А., Али М. Основы Data Science и Big Data. Python и наука о данных. СПб.: Питер, 2018.
Наиболее популярной распределенной файловой системой является Hadoop File System.

Рисунок 27
Экосистема больших данных

Хранение огромных объемов данных предполагает использование ПО (систем управления базами данных, СУБД), предназначенного для управления такими данными и формирования запросов к ним. Традиционные реляционные базы данных, использующие язык запросов SQL (такие как Oracle, MySQL и т. п.), плохо справляются с большими объемами записи и чтения данных, хотя отлично работают с задачами поиска данных в заданной структуре. Поэтому появились новые типы СУБД на основе нереляционных технологий, объединенные в категорию NoSQL.
Данные в распределенной файловой системе перемещаются от источников к потребителям с помощью специальной инфраструктуры интеграции данных. Когда же данные доходят до потребителя, начинается их обработка и аналитика с целью извлечения из них полезной информации и знаний.
База данных — совместно используемый набор логически связанных данных (и описание этих данных), предназначенный для удовлетворения информационных потребностей организации. См.: Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. М.: Вильямс, 2003.
Реляционные СУБД поддерживают реляционную модель данных (от англ. relation — 'отношение', 'зависимость', 'связь'). База данных, построенная в соответствии с такой моделью, представляет собой совокупность взаимосвязанных таблиц (в терминах теории реляционных баз данных — отношений), каждая из которых содержит сведения об объектах определенного типа (товарах, клиентах и т. п.).
От англ. not only SQL — не только SQL.