# Схема прохождения событий

Схема описывает методику получения, обработки и сохранения данных из внешних источников.

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

Изображение

Процесс обработки событий предполагает наличие 4-х звеньев:

  1. Приемник логов – точка прослушивания HTTP. Программа обертывает полученные данные в модель и отправляет сообщение в препроцессор на обработку. Программа также проводит валидацию API-ключа потока данных и входной модели в зависимости от типа входных данных.

  2. Препроцессор - запускает обработчик входного сообщения, если он есть. Обработчик может:

    • Выполнить парсинг и превращение текста в JSON.
    • Выполнить обработку пакетных событий – вычленить из этих событий единичные элементы.
    • Выполнить преобразование входной модели, например, добавить вычисляемое поле или изменить тип поля в модели.
    • Добавить системные метки для событий.
  3. Валидатор схемы БД - формирует модель для базы данных согласно схеме. Создает эту схему исходя из модели JSON, добавляя нужные поля при необходимости.

  4. Буфер потоковых событий - выполняет запись всех первичных событий в БД ClickHouse, в соответствии со схемой потока, из которого они получены.

Параллельно с записью в БД ClickHouse события отправляются в очереди Автоматона, из которой обрабатываются сценариями автоматизации.