Дерево выбора решения для «больших данных»

В настоящее время существует множество решений для хранения и анализа «больших данных» (Big Data). В этой статье мы рассмотрим упрощенное дерево выбора решения в зависимости от имеющихся требований.

Замечание. Процесс выбора решения для проектов Big Data является очень сложным с большим количеством факторов. В этой статье я представил наиболее важные из них, основываясь на своем опыте. Вы можете использовать материалы в качестве первого приближения, чтобы начать более глубоко исследовать приведенные и, возможно, другие существующие решения.

Вот список наиболее важных продуктов, которые Майкрософт предлагает для использования в локальных центрах обработки данных (ЦОД) и в «облаке»: Analytics Platform System (APS), Apache HBase, Apache Spark, Apache Storm, Azure Data Lake Analytics (ADLA), Azure Data Lake Store (ADLS), Azure Document DB, Azure Stream Analytics (ASA), Azure SQL DB, Azure SQL DW, Hortonworks Data Platform (HDP), HDInsight, Spark Streaming и так далее. Как вы можете видеть, их достаточно много, поэтому требуется некоторый формальный способ выбора правильного решения для решения задач «больших данных».

«Большие данные» часто характеризуются как решение как минимум одной из трех проблем («3V»), поэтому выбор правильного решения зависит от того, какую из этих проблем мы пытаемся разрешить:

  • Объем данных (volume): требуется хранить и делать запросы к сотням терабайт данных и более, и объем данных постоянно растет. Система обработки данных должна масштабироваться, чтобы обрабатывать увеличивающийся объем данных, обычно за счет распределения нагрузки между множеством серверов.
  • Скорость (velocity): необходимо собирать данные в ускоренном темпе от различных типов устройств, от быстро растущего количества пользователей, а также от растущего количества устройств и приложений в расчете на пользователя. Системы обработки должны возвращать результаты в пределах небольшого промежутка времени, часто почти в реальном времени.
  • Разнообразие (variety): ситуация, когда данные не соответствуют какой-либо схеме данных – полуструктурированные или неструктурированные данные.

Часто вы будете использовать комбинацию из решения для приведенных выше задач.

Давайте посмотрим на дерево выбора, которые отталкивается от указанных задач и ведет к соответствующим решениям (вы можете также скачать схему в высоком разрешении для печати). Далее я приведу некоторые комментарии по каждой из систем.

big-data-dt-rus-v1-08-2

Для решения одной из трех категорий задач больших данных предназначенные соответствующие группы решений:

  • Хранилища данных (ХД или DWH – Data Warehouse) – это центральные реляционные репозитории данных, загруженных из одного или более отличающихся источников данных. В них хранятся текущие и исторические данные, и они используются для различных аналитических задач в организациях. Используйте ХД если у вас есть структурированные реляционные данные с заранее спроектированной схемой данных.
  • Обработка сложных событий (Complex Event Processing, CEP) – это метод отслеживания и обработки потоковых данных из множества источников событий, метод идентификации наиболее значимых событий или их комбинации, и последующей выработки соответствующих заключений, а также способ быстрой реакции на эти события. Используйте «CEP» если вам нужно обработать сотни тысяч событий в секунду.
  • «NoSQL»-системы предоставляют механизм хранения и извлечения нереляционных данных. Характеристики «NoSQL»: простота структуры, горизонтальное масштабирование кластеров. Структуры данных используемые «NoSQL» базами данных (например, ключ-значение, широкие колонки, графы, документы) являются более гибкими, и поэтому их сложнее хранить в реляционных базах данных. Используйте «NoSQL» системы если у вас есть нереляционные, полуструктурированные или неструктурированные данные, и схема данных не определена.

Детализация доступна в английской версии статьи.