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

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

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

Azure Data Factory для перемещения и преобразования данных

Azure Data Factory (или Фабрика данных) – это интеграционный «облачный» сервис, который позволяет формировать и автоматизировать перемещение и преобразование данных с использованием локальных и «облачных» источников данных.

azure-df-flow

Azure Data Factory (DF) позволяет комбинировать сервисы в управляемые конвейеры потока данных (data flow pipelines). Для преобразования данных можно использовать следующие сервисы:

  • Azure HDInsight (Hadoop) и Azure Batch для обработки «больших данных»;
  • Azure Machine Learning для продвинутой аналитики и машинного обучения;
  • Azure Stream Analytics для обработки большого количества событий в «реальном времени» и т.д.

Примеры источников данных:

  • Azure Data Warehouse – для создания реляционного хранилища данных;
  • Azure Blob Storage – для дешевого хранения больших объемов неструктурированных и полу-структурированных данных
  • Azure Data Lake – для хранения и скоростной обработки «больших данных» и т.д.

Пример использования: Мониторинг и прогнозирование неполадок автомобилей с помощью Cortana Analytics Suite.

Дополнительно: Introduction to Azure Data Factory Service

Мониторинг и прогнозирование неполадок автомобилей с помощью Cortana Analytics Suite

Давайте рассмотрим сценарий продвинутой аналитики, демонстрирующий как авто-дилеры, страховые компании и производители автомобилей могут использовать Cortana Analytics Suite включая Power BI в решении для получения аналитики реального времени и предсказаний работоспособности автомобилей и поведенческих шаблонов при вождении для улучшения качества езды, улучшения автомобилей и маркетинговых компаний.

Архитектура решения приведена на следующем рисунке:

CCArchitecture

Потоковые данные с датчиков автомобиля по сети Интернет поступают в Event Hub. Далее они поступают на вход Azure Stream Analytics (ASA).

В ASA настроены три постоянных запроса над входным потоком данных, каждый из которых обогащаются информацией о параметрах автомобилей из каталога автомобилей, хранящегося в Azure Blob Storage:

  1. Запрос №1 содержит данные по каждому автомобилю для отражения в реальном времени в Power BI.
  2. Запрос №2 отправляет данные по автомобилям в хранилище Blob Storage (это «большие данные» с точки зрения объемов информации; такие объемы выгодно хранить в Azure Blog Storage, т.к. в этом случае стоимость хранения минимальна).
  3. Запрос №3 агрегирует информацию по каждой модели и городу для сохранения в реляционном хранилище Azure DW для последующего отражение исторической отчетности.

Компонент решения Azure Data Factory выполняет интеграционную задачу. На основании файла, сгенерированного в ходе выполнения запроса №2 в ASA, в Blob Storage формируются три таблицы с выделением сведений об эффективности использования горючего, об агрессивности вождения и о возможных аномалиях.

CC-demo-ADF

За формирование этих дополнительных таблиц отвечают скрипты Hive, в которых задается структура таблиц над CSV-файлами, а затем выполняется агрегирование информации с помощью INSERT-запросов.

CC-demo-ADF-hive

Выборка данных об аномалиях направляется в сервис Azure Machine Learning, где формируется прогноз по возможному выходу автомобилей из строя. Благодаря этому прогнозу можно проактивно заказывать требуемые компоненты на замену и выполнять техническое обслуживание автомобилей (это сводит к минимуму простои оборудования).

Пример пакета по выбору и обучению модели для обнаружения аномалий приведен на следующем снимке экрана.

CC-demo-AML

Далее информация из файлов в Blob Storage направляется в хранилище Azure Data Warehouse и отражается на информационных панелях Power BI. Другая часть данные поступает напрямую из ASA и отражается в Power BI в «реальном времени».

CC-demo-powerbi

Используемые в сценарии технологии: Event Hub, Azure Stream Analytics, Azure Machine Learning, Azure Data Factory, HDInsight, Azure Storage, Azure DW, и Power BI.

Пакет Cortana Analytics

Cortana Analytics – это полностью управляемый пакет решений в «облаке» (Microsoft Azure) по обработке «больших данных» и продвинутой аналитике, который позволяет трансформировать данные организаций (полученных из бизнес- и пользовательских приложений, а также с сенсоров и устройств) в обоснованные управленческие решения (в виде рекомендаций для персонала) или действия (например, в автоматизированных системах).

Cortana Analytics Suite Goal

