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

Обработка экстремально больших объемов данных требует использования специализированных инструментов. Однако в подавляющем большинстве случаев анализируются выборки до 100 млн. записей, с которыми можно комфортно работать, используя привычные продукты и несложные лайфхаки.

  • Возможности СУБД
  • Комбинирование моделей
  • Параллельная обработка
  • Паттерн MapReduce
  • Репрезентативные выборки
  • Резюме

Анализ больших объемов данных (Big Data) требует знания специализированных инструментов и методологий. Их применение — нетривиальная задача. Оно оправдано и даже необходимо, когда речь идет об экстремально больших объемах в миллиарды записей и более, которые по другому невозможно обработать.

При этом, подавляющее большинство аналитиков не оперируют массивами в сотни терабайт, поэтому инструмент, позволяющий комфортно анализировать выборки объемом до 100 млн. записей покроет 99% задач. Такие объемы характерны для бизнесов, связанных с розничной торговлей, телекоммуникациями, банками, интернетом. Чаще всего это транзакционные данные: чеки, платежи, звонки, логи и т.п.

007. Малый ШАД — Технологии обработки больших объемов данных — Сергей Коцур

Если данных больше, то обычно аналитик выгружает некоторый сэмпл в десятки или сотню миллионов записей, используемых им для поиска закономерностей. Такие выборки позволяют с одной стороны построить качественные модели, а с другой, — не потребляют огромных вычислительных ресурсов. Кроме того, подобные объемы комфортно анализируются при помощи инструментов, не требующих специальных знаний, например, low-code платформ.

Не существует универсальных способов оптимизации производительности, пригодных для всех задач и любых объемов данных. Поэтому оптимизация должна производиться на различных уровнях:

  • аппаратное обеспечение;
  • системы хранения данных;
  • аналитическая платформа;
  • подготовка исходных данных;
  • специализированные алгоритмы.

Конечно, можно увеличить скорость обработки за счет мощного оборудования. Однако, полагаться только на «грубую силу», т.е. более производительные сервера, нерационально. Есть множество простых методов, при помощи которых можно комфортно обрабатывать большие данные без необходимости обновления «железа».

Возможности СУБД

Аналитика данных предполагает выполнение множества простых операций над наборами: выборка, группировка, агрегация, сортировка и т.п. Классические реляционные базы отлично справляются с подобными операциями, т.к. проектировались именно под них.

В СУБД реализовано множество механизмов, позволяющих значительно увеличить скорость обработки:

  1. Предварительный расчет. Сведения, которые чаще всего используются для анализа, можно заранее рассчитать (например, ночью) и в подготовленном для обработки виде хранить на сервере БД в виде многомерных кубов, материализованных представлений, специальных таблиц.
  2. Кэширование в оперативную память. Данные, которые занимают немного места, но к которым часто обращаются в процессе анализа, например, справочники, можно средствами базы данных кэшировать в оперативную память. Скорость увеличивается за счет того, что значительно реже приходится обращаться к медленной дисковой подсистеме.
  3. Разбиение таблиц на разделы и табличные пространства. Можно размещать на отдельных дисках данные, индексы, вспомогательные таблицы. Это позволит СУБД параллельно считывать и записывать информацию. Кроме того, таблицы могут быть разбиты на разделы (partition) таким образом, чтобы при обращении к данным было минимальное количество операций с дисками. Например, если чаще всего анализируется информация за последний месяц, то можно логически использовать одну таблицу с историей, но физически разбить ее на несколько разделов, чтобы при обращении к месячным данным считывался небольшой раздел, без чтения всей истории.

Это небольшая часть возможностей, которые предоставляют современные СУБД. Повысить скорость можно и десятком других способов:

8 инструментов в Excel, которыми каждый должен уметь пользоваться

  • рациональное индексирование;
  • построение планов запросов;
  • параллельная обработка SQL запросов;
  • применение кластеров серверов;
  • расчет анализируемых данных при помощи хранимых процедур на стороне сервера БД и т.п.

Причем многие из этих механизмов поддерживаются не только «тяжелыми» СУБД, но и бесплатными базами данных.

Комбинирование моделей

Возможности повышения скорости не сводятся только к оптимизации работы СУБД, многое можно сделать при помощи комбинирования различных моделей. Известно, что скорость обработки существенно связана со сложностью используемого математического аппарата. Чем проще алгоритмы анализа, тем быстрее расчеты.

Возможно построение сценария обработки таким образом, чтобы данные «прогонялись» через сито моделей. Применяется простая идея: не тратить время на обработку того, что можно не анализировать.

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

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

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

Товары группы X продаются достаточно стабильно, поэтому применение к ним алгоритмов прогнозирования позволяет получить качественный прогноз. Товары группы Y продаются менее стабильно, возможно для них стоит строить модели не для каждого артикула, а для группы. Это позволяет сгладить временной ряд и обеспечить работу алгоритма прогнозирования. Товары группы Z продаются хаотично, поэтому для них не стоит строить прогностические модели. Потребность в этих товарах нужно рассчитывать на основе простых формул, например, среднемесячных продаж.

