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

В настоящее время существует множество решений для хранения и анализа «больших данных» (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» системы если у вас есть нереляционные, полуструктурированные или неструктурированные данные, и схема данных не определена.

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

Анализ «больших данных» для финансового сектора

Публикую демонстрационный сценарий анализа «больших данных» (Big Data) для компаний финансового сектора. В сценарии будут проанализированы полу-структурированные данные по стоимости акций и дивидендам в разрезе соответствующих отраслей экономики за 30 лет (на основании данных Нью-Йоркской фондовой биржи). Аналогичные задачи могут быть актуальны для участников рынка ценных бумаг включая частных и институциональных инвесторов, таких как пенсионные фонды, банки, страховые компании, а также корпорации, размещающие на рынке собственные ценные бумаги.

В этой демонстрации команда компании, торгующей ценными бумагами, совместно производит анализ данных из Hadoop:

  1. Архитектор данных собирает информацию и делает ее доступной для других участников. Он использует Hadoop в Windows Azure и запросы Hive для агрегирования (укрупнения) стоимости акций и дивидендов по годам.
  2. Финансовый аналитик анализирует данные по стоимости акций и готовит отчеты для поддержки задач торговли и управления. Она использует надстройку Power Query для Excel для объединения данных из Hadoop с дополнительным набором данных по 500 наиболее крупным компаниям из Azure Marketplace Datamarket. Дополнительно она формирует модель данных Power Pivot и создает примеры отчетов Power View.
  3. Начальник управления ценных бумаг отвечает за формирование предложения по составу портфелей ценных бумаг для клиентов. Он самостоятельно производит изменения в отчеты Power View, полученные от финансового аналитика.

Ниже приведены некоторые снимки экрана из демонстрационного сценария.

role1-rus

role1-1

role1-2

role2-rus

role2-1

role2-2

role3-rus

role3-1

role3-2

 

 

Презентация для Открытого университета Сколково

Выкладываю презентацию по теме «Новые методы хранения, обработки и передачи данных», по которой я вчера делал доклад для Открытого университета Сколково.

Иван Косяков – Новые способы хранения обработки и передачи данных

«Большие данные» и HDInsight (Hadoop от Microsoft) для обработки петабайт информации

Последняя версия этой статьи: https://microsoftbi.ru/basics/bigdata/hdinsight/

В настоящее время становятся все более актуальными решения для работы с большими объемами данных (в английской терминологии – «Big Data»). Под «большими данными» понимаются данные больших объемов (петабайты информации), возникающие или обновляющиеся с большой скоростью, а также данные с большим разнообразием типов данных.

Примеры сценариев использования «больших данных»:

  • анализ социальных сетей;
  • мониторинг и оптимизация дорожного движения, работы веб-приложений, оборудования;
  • анализ ухода клиентов;
  • исследование природных ресурсов, медицинские и прочие научные исследования;
  • обнаружение мошенничества;
  • анализ рекламных кампаний.

Решение Microsoft для работы с большими данными состоит из задач:

  • управления данными, которое реализуется через SQL Server Parallel Data Warehouse для управления сотнями терабайт структурированных данных; SQL Server StreamInsight для выявления сложных событий в реальном времени и HDInsight для обработки петабайт неструктурированной информации;
  • обогащения данных через каталог статистических данных Azure Marketplace Datamarket;
  • исследования данных с помощью PowerPivot и Power View для Excel и SharePoint.

Hadoop

Архитектурно Hadoop состоит из файловой системы Hadoop Distributed File System (HDFS) и механизма вычислений MapReduce, поверх которых могут использоваться различные расширения.

Структура узлов HDFS

Hadoop Distributed File System (HDFS) – это файловая система, предназначенная для хранения очень больших файлов с возможностью потокового доступа к данным, работающая на кластерах из произвольного аппаратного обеспечения.

Файлы в HDFS разбиваются на блоки, если размер файла превышает размер блока. По умолчанию размер блока в HDFS может составлять 64, 128 или 256 Мбайт, и каждый блок реплицируется в трех экземплярах.

Кластер HDFS состоит из управляющего узла (NameNode) и узлов хранения данных (DataNode). NameNode управляет пространством имен файловой системы (дерево файлов и мета-данные файлов и каталогов).

При чтении файла из HDFS клиент получает адреса расположения блоков от управляющего узла и самостоятельно осуществляет последовательное чтение с узлов блоков файла. При этом для каждого блока выбирается «ближайший узел».

Благодаря тому, что клиент извлекает данные с узлов данных напрямую HDFS может масштабироваться до большого количества конкурентных клиентов, т.к. трафик распределен между узлами данных в кластере.

Механизм MapReduce

Поверх файловой системы HDFS находится механизм MapReduce, который позволяет на уровне узлов данных сделать извлечение данных и расчет на основании этих данных, а на главном узле подготовить общий ответ на основании данных от всех узлов данных.

Microsoft HDInsight

25 октября 2012 года на конференции Strata Conference-Hadoop World было представлено решение HDInsight (Hadoop для Windows), которое может быть размещено как в пределах собственных корпоративных центров данных организаций, так и в облаке. В текущий момент с сайта microsoft.com/bigdata можно скачать предварительную версию HDInsight для изучения и функционального тестирования.

Открытые компоненты для Hadoop

Существует множество компонентов Hadoop, которые можно использовать в проектах на базе HDInsight. Ниже приведен список наиболее значимых компонентов.

  • Java, Phython, JavaScript, .NET, C# (языки разработки);
  • HBase (OLTP база данных);
  • Pig (организация потоков данных);
  • Sqoop (перемещение больших объемов данных);
  • Hive ODBC Driver (доступ к данным, в том числе из PowerPivot);
  • HCatalog (управление мета-данными);
  • Pegasus (интеллектуальный анализ графов);
  • Hive (SQL-подобное хранилище данных);
  • Mahout (машинное самообучение);
  • R (статистический пакет).

Дополнительные материалы

  1. Официальный сайт Microsoft Big Data
  2. Microsoft at Strata-Hadoop World 2012
  3. Simplifying Big Data for the Enterprise
  4. Материалы конференции Strata Conference-Hadoop World