Cortana Analytics Suite включает следующие продукты и возможности (также см. рисунок ниже):

  • Сконфигурированные бизнес-сценарии: рекомендации, прогнозирование, предотвращение ухода клиентов и т.д.;
  • Персональный цифровой ассистент: Cortana;
  • Распознавание персональных взаимодействий и намерений: распознавание лиц, комьютерное зрение, распознавание речи и анализ текстов;
  • Информационные панели и визуализация: Power BI;
  • Машинное обучение и аналитика: Azure Machine Learning, Azure HDInsight (развитие системы Hadoop), Azure Stream Analytics (анализ потоковых данных — «облачный» вариант технологии StreamInsight);
  • Хранилища больших данных: Azure Data Lake (репозитарий «больших данных» на базе HDFS), Azure SQL Data Warehouse (масштабируемое хранилище данных — «облачный» вариант APS-PDW);
  • Управление информацией: Azure Data Factory (оркестровки по обработке данных), Azure Data Catalog (облачный каталог данных), Azure Event Hubs.

Продукты и возможности в составе Cortana Analytics Suite

Подробнее: официальный сайт пакета Cortana Analytics.

Azure Machine Learning как развитие технологий интеллектуального анализа данных

Последнее обновление: 09.12.2015

Мы долго ждали развития технологии интеллектуального анализа данных (SSAS Data Mining) и наконец то дождались! 18 февраля 2015 года на конференции «Strata + Hadoop World» было объявлено о доступности официальной версии технологии Azure ML (Machine Learning). В контексте объявленной там же доступности технологии Storm на базе HDInsight это говорит о продолжении активного инвестирования компанией Майкрософт в технологии извлечения знаний из «больших данных».

С использованием Azure ML разработчики и аналитики могут в сжатые сроки построить и внедрить решения для улучшения сервиса для клиентов, предсказания и предотвращения сбоев оборудования, повышения операционной эффективности, предотвращения мошенничества и решения огромного количества других задач.

В дополнение к стандартным алгоритмам, можно использовать Machine Learning Marketplace для поиска программных интерфейсов (API) и готовых сервисов, таких как движок рекомендаций, обнаружение аномалий и прогнозирование, с целью повышения скорости внедрения.

Преимущества Azure ML:

  1. Уменьшение сложности использования: доступность через веб-браузер, наличие среды совместной работы Azure workspace; решение строится в виде графа компонентов; используются лучшие алгоритмы, возможности расширения и поддержки R OSS.
  2. Ускоренное построение экспериментов для создания наилучших моделей: возможности поиска и повторного использования моделей; возможность быстро и одновременно использовать различные алгоритмы машинного обучения и стратегии моделирования.

Как начать работать с Azure ML?

Чтобы быстро начать использовать Azure ML вы можете использовать большое количество готовых примеров экспериментов, подготовленных в Майкрософт. samples Можно также использовать примеры из галереи экспериментов, которая пополняется не только силами Майкрософт, но и участниками сообщества. Примеры экспериментов из галереи также можно публиковать через Twitter и LinkedIn. gallery2 gallery

Процесс работы с Azure ML

Работа с Azure ML состоит из следующих шагов. logic При доступе к данным в качестве источников данных могут использоваться текстовые файлы (CSV, TSV и с другими разделителями), файлы HDFS, таблицы Hive из Hadoop, таблицы SQL Azure, объекты и таблицы в Azure, потоки данных OData и JSON, веб-страницы

Для изучения данных можно использовать набор модулей для извлечения примеров данных (случайные, Top-N, диапазоны, расслоения), модули статистического анализа данных (распределение, корреляция, тестирование гипотез), а также очень полезна возможность визуализации наборов данных.

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

При разработке модели используются алгоритмы классификации (Boosted Decision Trees, Random Forests, Logistic Regression, SVM, Averaged Perceptron, Neural networks), регрессии (Linear Regression, Boosted Decision Trees, Neural networks), рекомендаций (SVD, Non-negative matrix factorization) и кластеризации (K-means). Новый алгоритм «Learning with Counts», позволяет извлекать знания из терабайт информации путем решения задач классификации и регрессии с использованием нейронных сетей и деревьев принятия решений (boosted decision trees). Алгоритмы машинного обучения в Azure ML автоматически масштабируются в HDInsight для Azure в зависимости от обрабатываемых объемов данных. В частности, можно использовать очень мощный статистический скриптовый пакет R, который использует инфраструктуру Hadoop (HDInsight), и язык программирования Python.

Для экспериментирования и оценки работы алгоритмов можно применять несколько методов разделения набора данных (случайное, диапазонное, расслоением), поддерживается «K-fold» кросс-валидация, операционные метрики (Confusion matrix, Precision/Recall, True/False positives/negatives и т.д.) и глобальные метрики (ROC, AUC, Lift chart, RMSE, r-squared и т.д.) experiment Исследователи данных могут публиковать готовые в веб-сервисе Azure ML для последующего потребления пользователями организаций. Преимущества использования веб-сервисе Azure ML:

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

Открытый программный интерфейс (API) позволяет обновлять модели Azure ML непосредственно из приложений. Это актуально для автоматического переобучения модели при появлении новых данных, что может улучшить качество ее работы.

