Аналитика, близкая к real-time, с Elasticsearch Архитектуры
Тезисы
Elasticsearch – это гибкий и эффективный открытый поисковый движок на основе Apache Lucene. Изначально созданная специально для распределённых сред, система Elasticsearch является практичной, стремится к простоте в использовании, работает и масштабируется даже тогда, когда все остальные поисковые системы «падают». REST API и поддержка документов в формате JSON делают этот движок очень гибким и простым в использовании.
Хотя движок Elasticsearch создавался для поиска, его структура запросов, фильтрация и фасетизация делают Elasticsearch одним из немногих простых решений для аналитики, близкой к real-time. Такие его возможности, как фреймворк агрегации (ранее – фасеты), могут использоваться для агрегации больших объёмов данных.
Свой доклад я начну с рассказа об использовании Elasticsearch для аналитики, близкой к real-time, для стуктурированных и неструктурированных данных, а затем мы перейдём к более «продвинутым» возможностям – таким, как маппинг, фильтрация и агрегация для аналитики. Мы также поговорим об особенностях проектирования при необходимости обработки большого числа операций чтения, записи и поиска для аналитики. Мы также уделим некоторое время возможным оптимизациям для аналитической рабочей нагрузки, которая во многом полагается на агрегацию.
Охватываемые темы
1. Elasticsearch, очень краткое представление.
2. Эффективный фреймворк агрегации.
3. Маппинг для структурированных и неструктурированных данных.
4. Особенности проектирования для обеспечения масштабируемости и высокой производительности (быстрые операции записи, чтения и поиска).
5. Оптимизация Elasticsearch для аналитической рабочей нагрузки.
6. Библиотеки Python для Elasticsearch – очень краткое обсуждение.
7. Отсылка к внешним ресурсам после доклада.
Очень кратко мы поговорим о том, как мы внутри VWO построили углублённое сегментирование для аналитики с использованием Elasticsearch и Python, конкретнее, о том, как мы взяли PoC для продакшна и о проблемах, с которыми мы столкнулись в процессе.