Под большими данными, или Big Data, понимают быстро генерируемые наборы данных, поступающих из разных источников. Такие данные могут накапливаться практически в каждой компании: данные клиентов, отзывы на сайте, результаты опросов и т.д. В результате накапливается огромный массив данных, которые могут быть потенциально ценны для компании.
В 2002 году была создана дочерняя компания AWS, которая занималась отслеживанием популярности сайтов и ведением другой статистики в интернете. Тогда началась работа с большими данными. С 2014 года на big data стали обращать внимание все больше крупных IT-компаний (Google, Microsoft, Oracle, IBM), которые стали обрабатывать их с целью анализа, прогнозирования и принятия решений. На сегодняшний день сложно представить крупную или среднюю компанию, которая развивается онлайн и не работает с Big Data.
Характеристики больших данных
Главные вопросы, которые появляются у тех, кто только начинает работать с большими данными: где и как их хранить? Но, чтобы правильно выбрать хранилище больших данных, для начала нужно получить представление о ключевых характеристиках Big Data. Часто их оформляют в концепцию пяти V — рассмотрим каждый.
Объем (Volume)
Определение объема больших данных со временем меняется и зависит от доступных мощностей и средств хранения. Например, в начале 1990-х годов жесткий диск на 40 Мб считался достаточно большим, а сегодняшние HDD имеют объемы в тысячи раз больше.
Скорость (Velocity)
Под этим термином понимается скорость, с которой данные накапливаются в хранилище. Данные могут поступать из одного или нескольких источников, при этом операции записи могут выполняться с разной периодичностью — вплоть до миллионов раз в секунду. Такая скорость накопления данных характерна, например, для крупных соцсетей, ведь информация в хранилище поступает от каждого пользователя. Сотни и тысячи раз в секунду могут обновляться данные предприятия, на котором установлено высокоточное оборудование, передающее информацию о своем состоянии в постоянном режиме.
Разнообразие (Variety)
Это важнейший показатель для выбора технологии хранения данных. По разнообразию данные бывают структурированными, слабо структурированными и неструктурированными.
- Для структурированных данных характерна строгая организация. Типичный пример — таблицы Excel.
- Данные со слабой структурой — наиболее типичный вид данных, поступающих из интернета. К слабо структурированным относятся, например, логи.
- Неструктурированными являются данные без конкретной формы. Пример неструктурированных данных — файлы с различным содержимым (видео, текст, картинки).
Достоверность (Veracity)
Достоверность подразумевает полноту и общую точность данных. Именно на основе достоверных данных (особенно финансовых) компании принимают важные решения. Тем не менее стопроцентная достоверность требуется не всегда. Так, это некритично для часто обновляемых данных из соцсетей. Даже если несколько десятков или сотен записей окажутся неверными, на общую статистику это не повлияет.
Изменчивость (Variability)
Существует немало факторов, влияющих на изменение потоков данных: например, сезонность в ряде отраслей бизнеса или время суток, от которого зависит активность пользователей приложения или социальной сети. Таким образом, частота обновления данных может снижаться или увеличиваться.
Кроме того, сам формат данных может меняться: могут добавляться и убавляться поля в JSON, пропадать столбцы в таблицах, меняться расширения файлов и т.д.
Ценность (Value)
Ценность определяется исключительно пользой, которую может извлечь компания из собираемых данных. Это совокупный фактор, определяемый всеми или некоторыми из перечисленных выше характеристик: например, достоверностью, скоростью и изменчивостью.
Как собирают и хранят большие данные
Основными источниками Big Data сегодня являются:
- устройства Интернета вещей (IoT),
- социальные сети,
- интернет-сервисы (порталы услуг, интернет-магазины),
- оборудование и приборы различного типа,
- медицинские и социальные организации.
Современные вычислительные мощности позволяют получать мгновенный доступ практически к любому объему данных, поскольку данные хранятся в дата-центрах (ЦОД, центрах обработки данных) на серверах с современными комплектующими. Некоторые компании все еще хранят данные «по старинке», то есть на собственных физических серверах, однако удобнее и надежнее хранить и работать с Big Data в облаке.
Типы систем хранения данных: Data Lake и Data Warehouse
Data Warehouse
Когда мы говорим о Data Warehouse, подразумеваем специализированные СУБД, в которые стекаются данные определенного вида. Data Warehouse работает по типу детской игрушки с геометрическими отверстиями, куда нужно правильно отправить фигурки соответствующей формы. Фигуры другой формы туда не пройдут. Так же, как и игрушки, Data Warehouse собирает структурирует данные по заранее определенному сценарию.
Как правило, такая база разработана для конкретных бизнес-целей – например, компании нужно вычислить самый хорошо продаваемый продукт или самый активный сегмент ЦА.
В Data Warehouse мы имеем дело с различными таблицами, в которых размещена структурированная информация, и связями между ними. Поскольку мы имеем дело с понятными сущностями таблиц и уже преобразованными («очищенными») данными, как правило, DWH более прост в понимании и использовании.
Отметим и недостатки:
- Такой подход хранения подходит не всем компаниям. DWH может не учитывать часть данных, которые не вписываются в хранилище. Если компания работает с большим количеством сложно структурированных данных, велика вероятность, что пользы от такого хранилища данных она не получит.
- Data Warehouse — недешевый инструмент, особенно если нужно обрабатывать большие объемы данных. Кроме того, на данный момент часть СУБД недоступна для пользователей из РФ.
Инструменты для хранения больших данных: обзор популярных СУБД
Для работы с Big Data используют различные СУБД, предлагающие специалистам широкие возможности для интеграции, управления и подготовки больших данных для анализа.
Рассмотрим наиболее популярные решения и их особенности. Мы не рассматриваем подробно такие СУБД, как Exasol, Teradata, Vertica, поскольку на данный момент они недоступны для пользователей РФ.
ClickHouse
ClickHouse — это СУБД (система управления базами данных) столбцового (колоночного) типа, разработанная для быстрой обработки структурированных данных Big Data в реальном времени. ClickHouse обеспечивает высокую скорость чтения SQL-запросов благодаря оптимизированной сортировке данных, векторным вычислениям, распараллеливанию операций и поддержке приближенных вычислений. Особенностью ClickHouse является то, что эта СУБД может работать на обычных жестких дисках, а не только в оперативной памяти (как многие столбцовые СУБД).
Плюсы ClickHouse
- очень быстрое чтение,
- высокопроизводительная СУБД, так как написан на C++,
- удобно реализованы распараллеливание и векторизация,
- быстрый парсинг JSON
- и другие дополнительные возможности (подробнее читайте в тексте).
Минусы ClickHouse
- нужно группировать данные перед записью и записывать батчами,
- нет классических JOIN-операций,
- нет полноценных транзакций,
- достаточно сложна в настройке.
- нет возможности быстрого удаления или изменения записанных данных с повышенной частотой запросов.
Greenplum
Еще одна популярная СУБД, облегчающая жизнь тем, кто работает с большими данными объемом от нескольких терабайт. Основу Greenplum составляет интегрированная СУБД PostgreSQL, а также технология массивно-параллельной обработки данных, или MPP.
MPP позволяет разбивать данные по разным серверам и выполнять запросы к ним в автоматическом режиме. Выполнять один и тот же запрос можно на множестве наборов данных. Такое автоматическое шардирование исключает перегрузку отдельных серверов.
Плюсы Greenplum
- хорошая производительность, обеспечиваемая за счет развертывания нужного количества нод на PostgreSQL,
- совместимость с проектами на Postgres, поскольку Greenplum на нем основан,
- широкая поддержка транзакций,
- многие проблемы БД давно известны и решены,
- поддержка разных видов репликации и шардинга.
Минусы Greenplum
- не всегда сборки Greenplum базируются на свежих версиях Postgres,
- отсутствуют инструменты для инкрементального бэкапа.
Сравниваем СУБД: ClickHouse, Exasol, Greenplum, Teradata, Vertica
Для удобства свели главные особенности интересующих нас СУБД в таблицу. Для полноты сравнения добавили информацию по отсутствующим на рынке РФ СУБД. Hadoop не добавили, потому что инструмент не является базой данных как таковой.
ClickHouse | Exasol | Greenplum | Teradata | Vertica | |
Open Source | да | нет | да | нет | да (но на данный момент СУБД недоступна для РФ) |
Вторичные модели СУБД | временных рядов | нет | пространственная, хранилище документов | пространственная, хранилище документов, временных рядов, графовая | пространственная, временных рядов |
Поддержка XML | нет | нет | да | да | нет |
Вторичные индексы | да (с движком MergeTree) | да | да | да | не требуются |
Поддержка SQL | частичная | да | да | с расширениями | полная |
Поддерживаемые ЯП | C++, остальные со сторонними библиотеками | Java, Lua, Python, R | C, Java, Perl, Python, R | C, C++, Cobol, Java, Perl, PL/1, Python, R, Ruby | C#, C++, Java, Perl, PHP, Python, R |
Скрипты на стороне сервера | нет | функции, определяемые пользователем | да | да | да |
Триггеры | нет | да | да | да | да |
MapReduce | нет | да | да | нет | нет |
Внешние ключи | нет | да | да | да | да |
Возможность хранения только в памяти | да | да | нет | да | нет |
Базы данных Greenplum и ClickHouse есть в готовой платформе обработки данных от Selectel. Подробнее читайте в тексте →
В отличие от подхода Data Warehouse, архитектура Data Lake («озеро данных») подразумевает наличие хранилища, куда стекаются и где хранятся все необработанные данные в исходном формате, то есть без преобразования. Данные могут быть самыми разными: структурированными, неструктурированными и слабо структурированными. Каждый элемент в таком хранилище наделяется уникальным идентификатором и набором тегов.
Data Lake
Возвращаясь к аналогии с детскими игрушками, Data Lake — это скорее бокс, куда складываются все существующие игрушки. Какие в этом плюсы?
- подход дает большую гибкость в работе с данными: если компания не знает, какие именно данные и в каком формате нужны бизнесу, проще слить всю информацию в Data Lake, а уже после находить в нем золото,
- «озера данных» обычно дешевле по стоимости занимаемых ресурсов,
- такое хранилище чаще всего организовывается в облаке, поэтому его проще масштабировать, так как мы работаем с виртуальными дисками.
Теперь к ограничениям:
- Data Lake может требовать большей квалификации специалистов для работы с данными и получения ценности из них; часто поверх DL нужно надстраивать дополнительное ПО для трансформации данных — так происходит переход к парадигме Data Lakehouse, которая исключает многие недостатки DWH и DL.
- при неправильно выстроенных процессах легко превращается в бардак, так называемый Data swamp («болото»).
Способы организации Data Lake
Можно выделить три способа:
- использование Hadoop (HDFS),
- организация собственного S3-хранилища,
- использования готового решения от провайдера.
Hadoop (HDFS)
Hadoop — это программная среда, предназначенная для вычислений Big Data. Hadoop используется для хранения и обработки любых типов данных (структурированных, слабо структурированных и неструктурированных). А архитектура платформы основана на трех компонентах: HDFS (собственная файловая система для хранения больших данных), MapReduce (модель распределенных вычислений, разработанная Google) и YARN.
Hadoop — экосистема компонентов для работы с данными, поэтому напрямую сравнивать ее с S3 будет некорректно. В рамках этого блока рассмотрим именно HDFS (Hadoop Distributed File System) — распределенная файловая система Hadoop для хранения больших файлов с возможностью потокового доступа к информации.
Плюсы HDFS
- большой размер блока по сравнению с другими файловыми системами,
- файлы пишутся однократно, что исключает внесение в них любых произвольных изменений,
- принцип WORM (Write-once and read-many) полностью освобождает систему от блокировок типа «запись-чтение»; запись в файл в одно время доступен только одному процессу, что исключает конфликты множественной записи.
- HDFS оптимизирована под потоковую передачу данных,
- самодиагностика — каждый узел данных через определенные интервалы времени отправляет диагностические сообщения узлу имен, который записывает логи операций
Минусы HDFS
- сервер имен является центральной точкой всего кластера и его отказ повлечет сбой системы целиком,
- нельзя дописывать или оставлять открытыми для записи файлы в HDFS, за счет этого в классическом дистрибутиве Apache Hadoop невозможно обновлять блоки уже записанных данных,
- нет поддержки реляционных моделей данных.
Развертывание собственного S3-хранилища
Организовать локальную S3 можно на собственном или арендованном сервере. У этого подхода есть несколько минусов. Вы потратите время разработчиков на организацию собственного хранилища (это нетривиальная задача). Также, возможно, вам придется нанимать новых сотрудников для реализации проекта. Если вы будете развертывать хранилище на физических серверах, вам придется докупать или арендовать серверы по мере роста количества данных (если ваш сервис подразумевает накопление данных, а не только хранение статики). Не стоит забывать и о необходимости резервирования инфраструктуры — добавим к затратам один-два сервера для репликации данных. Если у вас on-premises, добавьте к статье расходов штатного сисадмина и обслуживание инфраструктуры.
Готовое облачное хранилище от провайдера
Готовое облачное хранилище исключает минусы, перечисленные в предыдущем блоке:
- У вас уже есть готовый к работе storage — просто приносите данные.
- Специалисты компании обслуживают как работу хранилища, так и инфраструктуру под ним.
- Гибкость облака позволит легко масштабировать кластеры под рост объема данных.
- Облачное хранилище легче связать с другой инфраструктурой проекта — например, веб-серверами или базами данных (если другую инфраструктуру также арендуете у провайдера). Трафик между элементами системы тарифицироваться не будет.
- Готовые хранилища, как правило, подразумевают встроенную репликацию данных. Например, в Selectel объектное хранилище хранит данные в трех копиях.
Объектное хранилище Selectel
Храните данные аналитики и датасеты для ML-обучения в S3-хранилище, соответствующем 152-ФЗ.
Облачное хранилище можно легко использовать для хранения данных и датасеты для ML-обучения.
Готовые решения есть и у зарубежных облачных провайдеров, но в работе с ними есть ряд ограничений.
Проблемы облачных сервисов за пределами РФ
- Самая важная проблема — в том, что на данный момент их просто не купить либо сделать это очень и очень сложно.
- Также существуют законодательные ограничения. В соответствии с постановлением Правительства РФ № 728 от 26.06.2018 г. хранение данных пользователей российских компаний допускается только на территории РФ. Не стоит забывать и о законе «О персональных данных» (152-ФЗ), в котором четко прописаны критерии безопасности хранения данных, в том числе ограничения и даже запрет на передачу персональных данных на территории других государств.
- Еще одна проблема связана с языковым барьером. Поддержку на русском языке предоставляют далеко не все зарубежные сервисы, а привлечение таких специалистов за границей обойдется недешево. Кроме того, на стоимость облачных услуг оказывают влияние и колебания курса валют.
- Наконец, при работе с большими данными требуется канал с большой пропускной способностью. Однако при размещении облачных серверов за границей увеличивается количество точек связности, что снижает скорость передачи Big Data. А при увеличении предела канала придется платить значительно больше.
Сложности Big Data Storage
Ни одна технология не обходится без подводных камней. Есть свои проблемы и у хранения Big Data:
- Большим данным нужна серьезная инфраструктура, которая могла бы справляться с хранением таких объемов информации. Поэтому во многих случаях для этого потребуется довольно сильно вложиться в аренду инфраструктуры.
- Для создания аналитической модели требуется время и солидные массивы данных.
- Трудности представляет и выбор стека технологий под конкретные задачи. Но можно с уверенностью сказать, что с любыми данными, попадающими в категорию Big Data, удобнее, безопаснее и дешевле работать в облаке (исключение могут составлять банковские системы). Тем более, что современные облачные провайдеры предлагают любое необходимое ПО, часто уже полностью готовое к работе.
Работа с Big Data: кто уже использует хранилища больших данных
Программные решения для хранения и обработки больших данных используются сегодня во многих отраслях:
- Структуры государственного управления. Анализ Big Data помогает членам правительств разных стран принимать более взвешенные решения в различных областях: здравоохранении, социальной сфере, экономике, безопасности.
- Промышленные предприятия. Благодаря обработке больших данных руководители предприятий и аналитики сегодня используют методику «предиктивного производства», которая повышает точность прогнозирования спроса.
- Медицина. Анализ данных, собираемых медучреждениями и устройствами IoT (например, фитнес-трекерами), в сочетании с ИИ помогает медикам разрабатывать новые лекарственные препараты и улучшать диагностику заболеваний и лечение пациентов.
- Продажи. За счет обработки Big Data компании в сфере ритейла могут персонализировать ассортимент, повышать качество доставки и удерживать клиентов.
- Интернет вещей. Устройства IoT посылают ценные данные, анализ которых позволяет улучшать эти приборы.
- Недвижимость. Собираемые данные используются для удобства поиска объектов недвижимости. Пользователи сайтов получают персонализированные предложения и могут осматривать понравившиеся дома и квартиры без участия продавца, даже не выходя из дома.
- Спорт. В командных видах спорта обработка огромных объемов информации по игрокам помогает клубам вести качественную селекцию и готовиться к играм с соперниками.
- Сельское хозяйство. Собираемые данные с метеодатчиков позволяют строить прогноз погоды буквально по часам, что помогает сельскохозяйственным предприятиям оперативно реагировать на ситуацию.
Немного статистики
В 2012 году общий объем цифровых данных составил 2,7 зеттабайт (или 2,7 млрд ТБ), увеличившись по сравнению с 2011 годом на 50%. В 2015 году он увеличился еще в 2,4 раза, превысив отметку в 6,5 ЗБ. И с этого момента количество данных в мире начало расти экспоненциально. Причина: накопление больших объемов Big Data, которые чаще генерируются не пользователями, а самими компаниями.
Также наблюдается устойчивый рост прибыли компаний, работающих с большими данными. Уже в 2018 году прибыль от их использования превысила 160 млрд долларов, а в 2019-м вышла на отметку $189 млрд. В настоящее время лидером по обработке больших данных является США, где с этой информацией работает уже более 55% представителей крупного и среднего бизнеса. Не отстает и Китай, где принято более 200 законов по защите персональной информации пользователей.
В России же рынок больших данных делает только первые шаги. С Big Data у нас работают пока только крупные IT-компании и банки. Однако уже есть отечественные компании, специализирующиеся именно на работе с Big Data, — например, Mediascope и oneFactor.
Обзор технологии Big Data в бизнесе
Польза для бизнеса от Big Data связана, во-первых, с возможностью улучшения клиентского опыта от конкретных продуктов или услуг. Во-вторых, большие данные помогают определять перспективные продукты. И в-третьих, анализ Big Data позволяет компаниям привлекать и удерживать клиентов. Например, анализируя трафик абонента, интернет-провайдер может определить, собирается ли человек пользоваться услугой дальше или склонен перейти к другому провайдеру. Это позволяет оперативно реагировать, предлагая клиенту более выгодные условия и качественное обслуживание.
Уровни зрелости аналитики в компании
Кратко опишем, какая аналитика доступна компаниям в зависимости от их уровня зрелости:
- Описательная аналитика. Ее целью является предоставление конкретных фактов: например, сколько пользователей вчера заходили или зарегистрировались в приложении.
- Диагностическая аналитика. Также встречается термин факторный анализ, из чего понятно, что при таком анализе на первый план выходят причины изменений. Пример: поступили данные о выходе из строя устройства IoT. Задача диагностического анализа в том, чтобы разобраться, почему это произошло.
- Прогнозная аналитика. Статистические модели позволяют на основе получаемых данных делать прогнозы о вероятных сценариях развития в какой-либо сфере: от курса ценных бумаг и роста продаж до прогноза погоды.
- Предписательная аналитика. Современный аналитический метод, в основе которого лежат рекомендации ИИ по дальнейшим действиям. Однако конечное решение все равно остается за человеком, а ИИ должен рассматриваться лишь как умный помощник, предлагающий различные варианты.
Заключение о технологиях хранения больших данных
Потенциал Big Data огромен и вывод напрашивается сам собой: работать с большими данными сегодня выгодно многим компаниям. Причем независимо от того, насколько крупная ваша компания и какова ее специфика. Часто лучшим решением является размещение инфраструктуры по сбору и обработке Big Data в облаке.