Демонстрация

В этой демонстрации мы будем использовать Azure ML для автоматической генерации рекомендаций для клиентов магазина розничной торговли.

Надстройка Azure ML для Excel

Надстройка доступна из меню Excel «Insert — My Add-int — See all…», позволяет подключить опубликованный в виде веб-сервиса эксперимент и делать предсказания на базе наборов данных в Excel.

excel-addin

Заключение

Azure ML гибко встраивается в решения на базе платформы данных Майкрософт в «облачном» или гибридном варианте размещения. В качестве источников данных могут использоваться «облачные» HDInsight, SQL Server (виртуальные машины или база данных), Document DB, Blob-файлы и таблицы, данные из которых можно готовить в нужный формат с помощью Data Factory. Локальные ресурсы (текстовые файлы, таблицы Excel и т.д.) можно хранить в пространстве хранения (Storage Space). Эксперименты машинного обучения готовятся в Azure ML Workspace и публикуются в течение минут в Azure Portal. Далее с использованием портальных решений, таких как Office 365 и Power BI, и приложений результаты анализа можно отображать на различных устройствах.

architecture

Примеры внедрений Azure ML (18 февраля 2015 года): Pier 1, Carnegie Mellon, eSmart Systems, Mendeley и ThyssenKrupp.

Информационные ресурсы по Azure ML:

  1. Документация по Azure ML
  2. Microsoft Azure. Машинное обучение
  3. Machine Learning Blog
  4. Голосование на новые функции Azure ML (страница команды разработки Azure ML, где можно повлиять на приоритеты новых разрабатываемых функций)

Книги

  1. Microsoft Azure Essentials: Azure Machine Learning
  2. Data Science in the Cloud with Azure ML and R

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

  1. Создание простого эксперимента в Azure Machine Learning Studio
  2. Анализ оттока клиентов с помощью машинного обучения Microsoft Azure
  3. New Azure services help more people realize the possibilities of big data
  4. Announcing the General Availability of Azure Machine Learning
  5. Azure Machine Learning Frequently Asked Questions (FAQ)
  6. Microsoft Azure Machine Learning Algorithm Cheat Sheet
  7. Блог Сергея Мастицкого. R: Анализ и визуализация данных 
  8. MSDN: статья Дмитрия Петухова Azure Machine Learning для Data Scientist
  9. MSDN: статья Алексея Романова Анализ тональности текста с помощью Azure Machine Learning
  10. Неизвестный автор: Обработка русских текстов в Azure ML на языках Python и R
  11. 100 лучших видео (вебкастов) про Azure ML
  12. Execute Python machine learning scripts in Azure Machine Learning Studio

Дополнительные компоненты Azure ML:

  1. Azure Machine Learning Excel Add-In

Анализ затрат организаций с помощью Power View для Excel и Office 365

Анализ и оптимизация затрат является актуальной задачей финансовых подразделений организаций.

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

Итак, в нашем примере аналитик выявил наиболее критичное отклонение от плана — это затраты на поездки.

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

См. также: Визуализация и анализ затрат на электроэнергию

Новые возможности SQL Server 2012 PDW

Microsoft SQL Server Parallel Data Warehouse (PDW) – программно-аппаратный комплекс для хранения критически важных данных и их параллельной обработки (Massive Parallel Processing, MPP), поставляемый на базе оборудования HP и Dell; является одним из решений Microsoft для обработки «больших данных».

Во вторую версии SQL Server PDW (SQL Server 2012 PDW) внесены значительные оптимизационные изменения аппаратного обеспечения.

PDW2

В частности, в качестве узлов хранения вместо SAN используются более дешевые и плотно упакованные JBOD с прямым подключением SAS-дисков, а поддержка надежности и функциональности осуществляется за счет средств Windows Server 2012. Область выгрузки и узел резервирования выведены из PDW, что дает возможность использования произвольного аппаратного обеспечения, настройки функций высокой доступности и т.д. Контрольный и управляющий узел представлены в виде виртуальных машин и упакованы в один физический сервер.

Административная консоль полностью переработана.

console

Появилось множество нововведений в части программной совместимости: на контрольном и расчетных узлах установлен SQL Server 2012 EE; SQL Server на контрольном узле (Shell Appliance) поддерживает большинство реляционных функций SQL Server; для работы с PDW сейчас можно (и нужно) использовать SQL Server Data Tools (SSDT).

ssdt

Начиная с версии SQL Server 2012 PDW программный комплекс дополнили технологией PolyBase, которая позволяет делать запросы к данным в Hadoop и объединять их с релцяционными данными с использованием стандартных SQL-инструкций. При необходимости результаты запроса можно сохранить как реляционные данные в PDW или направить обратно в Hadoop.

polybase4