Рекламная сеть AdRoll (https://en.wikipedia.org/wiki/AdRoll) объявила (http://tech.adroll.com/blog/data/2016/05/24/traildb-open-sou...) об открытии исходных текстов встраиваемой СУБД TrailDB (http://traildb.io/), ориентированной на эффективное сохранение и обработку данных о наступающих событиях. Основу TrailDB составляет библиотека с реализацией функциональности СУБД, связываемая с приложениями. Для управления предлагается интерактивная оболочка tdb, работающая в режиме командной строки. Код TrailDB написан на языке Си и распространяется (https://github.com/traildb/traildb) под лицензией MIT.Модель хранения данных в TrailDB предоставляет (http://traildb.io/docs/technical_overview/) возможность сохранения в БД произвольного набора групп (trail), к которым привязываются наступающие события. Каждая группа идентифицируется 128-разрядным UUID и включает упорядоченную информацию о последовательности событий и времени их наступления. Каждое событие включает в себя UUID группы, время наступления и предопределённый набор полей (формат схемы полей задаётся заранее). Предоставляются операции слияния разных БД, шардинга и перестроения групп, а также очень быстрые операции с курсором и средства для фильтрации событий (например, "action=page_view AND (page=pricing OR page=about)").
<center><img src="https://www.opennet.me/opennews/pics_base/0_1464163165.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></center>
Из задач, которые легко решаются в TrailDB, но слишком усложнены для реляционных СУБД, отмечается отслеживание цепочек действий и предпочтений пользователя. Например, имеются данные, что пользователь зашёл на сайт, посмотрел страницу о продукте, после чего открыл прайс и спустя час после первого события зарегистрировался в сервисе. При помощи TrailDB не составит труда проанализировать число пользователей, которые зарегистрировались менее, чем за час после первого входа.
<center><a href="http://tech.adroll.com/images/post_images/traildb_breadcrumb... src="https://www.opennet.me/opennews/pics_base/0_1464165064.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
Другие особенности:
- Высокая производительность и надёжность. На одном процессорном ядре могут обрабатываться миллионы событий в секунду. С 2014 года в сети AdRoll при помощи TrailDB сохранено и обработано более 20 триллионов событий. Покрытие автоматизированным тестовым составляет более 90%;
- Основные области применения: вычисление метрик (например, интенсивность отказов), анализ моделей использования, визуализация статистики, выявление аномалий, обобщение данных о предпочтениях и прогнозирование поведения пользователя;
- Простой API (http://traildb.io/docs/api/). Наличие (https://github.com/traildb/) биндингов для языков C++, Python, R, D, Go и Haskell;
- Возможность хранения данных в сжатом виде. При этом обеспечена поддержка прямых запросов сжатых данных с распаковыванием только необходимых частей;
URL: http://tech.adroll.com/blog/data/2016/05/24/traildb-open-sou...
Новость: http://www.opennet.me/opennews/art.shtml?num=44487