Visiology - In-Memory технология ViQube
Вычислительным ядром платформы является аналитическая база данных ViQube. Колоночная In-Memory СУБД ViQube – залог высокой производительности Visiology. ViQube совместима с самыми популярными распределёнными системами хранилищ данных:
- Arenadata
- Yandex.Cloud
- ClickHouse
- Vertica
- Postgres Professional
- Квант Гибрид
Архитектура интеграции представлена на рисунке ниже.
Для удобства аналитиков и бизнес-пользователей данные необходимо преобразовать к многомерной OLAP-модели. Многомерная модель описывает данные не в технических терминах, а в терминах бизнеса, таких как показатели и измерения. ViQube позволяет настраивать многомерную модель непосредственно в базе данных через веб-интерфейс и использовать ее для выполнения многомерных OLAP-запросов.
При работе с большими данными и обслуживании множества одновременно работающих пользователей In-Memory-движок ViQube работает в режиме push-down автоматической генерации SQL-запросов к распределенным СУБД c массовым параллелизмом (MPP): Arenadata, HP Vertica, Yandex ClickHouse. Такая интеграция основана на гибридном подходе: «горячие» данные размещаются в оперативной памяти, быстро обновляются и доступны для обработки аналитиком без задержек, а «холодные» ретроспективные данные содержатся в реляционном хранилище. Если запрос затрагивает «холодные» данные, то ViQube, вместо того чтобы сделать запрос самостоятельно, генерирует SQL-запрос и выполняет его на распределенной СУБД. Если же запрос касается только «горячих» данных, то ViQube его выполняет самостоятельно. Такой подход позволяет строить эффективную масштабную аналитическую систему, обслуживающую тысячи пользователей.
Это позволяет оптимально использовать аппаратные ресурсы для проектов, к которых одновременно требуется работа с большими объемами данных (1+ ТБ) в режиме онлайн (отклик менее 5 секунд) и обслуживание значительного количества пользователей (от 100 одновременно). При этом для аналитика разделение на “горячий" и “холодный" слои данных является полностью прозрачным.
Широкие возможности загрузки данных и интеграции
ViQube предоставляет встроенную веб-панель администрирования, через которую можно настроить подключения к источникам данных. Самый простой способ получения данных – это загрузка простой таблицы в CSV или XLSX формате, причем файл может быть загружен из сетевой папки, и для него можно настроить автоматическое обновление по расписанию. Для загрузки данных из баз данных предусмотрена возможность получения данных с помощью SQL запросов. ViQube совместим с любой реляционной СУБД, предоставляющей JDBC драйвер, например, Microsoft SQL Server, Oracle, MySQL, PostgreSQL, HP Vertica и другими. Для более сложных сценариев интеграции доступен интерфейс разработчика REST API.
Колоночное хранение и обработка запросов в оперативной памяти (in-memory)
Вместе со снижением стоимости оперативной памяти стало возможным помещать обрабатываемые данные целиком в память. ViQube использует данный подход, а также колоночное хранение и обработку данных, что позволяет более оптимально вычислять агрегации над большими объемами информации. При этом за счет сжатия загруженные в память данные, как правило, занимают значительно меньший объем, чем исходный массив.
Исполнение многомерных запросов
Для удобства аналитиков и бизнес-пользователей данные необходимо преобразовать к многомерной (OLAP) модели. Многомерная модель описывает данные не в терминах разработчика, а в терминах бизнеса, таких как показатели и измерения (иногда называемые аналитическими разрезами). ViQube позволяет настраивать многомерную модель (семантический слой) непосредственно в СУБД через веб-интерфейс и использовать ее для выполнения многомерных (OLAP) запросов.
Оптимизация под возможности современных процессоров
Современные центральные процессоры имеют возможности, которые позволяют значительно оптимизировать аналитическую обработку данных. Например, это использование векторных SIMD (Sindle Input Multiple Data) инструкций, которые позволяют за один такт процессора обработать несколько блоков данных. ViQube использует оптимизации под расширения SSE4 и AVX системы команд x86 для современных процессоров Intel и AMD.
Динамическое изменение данных через rest интерфейс
В современных аналитических системах необходимо работать не только с отчетными данными, обновляющимися раз в сутки, но и с динамически обновляемыми данными. ViQube предоставляет разработчикам REST интерфейс, с помощью которого можно добавлять или удалять данные в реальном времени. При этом новые данные доступны для анализа сразу.