# Схема прохождения событий
Схема описывает методику получения, обработки и сохранения данных из внешних источников.
Данная схема предполагает возможность получать текстовые данные в любом формате, с последующим преобразованием данных в формат JSON, а также автоматически определять схемы БД и записывать в таблицы БД данные событий.
Схема предполагает наличие 4-х звеньев:
Сборщик логов – точка прослушивания HTTP. Программа обертывает полученные данные в модель
(_id, _aggregatedAt, _connector, _sourceType, _source)
и отправляет сообщение в препроцессор на обработку. Программа также проводит валидацию ключа коннектора и входной модели в зависимости от типа входных данных.Препроцессор событий. Запускает обработчик входного сообщения, если он есть. Обработчик может:
- Выполнить парсинг и превращение текста в JSON.
- Выполнить обработку пакетных событий – вычленить из этих событий единичные элементы.
- Выполнить преобразование входной модели, например, добавить вычисляемое поле или изменить тип поля в модели.
- Добавить системные метки для событий.
Анализатор схемы БД сообщения. Формирует модель для базы данных согласно схеме, записанной в коннекторе. Создает эту схему исходя из модели JSON, добавляя нужные поля при необходимости. Производит потоковую обработку сообщений с использованием ML на основе обученной ранее модели, присваивая им следующие метки:
_labels.ml.cluster.id
– порядковый номер кластера, к которому относится событие._labels.ml.cluster.modelVersion
– версия (итерация) модели._labels.ml.cluster.position
– позиция события относительно центра кластера. Дробное значение, чем меньше – тем ближе к центру кластера.
Буфер событий. Выполняет запись всех первичных событий в БД ClickHouse, в соответствии со схемой потока, из которого они получены.