Задать вопрос
@immelnikoff
Изучаю БД

Какие есть инструменты и решения для экстремально быстрой online-аналитики потоковых данных?

Хотелось бы узнать о таких инструментах, решениях и подходах разработки для экстремально быстрой online-аналитики потоковых данных для decision making.
Я понимаю, что ничего не может быть быстрее полной реализации необходимого функционала на C/C++, но это часто (если не всегда) слишком дорого, слишком долго и менее стабильно.
Какие "кирпичики" используют в таких задачах?

Уточнения:
- Под экстремально быстрой аналитикой я подразумеваю "чем быстрее, тем лучше". Например, 1 мс будет сильно лучше 10 мс.
- Под данными подразумеваются market data от множества различных независимых источников.
- Для меня важно стабильное экстремальное low lanency. В какой-то момент данных может поступать очень много (highload), а в какой-то очень мало (единицы записей в секунду). Но в обоих случаях важен экстремальный low lanency для decision making.
  • Вопрос задан
  • 964 просмотра
Подписаться 4 Сложный 15 комментариев
Пригласить эксперта
Ответы на вопрос 3
AshBlade
@AshBlade
Просто хочу быть счастливым
Ответ: Для экстремально быстрой online-аналитики нужны экстремально быстрые инструменты

Если серьезно, то когда речь заходит о хайлоаде, то нет готовых решений. Все приходится писать самим и тюнить весь софт под свои нужды.
Чтобы помочь надо знать контекст, а "чем быстрее, тем лучше" - у всех так.

Все что могу предложить:
- Горизонтально масштабировать софт, который эти данные от источников читает
- Использовать ClickHouse для хранения данных

Почему ClickHouse:
- Создан для OLAP задач
- Имеет поддержку шардирования причем шарды независимы - не нужно тратиться на синхронизацию

P.S. если это задача по трейдингу, то советую копать в сторону HFT
Ответ написан
"экстремально" - это имеет какое-то численное значение?

- Под экстремально быстрой аналитикой я подразумеваю "чем быстрее, тем лучше". Например, 1 мс будет сильно лучше 10 мс.

Тут лучше сказать, какой вариант будет точно неприемлимым и на сколько сложные вычисления нужно успеть выполнить.

- Под данными подразумеваются market data от множества различных независимых источников.

А этот самый market data вам уже приходить с экстремально низкой задержкой?

low latency

Отсекаем все языки со сборкой мусора, тк у них будет происходить вполне очевидная пауза.
Отсекаем все незрелые.
И вот у нас остаётся небольшой выбор: C, C++, Rust, Zig - компилируемые императивные языки без сборки мусора.

В целом выглядит как HFT, а значит и решения нужно брать те, которые активно в HFT используют.
Без конкретики - ничего конкретного посоветовать нельзя.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
При расчете аналитики (min/max/avg) и прочих оконных функций сам алгоритм имеет лаг.
Тоесть ты должен понимать что за 1 мс ты можешь анализировать данные в прошлом за окно
размером к примеру в 100мс.

Нельзя выводить точную аналитику на основе мгновенного значения.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы