Данные приходят неструктурированными. Решения нужно принимать структурированно.

Tensora собирает потоки событий с серверов, приложений и датчиков, приводит их к единой схеме и отдаёт командам аналитики в виде, готовом для запросов, дашбордов и моделей. Без ночных батчей и без таблиц, которые расходятся через неделю.

4.8 ПБ проходит через конвейеры приёма каждые сутки
118 мс медианное время от события до строки в витрине
99.95% доступность очереди приёма за последние 12 месяцев
340+ источников данных подключено через коннекторы

Три слоя одной платформы

Каждый слой можно использовать отдельно или вместе. Большинство команд начинают с приёма и хранения, а аналитику и модели подключают, когда накапливается история.

Приём

Коннекторы и нормализация на лету

Подключаем источники через готовые коннекторы или вебхуки, приводим разные форматы к единой схеме на этапе приёма, а не после. Изменения схемы отслеживаются версиями, старые потребители продолжают работать на предыдущей версии столько, сколько нужно.

Хранение

Колоночное хранилище с холодным и горячим уровнем

Свежие данные лежат на быстром уровне для интерактивных запросов, данные старше 90 дней автоматически переносятся на холодный уровень с компрессией и остаются доступными для тех же запросов без дополнительных шагов миграции.

Аналитика

Витрины, дашборды и доступ из SQL

Готовые витрины обновляются инкрементально, без полного пересчёта. Дашборды строятся поверх тех же таблиц, что доступны аналитикам напрямую через SQL-движок — никакого расхождения между «панелью для руководителя» и «таблицей для разбора».

От события до отчёта: пять шагов

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

  1. Событие попадает в очередь приёма

    Клиентская библиотека или коннектор отправляет событие с меткой времени и идентификатором источника. Очередь подтверждает приём за <15 мс на 95-м перцентиле.

  2. Схема проверяется и при необходимости преобразуется

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

  3. Запись агрегируется в потоковые витрины

    Параллельно с записью в основное хранилище, событие обновляет несколько потоковых агрегатов: счётчики, скользящие окна, уникальные значения — без пересчёта истории.

  4. Данные оседают в колоночном хранилище

    Раз в несколько минут буферы сбрасываются партиями, оптимизированными для последующих аналитических запросов: сортировка, индексация по ключевым полям, компрессия.

  5. Дашборд или модель читают результат

    Аналитик открывает дашборд и видит agregированные значения, обновлённые с задержкой в единицы минут. Модель, обучающаяся на исторических данных, читает тот же набор через тот же SQL-интерфейс.

Кому это пригождается

Платформу используют команды, которым нужно видеть происходящее без задержки в сутки и без отдельного дата-инженера на каждый отчёт.

«Раньше отчёт по конверсии собирался вручную раз в неделю. Сейчас он обновляется каждые пять минут, и мы наконец видим, в какой момент дня проседает воронка, а не узнаём об этом постфактум из недельной сводки».

Руководитель аналитики, сервис бронирования, ~40 тыс. операций в сутки

«Мы подключили десяток источников логов за две недели вместо обещанного интегратором квартала. Главная экономия — не во времени интеграции, а в том, что схема данных перестала расходиться между командами».

Технический директор, провайдер логистических сервисов

Команда

Десять человек, большинство — из дата-инженерии и распределённых систем. Меньше людей, больше внимания к тому, что уже работает.

Илья Шестаков Архитектура хранилища
Дарья Воронцова Потоковая обработка
Марк Левин Коннекторы и интеграции
Полина Гриценко Аналитика и витрины

Готовы посмотреть на своих данных?

Дайте нам пример источника — лог, экспорт из базы, поток вебхуков — и мы за один созвон покажем, как он будет выглядеть после прохождения через конвейер: от сырого события до строки в витрине.