Читайте также:
Пример программы на языке cfc

По статистике около 70% ассортимента составляют товары группы Z. Еще около 25% — товары группы Y и только примерно 5% — товары группы X. Таким образом, построение и применение сложных моделей актуально максимум для 30% товаров. Поэтому применение описанного выше подхода позволит сократить время на анализ и прогнозирование в 5 и более раз.

Параллельная обработка

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

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

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

Паттерн MapReduce

Один из популярных подходов к обработке больших данных — модель распределенных вычислений MapReduce. Ее классическая реализация предполагает работу кластера серверов с использованием большого количества компьютеров (называемых «нодами»). Однако сама идея применима для обработки данных в рамках одного сервера.

На Map-шаге данные разбиваются на фрагменты и производится предварительная обработка. Это особенно эффективно при наличии у сервера большого количества ядер. На Reduce-шаге происходит свёртка предварительно обработанных данных и рассчитывается итоговый результат.

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

Репрезентативные выборки

При наличии больших объемов данных можно использовать для построения модели не всю информацию, а некоторое подмножество — репрезентативную выборку. Корректным образом подготовленная репрезентативная выборка содержит в себе информацию, необходимую для построения качественной модели.

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

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

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

Резюме

Описанные подходы — это только небольшая часть методов, которые позволяют анализировать огромные объемы данных. Существуют и другие способы, например, применение масштабируемых алгоритмов, иерархических моделей, обучение окнами и прочее.

Анализ огромных баз данных — это нетривиальная проблема, которая в большинстве случаев не решается «в лоб», однако современные СУБД и аналитические платформы предлагают множество методов решения этой задачи. При разумном их применении системы способны перерабатывать сотни миллионов и даже миллиарды записей с приемлемой скоростью.

Другие материалы по теме:

Источник: loginom.ru

XI Международная студенческая научная конференция Студенческий научный форум — 2019

ОБЗОР ПРОГРАММНЫХ СРЕДСТВ ДЛЯ РАБОТЫ С БОЛЬШИМИ ДАННЫМИ

Тюхина И.В. 1 , Лысакова Т.А. 1
1 НИУ «БелГУ»
Работа в формате PDF

Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке «Файлы работы» в формате PDF

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

Большие данные – это термин, обозначающий большие объёмы данных – и структурированных, и неструктурированных.

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

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

Читайте также:
Как отменить программу стирки

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

1) снижать стоимостные затраты;

2) сокращать затраты времени;

3) разрабатывать новые продукты и оптимизировать предложения;

4) принимать умные решения.

Когда вы объединяете большие данные с высокомощной аналитикой, вы можете выполнять такие бизнес-задачи, как:

Определение корневых причин провалов, проблем и отклонений в почти реальном времени;

Генерировать купоны в момент времени продажи, основываясь на покупательском поведении клиента.

Перерасчёт множества портфелей риска за считанные минуты;

Обнаружение мошеннического поведения до того, как оно повлияет на организацию[1].

Таблица1 – организации, использующие большие данные

Несомненно, банковское дело выиграет, если сможет использовать большие данные для своих нужд. Управление активами, оценка рисков и наращивание клиентской базы – вот ключевые потребности кредитных организаций нельзя будет удовлетворить, не научившись пользоваться инструментами big data [2].

Всё больше и больше производителей работают в культуре, основанной на аналитике; что означает, что они могут решать проблемы быстрее и принимать более гибкие бизнес — решения, используя анализ больших данных.

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

Источники больших данных обычно относятся к одной из трех категорий, представленных в таблице 2

Таблица2 – источники больших данных

Эта категория включает данные, конкретной ИТ-системы от сети подключённых устройств. Когда они прибывают, принимается решение о том, какие данные оставить, а какие нет, а что требует дальнейшего анализа.

Данные социальных медиа

Они часто имеют неструктурированную или частично структурированную формы, так что они довольно сложно поддаются анализу.

Публично доступные источники

Массивные объёмы данных доступны через свободные источники данных вроде государственного сайта США, Мировую книгу фактов CIA или Открытый портал данных ЕС.

После определения всех потенциальных источников данных обычно приходится ответить на следующие вопросы:

Как хранить (записывать/сохранять?) и управлять ей

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

Как много из неё анализировать

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

Как использовать любые открытые сведения (идеи)

Чем больше знаний вы имеете, тем более уверенно вы будете в принятии бизнес-решений. Разумно иметь стратегию, когда у вас появляется для неё достаточно информации «на руках».

Однако, при использовании больших данных есть свои проблемы и риски. Например, риск переполнения хранилища, выдача преждевременных вердиктов, возможная некорректность информации и другое. Поэтому следует продумать – есть ли необходимость использовать большие данные, и если стоит, то какое ПО использовать.

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

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

