По данным аналитиков, 53% компаний используют платформы Big Data Analytics. Подобные новости побуждают задуматься о том, почему многие корпорации еще не внедрили Big Data. С одной стороны, мы являемся свидетелями потока данных, который нуждается в масштабируемых решениях для извлечения ценности из большого объема Data. С другой стороны, технологии больших данных (БД) как правило представляются в качестве основного ответа на такую потребность. Однако, кажется, что индустрия не убеждена в обещаниях Big Data. Эта проблема возникает из-за отсутствия глубоких знаний о том, что такое проблема больших данных и в чем заключаются преимущества и недостатки имеющихся технологий БД.
Управление и анализ крупномасштабных наборов данных обычно ассоциируются с термином "большие данные". Big Data - это практика сбора и обработки огромных массивов информации, систем и алгоритмов, используемых для анализа этих массивных наборов. Big Data относится к большим разнородным объемам автономных источников с распределенным и децентрализованным контролем, пытаясь исследовать сложные и развивающиеся взаимосвязи между данными.
В связи с распределенной обработкой большого количества узлов необходимо, чтобы управление данными в Big Data рассматривалось как частое событие, а не как исключение из процесса обработки. Тем временем, Gartner представил большие данные, характеризующиеся тремя показателями: объем, разнообразие и скорость. В дальнейшем определение трех компонентов было расширено до четырех (был добавлен показатель "стоимость").
Все технологии БД должны требовать:
- отказоустойчивости,
- масштабируемости,
- гибкости,
- распределяемой архитектуры,
- общего хранения и реструктуризации больших массивов информации, порядка терабайт.
Кроме того, платформа БД с экосистемой услуг и технологий должна также обеспечивать:
- управление ресурсами,
- управление данными,
- мониторинг.
Попробуем сравнить различные технологии и аналитические платформы Big Data по следующим категориям: обработка (потоковая и пакетная), хранение, интеграция данных, аналитика, управление и мониторинг. Как правило, прежде чем принять решение о выборе подходящей технологии или платформы, пользователь/организация изучает, что такое приложение/алгоритм и что может обеспечить каждая технология/платформа.
Технологии больших данных
Здесь вы найдете краткое описание некоторых из этих технологий и их сравнение по некоторым категориям проблем.
Обзор технологий БД
В данном разделе представлен обзор наиболее широко используемых и недавно обсуждавшихся технологий больших данных. Давайте рассмотрим основные характеристики YARN/Hadoop, Spark, Flink и Hyracks/ASTERISK.
Во многих сценариях с БД Apache Hadoop фактически стал стандартом для обмена данными и вычислительными ресурсами и доступа к ним. Hadoop - это масштабируемая платформа с открытым исходным кодом, позволяющая разделить вычислительные процессы на множество серверов, которые не обязательно являются высокопроизводительными. Он состоит из двух основных компонентов: движка выполнения MapReduce и DFS (распределенная файловая система) под названием HDFS - Hadoop Distributed FileSystem.
Преимущества Hadoop в основном заключаются в высокой гибкости, масштабируемости, низкой стоимости и надежности для управления и эффективной обработки большого объема структурированных и неструктурированных наборов информации, а также составления графиков работы для балансировки нагрузки на данные, ресурсы и задачи. Hadoop эволюционировал в YARN - еще один ресурс, архитектура которого отделяет модель программирования от системы управления ресурсами LADaS 2018 - Latin America Data Science Workshop infrastructure и делегирует многие функции планирования для отдельных компонентов приложения.
Сравнение технологий БД
Компании, использующие технологии БД, обычно сталкиваются с такими проблемами, как:
- хранение таких разнородных источников, как структурированные, неструктурированные и полуструктурированные данные;
- необходимость получения знаний из больших и разнородных наборов данных путем не только применения запросов SQL, но и выполнения сложных алгоритмов машинного обучения или графических расчетов;
- постоянное получение потоков информации, которые должны постоянно обрабатываться в течение (почти) миллисекунд аналитического времени.
Потоковая обработка.
При потоковой обработке данные обрабатываются, и результаты получаются строго в пределах определенных временных ограничений (часто в порядке миллисекунд, а иногда и микросекунд, в зависимости от приложения и требований пользователя). Например, Spark Streaming получает входные потоки информации в режиме реального времени и делит их на микропакеты, которые обрабатываются механизмом Spark и используются для получения конечного потока результатов в пакетах.
Микропакетирование позволяет обрабатывать поток как последовательность небольших пакетов или кусков кода. Тем не менее, это может привести к значительным накладным расходам в форме планирования задач. С другой стороны, Flink может предоставить все преимущества буферизации без дополнительных затрат на планирование задач. Flink также может хорошо работать в режиме "здесь и сейчас", данные должны быть доступны почти в тот же самый момент, что и генерация информационного кода.
Общее хранилище.
HDFS может хранить разнообразные сочетания структурированных, неструктурированных и полуструктурированных данных. Hyracks может потреблять данные из HDFS, а также предоставляет хранилище данных AsterixDB для получения, хранения, индексации, запроса и анализа объема БД с помощью гибкой модели (ADM). Spark поддерживает интеграцию с широким спектром файловых систем, включая HDFS, MapR File System, Cassandra, Amazon S3 или реализацию индивидуальных решений. Flink позволяет интегрировать разнородные наборы информации, начиная от строго структурных реляционных, неструктурированных текстовых и полуструктурированных данных.
Платформы БД
Эти платформы представляет собой экосистему услуг и технологий, требующую проведения анализа объемных, сложных и динамических данных. Таким образом, масштабирование аппаратной платформы становится неизбежным, и выбор правильных аппаратных/программных технологий становится решающим решением для удовлетворения потребностей пользователей в разумные сроки. Недавно появился ряд платформ БД, включая Big Data Europe (BDE), Hortonworks 2 и Cloudera3.
Сравнение платформ больших данных
Далее рассмотрим ряд повторяющихся проблем (с которыми обычно сталкиваются организации), которые могут затруднить работу с БД:
- интеграция различных источников больших данных и обеспечение прозрачного представления пользователям;
- управление и защита активов организации с целью гарантировать общедоступность, правильность, полноту и безопасность корпоративных данных;
- мониторинг информации, ресурсов и приложений для анализа и оценки здоровья и производительности всей системы в целом.
Интеграция данных.
Интеграция предполагает объединение данных из различных источников и предоставление пользователям единого представления о них. HDP сотрудничает с Talend, мощным и универсальным решением с открытым исходным кодом для интеграции БД, которое изначально поддерживает Hadoop, включая разъемы для HDFS, HBase, Pig, Sqoop и Hive, без необходимости писать какой-либо код. Talend также поддерживает Cloudera Navigator. Другой альтернативой для HDP является Oracle Data Integrator (ODI). Пользователь может создавать поток из источников в объекты различных технологий, включая реляционные базы данных, приложения, XML, JSON, Hive таблицы, HBase, HDFS файлы и так далее. Платформа BDE выходит за рамки HDP и Cloudera и включает в себя Semantic Data Lake - хранилище, предназначенное для обработки и анализа наборов кодов в их оригинальных форматах, названное Онтарио.
Онтарио создает семантический слой на вершине озера Данных, который отвечает за картирование данных в существующие семантические словари/антологии. Успешный процесс картирования, получивший название Semantic Lifting, обеспечивает обзор всех данных. Таким образом, данные могут быть извлечены, запрошены или проанализированы из неоднородных источников в озере, как если бы они были в одном формате, используя язык запросов высокого уровня. Другим важным компонентом является Semagrow, система обработки запросов SPARQL, которая объединяет несколько удаленных конечных точек.