Как компании «Полиматика Рус» удалось достичь обработки миллиардов записей за секунды

Storage News 25 Июня 2016

В начале июня 2016 г. компания «Полиматика Рус» выпустила новую версию своего продукта – отчетно-аналитическую платформу «Полиматика 5.0». В интервью Роман Раевский – генеральный директор «Полиматика Рус» и главный конструктор системы «Полиматика» рассказывает, как компании удалось достичь обработки миллиардов записей за секунды.

Как давно ваши решения присутствуют на рынке?

Мы уже более 12 лет занимаемся разработкой инструментов для бизнес-аналитики и интеллектуальной обработки информации. Непосредственно работа над аналитической платформой «Полиматика» ведется, начиная с 2010 года, при этом основные принципы были заложены еще в 2004 году. Текущее поколение системы ориентировано, в первую очередь, на аналитическую обработку больших массивов исходных данных с использованием методов машинного обучения и алгоритмов интеллектуального анализа информации.

В июне компания IBS представила новые АПК «СКАЛА», а также специализированное решение «СКАЛАСР/Аналитика», которое было разработано совместно с вашей компанией. Почему компания IBS выбрала вас для своего проекта?

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

В чем уникальность вашей разработки?

Сейчас на рынке очень большое количество продуктов, которые позиционируют себя как BI-системы. Несмотря на это, все эти продукты можно условно разделить на два класса решений – интерактивные визуализаторы и сложные BI-решения с аналитикой.

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

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

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

Мы не используем в системе сторонних модулей или open-source библиотек. Платформа «Полиматика» разрабатывалась с нуля и является на 100% российской разработкой.

Большинство продуктов, особенно сложных BI-решений, имеют довольно длинную историю и ориентированы на работу в семействе ОС Windows. Из-за этого исторически как десктопные, так и серверные компоненты этих решений, имеют ограничения на объем обрабатываемых данных. Мы изначально были ориентированы на использование Unix- и Linux-операционных систем, что позволило избежать ограничений на уровне операционной системы.

Какие еще особенности системы вы можете выделить?

«Полиматика» использует собственный OLAP-сервер, поддерживающий технологию онлайн-обработки данных в оперативной памяти – OLAP-In-Memory. К слову, наш OLAP-сервер является десятым OLAP-сервером в мире. Аналитический сервер «Полиматики» сочетает в себе OLAP-обработку и алгоритмы DataMining, связанные друг с другом.

Кроме того, при вычислениях мы используем гибридную технологию CPU+GPU, то есть ускорения вычислений на графических процессорах GPU-acceleration. При этом система автоматически определяет, какие ресурсы необходимо задействовать для той или иной операции. При работе с небольшими объемами записей вычисления выполняются на центральном процессоре, а при обработке уже больших объемов часть вычислений переносится на графический ускоритель. Это позволяет сохранять комфортное время отклика системы при возрастающих объемах данных.

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

Все данные мы измеряем в записях, а не в байтах. Ограничения по масштабируемости системы зависят от используемого аппаратного обеспечения. Например, видеокарта NvidiaTesla К80 с 24 Гбайт памяти способна за один цикл обработать 4 млрд строк. Таким образом, пределы масштабирования определяются числом требующихся GPU для обработки требуемого объема строк за один цикл. Если нужно сортировать, скажем, 7 млрд строк, то для этого нужно использовать две NvidiaTesla К80 и т.д. Подчеркиваю, что это необходимо для обеспечения времени отклика системы на уровне пары секунд – без видеокарт система будет работать – только медленнее.

Если оперировать конкретными цифрами, то логическое ограничение по количеству записей в системе – 264, или более миллиарда миллиардов строк. Для понимания: объем данных в 2 млрд строк генерирует сеть гипермаркетов за 2 года работы, а 6 млрд строк – это, примерно, объем данных всего федерального казначейства.

Какие источники данных поддерживает система? Откуда вы можете брать данные?

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

Загрузить данные в систему можно с помощью простого SQL-запроса. Если говорить о базах данных класса NoSQL, то с ними система работает на более низком уровне, например, REST API или прямого обмена информацией между С++ библиотеками. «Полиматика» также поддерживает импорт данных из текстовых файлов, CSV и Excel фалов, баз данных 1С и прочих популярных форматов.

Каким образом происходит связь с источником? Где хранятся данные, с которыми работает система?

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

Дополнительно система обеспечивает сжатие данных в 12+ раз в сравнении с объемом данных в источнике. Например, если размер таблиц в БД источника составляет 12 ГБайт, то размер OLAPкуба, сформированный из этих таблиц без потерь детализации, не будет превышать 1 ГБ.

Один из ключевых трендов – это аналитика/анализ информации, относящейся к объекту/цели из разных источников (неструктурированных данных) и выдача результатов в реальном времени. Насколько “Полиматика” готова к этому?

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

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

Какие еще результаты тестирования платформы вы можете представить?

Мы проводили тестирование совместно с компанией IBS. На объеме данных более 2 млрд строк время на выполнение OLAP-операций составляет не более 3 секунд – и это при обработке всего массива данных. Сложные операции Data Mining, например, кластеризация и прогнозирование – от 17 секунд при обработке всего массива данных.

Учитывая названные возможности системы, насколько она сложна в использовании?

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

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

Раз зашла речь о пользователях, то хотелось бы знать: поддерживается ли в системе совместная работа? Поддерживается ли самостоятельное исследование? Как это происходит?

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

То есть ситуационная панель – это начальная точка работы пользователя. Кто-то ограничится ее просмотром, а кому-то потребуется просмотреть все детали, историю, тонкости связи различных информационных объектов.

Проекты? Внедрения? Каковы ваши планы по развитию?

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

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

Ссылка на источник