Современные системы СУРБД не могут вместить все то огромное количество данных, которое создается в больших компаниях, и тогда возникает необходимость идти на компромисс: данные либо только частично копируются в СУРБД, либо удаляются через определенное время. Необходимость таких компромиссных решений отпадает, если в качестве промежуточного слоя между интерактивной базой данных и хранилищем данных используется Hadoop.

Преимущества использования Hadoop:

— Производительность обработки данных возрастает пропорционально увеличению объема хранилища данных, в то время как в высокопроизводительных серверах рост количества данных и изменение производительности непропорциональны.

— При использовании Hadoop, чтобы повысить производительность обработки, достаточно просто добавить новые узлы в хранилище данных.

— Hadoop может хранить и обрабатывать многие петабайты данных [3].

На первый взгляд эта программа подходит всем, кто собирается использовать big-data, но из первого преимущества вытекает существенный минус – при использовании недостаточного объема анализируемых данных производительность снижается в разы.

Однако, некоторые авторы считают, что целесообразно использовать его только в том случае, если объем данных превышает 5 ТБ. В ином случае Hadoop уступает SQL, т.к. с помощью него можно свободно сделать любые вычисления, либо нужно воспользоваться созданным на Python скрипте.

Кроме того, SQL запросы могут выполняться очень быстро за счет рационального использования индексов — для вычисления достаточно просто посмотреть индекс (если он есть, конечно) и посмотреть необходимое значение ключа. Hadoop требует полного сканирования таблицы, с последующей полной сортировкой.

Читайте также:
Как запустить программу на pythonanywhere

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

Во первых – они просто не смогут найти такое большое количество информации, действительно необходимой для работы. Hadoop работает, как мы уже выяснили, пропорционально с анализируемым объемом данных по принципу – «больше данных – выше эффективность».

Во вторых – Hadoop довольно сложен в понимании и управлении. И гораздо проще сделать ту же самую операцию в других программах, чем пытаться её реализовать в Hadoop [4].

Поэтому анализ с помощью Hadoop не стоит проводить всем – для этого должна быть веская причина и необходимость. Когда другого варианта просто нет.

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

Список литературы

Источник: scienceforum.ru

Apache Storm

🛠 8 лучших инструментов для BigData в 2020 году

Распределенный фреймворк реального времени, поддерживающий любой ЯП. Он написан на Java и Clojure и является полностью бесплатным. Apache Storm может обрабатывать и преобразовывать потоки данных из различных источников.

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

RapidMiner

🛠 8 лучших инструментов для BigData в 2020 году

RapidMiner – это кросс-платформенный инструмент для обработки BigData с открытым исходным кодом. Он объединяет data science, прогнозную аналитику и технологию машинного обучения, а также предлагает широкий спектр продуктов, позволяющих создавать новые процессы интеллектуального анализа данных.

Платформа доступна под различными лицензиями: бесплатная позволяет пользователям использовать 1 логический процессор и до 10 000 строк данных; стоимость коммерческой версии Rapidminer начинается с $2.500 в год.

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

Qubole

🛠 8 лучших инструментов для BigData в 2020 году

Основываясь на вашей деятельности, автономная BigData -платформа Qubole изучит, оптимизирует и сможет управлять данными. Это положительно скажется на сосредоточенности инженеров исключительно на обработке данных вместо управления фреймворком.

Стоимость инструмента от $199 в месяц, но есть вариант подписки, предназначенный для предприятий с несколькими пользователями.

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

Tableau

🛠 8 лучших инструментов для BigData в 2020 году

Tableau – инструмент визуализации для бизнес-аналитики и анализа данных. Программное обеспечение содержит три основных продукта: d esktop, s erver, o nline предназначенные для аналитики, предприятия и использования в облаке соответственно.

Проект прост в использовании, может обрабатывать все размеры данных, а также умеет визуализировать данные в реальном времени через web-коннектор.

Tableau предлагает бесплатную пробную версию. Подписка начинается от $35 в месяц, в зависимости от издания (desktop/server/online).

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

Cassandra

🛠 8 лучших инструментов для BigData в 2020 году

Распределенная опенсорсная БД Cassandra , предназначена для управления большими объемами данных, раскиданных по серверам. Распространяется бесплатно.

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

Apache Spark

🛠 8 лучших инструментов для BigData в 2020 году

Apache Spark – это уникальное решение с открытым исходным кодом, способное обрабатывать как данные реального времени, пакетные данные, так и данные в памяти, что обеспечивает быстрые результаты. Инструмент может работать в локальной системе, что облегчает тестирование и разработку. Стоимость завязана на лицензии Apache, но есть и бесплатная пробная версия.

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

🛠 8 лучших инструментов для BigData в 2020 году

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

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

Заключение

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

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

Разнообразие продуктов велико, выберите свой для повышения производительности, точности результатов и уменьшения скучной рутины. Если вы используете в проектах другой софт – напишите в комментариях, какой именно и ваше мнение о нем.

Источники

Источник: proglib.io

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru