В рамках проекта Cube создана открытая система для визуализации больших объемов статистических данных, в первую очередь так называемых временных (или динамических) рядов. Первоначально продукт был разработан для внутренних нужд компании Square, специализирующейся на обработке электронных платежей, но недавно код был открыт под лицензией Apache License 2.0.
В Cube используются передовые решения, базирующиеся на NoSQL-хранилище и технологиях HTML5. В частности, для хранения данных используется MongoDB, а для выполнения серверного JavaScript-кода применяется платформа Node.Js. Cube позволяет обрабатывать внешние события, переданные в формате JSON, агрегировать и обрабатывать все поступающие данные, визуализируя числовые модели на их основе в браузере пользователя, для чего применяется JavaScript-библиотека D3, в которой совместно используются возможности CSS3, HTML5 и SVG.
Реализованный в рамках проекта коллектор данных может принимать и сохранять поток событий, каждый элемент которого должен состоять как минимум из двух полей - времени и типа, определяющем пространство имён с которым будет сопоставлено событие. Дополнительно могут быть переданы характеризующие событие данные и атрибуты, управляющие замещением ранее записанных данных. Эмиттеры, процессы отправки данных, могут быть написаны на любом языке программирования и использовать HTTP POST или WebSockets для передачи событий, которые будут сохранены в MongoDB. Для расширения функциональности Cube поддерживается подключение дополнений. Формирование графиков и отображения данных производится через специальный web-интерфейс, использующий методы визуального проектирования (см. видеодемонстрацию работы).
Как пример повседневного применения можно привести возможность отправки в систему срезов данных по объемам и специфике трафика каждые 5 минут, с последующим изучением всех накопленных данных в наглядном виде. Другой типичный вариант использования – протоколирование волатильности курса некой валюты в режиме реального времени. При этом следует иметь в виду, что модели числовых последовательностей позволяют не только осуществлять мониторинг хронологии поведения некоего показателя, но также предсказывать его вероятностное поведение в будущем, в результате автоматического выявления трендов, на основании уже накопленной информации).
|