С развитием технологий обработки больших данных и методов науки о данных организации приобретают способность смотреть вперед – «через лобовое стекло». Возможность прогнозирования на основе моделей, в том числе в режиме, близком к реальному времени, с использованием разнородных данных из множества различных источников помогает организациям лучше понимать направления своего развития.
Главный драйвер развития в организации работ в области сбора и исследования больших данных – стремление к обнаружению скрытых бизнес-возможностей посредством всесторонней аналитической проработки массивов данных с использованием широкого спектра диверсифицированных алгоритмов. Большие данные стимулируют инновации, поскольку объемы и разнообразие массивов, доступных для исследования, безостановочно растут и все эти данные можно использовать для определения моделей прогнозирования нужд потребителей и создания персонализированных презентаций продуктов и услуг. Наука о данных способствует повышению производительности и результативности обработки больших данных. Алгоритмы машинного обучения помогают автоматизировать сложные по структуре и ресурсоемкие комплексы рабочих процессов, способствуя повышению эффективности работы организации, снижая затраты и минимизируя риски[481].
14.3.3. Дата-инжиниринг и экосистема больших данных
В разделе 14.1.8 мы рассматривали архитектуру комплексной рабочей среды для областей DW/BI и работы с большими данными (см. рис. 14.4). В процессе обработки входящих потоков больших данных сначала осуществляется их загрузка в специальное хранилище – озеро данных (data lake), а затем проводятся работы по интеграции и исследованию данных с построением моделей.
Поскольку сведения в озере данных могут быть необработанными (сырыми) и поступать из источников, не относящихся к операционным информационным системам организаций, они не подходят для рядового бизнес-пользователя; скорее, озера данных предоставляют материал для работы ученых по данным и различного рода экспертов, проводящих подробный анализ данных.
В связи с этим возникает необходимость в такой важной области деятельности, как дата-инжиниринг.
Дата-инжиниринг (data engineering) – это комплексная деятельность по обеспечению возможности использования необработанных данных. Без подготовительных работ им было бы невозможно разобраться в огромных объемах больших данных. За выполнение таких работ отвечает отдельная группа специалистов – инженеры данных (data engineers).
Инженеры данных – это инженеры-программисты (software engineers), которые, как правило, отвечают за построение конвейеров данных (data pipelines) для объединения информации из разных систем-источников. Они интегрируют, консолидируют и очищают данные и структурируют их для использования в аналитических приложениях.
Инженеры данных работают совместно с учеными по данным, повышая прозрачность данных и позволяя организациям принимать более надежные бизнес-решения.
Объем данных, с которыми работает инженер данных, зависит от организации и особенно от ее размера. Чем крупнее организация, тем сложнее архитектура аналитики и тем за большее количество данных он будет отвечать. Некоторые отрасли обрабатывают данные более интенсивно, в том числе здравоохранение, розничная торговля и финансовые услуги.
Основная цель инженера данных – сделать данные легко доступными и оптимизировать экосистему больших данных своей организации. Поэтому инженер данных должен иметь обширные знания в области современных технологий хранения и обработки данных, поскольку экосистема больших данных может включать самые разнообразные компоненты (рис. 14.9).
В первую очередь следует выделить распределенные файловые системы. Они работают на нескольких серверах сразу, способны хранить файлы, превышающие по объему размер диска отдельного компьютера, ориентированы на параллельную обработку файлов (одновременно на нескольких компьютерах) и легко масштабируются[482].
* Силен Д., Мейсман А., Али М. Основы Data Science и Big Data. Python и наука о данных. – СПб.: Питер, 2018.
Для работы с данными в распределенной файловой системе должна быть использована специальная инфраструктура распределенного программирования[483].
Хранение огромных объемов данных предполагает использование систем управления базами данных, специализирующихся на работе с такими данными и формировании запросов к ним. Традиционные реляционные СУБД, использующие язык запросов SQL (такие как Oracle или MySQL), плохо справляются с большими объемами. Кроме того, в них отсутствуют средства обработки потоковых, неструктурированных и графовых (ориентированных на представление в виде графа) данных. Поэтому появились новые типы СУБД на основе нереляционных технологий, объединенные в категорию NoSQL (см. главы 11 и 12).
Данные в распределенной файловой системе перемещаются от источников к потребителям с помощью специальной инфраструктуры интеграции данных.