Перейти к содержанию

Раздел 5. Описание витрин данных

Витринами данных в BOX5-DIT-MGSN считаются ClickHouse-таблицы и PostgreSQL views, которые предоставляют денормализованное или агрегированное представление для поиска, отчётов, UI-фильтров и мониторинга.

5.1. Состав витрин

В эталонном составе из Приложения Г к ПД учитываются три ClickHouse-контейнера: st-event-storage-clickhouse, st-event-statistic-clickhouse и st-ex-statistics-clickhouse. PostgreSQL views используются в st-event-storage-postgres: event_view и event_full_data.

Хранилище Объекты Основные витрины / таблицы Назначение
st-event-storage-clickhouse 18 event, camera_states, camera_mediaserver_stats, camera_nri_state_heartbeats, Camera_nri_state_heartbeats, csvn_cameras, pg_event_view, svr_cameras, svr_objects, work_zones Быстрый поиск событий, состояние камер, NRI/mediaserver-heartbeats, зеркала объектов и справочников ДИТ-МГСН.
st-event-statistic-clickhouse 19 event, event_mv, event_finish, event_severstal_data, category, camera, object, person, kafka_event_queue, work_zones Статистика событий, UI-графики, отчёты и материализация сообщений из Kafka.
st-ex-statistics-clickhouse 5 stay_zone_event, camera, category, object, zone EX-статистика пребывания объектов/людей в зонах.
st-event-storage-postgres views 2 event_view, event_full_data PostgreSQL-представления для денормализованного чтения событий и последующей доставки в ClickHouse.

Служебные schema_versions с engine TinyLog фиксируют миграции ClickHouse и не являются прикладными витринами.

5.2. Назначение витрин

Витрина Потребители Назначение
st-event-storage-clickhouse.event st-event-storage, ui-rest-to-gprc, аналитические API Денормализованный индекс события: событие, изображение, bbox, первичная/вторичная категория, данные нарушителя и классификация ДИТ-МГСН.
st-event-storage-clickhouse.camera_states UI мониторинга, сервисы статистики История состояний камер и доступности видеопотока.
st-event-storage-clickhouse.camera_mediaserver_stats мониторинг и диагностика inference Статистика связи камеры с mediaserver и состоянием обработки.
st-event-storage-clickhouse.camera_nri_state_heartbeats / Camera_nri_state_heartbeats мониторинг NRI Heartbeat-состояния NRI по камерам; наличие двух имён отражает историческую совместимость.
st-event-storage-clickhouse.csvn_cameras интеграционные проверки CSVN/Severstal История/зеркало CSVN-камер и статусов синхронизации.
st-event-statistic-clickhouse.event отчёты, дашборды, UI-фильтры событий Срез события для статистики: камера, объект, категории, подтверждение, модель и человек.
st-event-statistic-clickhouse.event_mv ClickHouse ingestion MaterializedView, которая перекладывает сообщения из kafka_event_queue в event.
st-event-statistic-clickhouse.event_severstal_data отчёты по охране труда и ПК-КОТ Денормализованные отраслевые признаки: вид события, риск, рабочая зона, барьеры и базовые правила.
st-ex-statistics-clickhouse.stay_zone_event EX-статистика Факты пребывания в зоне с длительностью и категориями.
st-event-storage-postgres.event_view ClickHouse sync / аналитические выборки PostgreSQL-представление события с 128 колонками, близкое по форме к ClickHouse event.
st-event-storage-postgres.event_full_data внутренние выборки event-storage Укороченное представление события и связанных объектов/категорий.

5.3. Источники данных для витрин

Основные источники витрин:

Витрина Источник Логика формирования
st-event-storage-clickhouse.event st-event-storage-postgres.event_view, Kafka-события, справочники категорий и ДИТ-МГСН Денормализация события: одно событие разворачивается в строку с изображениями, bbox, первичным/вторичным объектом и svr_* классификацией.
st-event-storage-clickhouse.pg_event_view PostgreSQL st-event-storage Таблица ClickHouse с engine PostgreSQL; используется как прямой прокси к PostgreSQL-представлению при синхронизации.
st-event-statistic-clickhouse.kafka_event_queue Kafka topic событий Входная Kafka-таблица ClickHouse.
st-event-statistic-clickhouse.event_mv kafka_event_queue MaterializedView перекладывает поток сообщений в event.
st-event-statistic-clickhouse.event event_mv, справочники камер/объектов/категорий Событийная витрина для фильтрации и отчётов.
st-event-statistic-clickhouse.event_severstal_data st-event-storage.severstal_event_datas, справочники ПК-КОТ/ДИТ-МГСН Отраслевая часть события хранится отдельно для быстрых отчётов по рискам, зонам и барьерам.
st-ex-statistics-clickhouse.stay_zone_event поток событий пребывания в зоне, справочники камеры/объекта/категорий Факт пребывания с началом, окончанием и длительностью.
Зеркала cameras, objects, work_zones, svr_cameras, svr_objects st-camera-storage, svr-severstal-integration, ПК-КОТ Справочные срезы, необходимые для автономного аналитического чтения без join к PostgreSQL в пользовательском запросе.
flowchart LR inf[inference / NRI] --> kafka[[Kafka
события и состояния]] cam[(st-camera-storage
камеры, зоны, объекты)] --> mirrors[(ClickHouse mirrors
cameras, objects, zones)] pk[(ПК-КОТ / Severstal справочники)] --> svr[svr-severstal-integration] svr --> pgEvent[(st-event-storage PostgreSQL
event, primaryobject,
severstal_event_datas)] kafka --> pgEvent pgEvent --> pgView[[event_view / event_full_data]] pgView --> chEvent[(st-event-storage ClickHouse
event, pg_event_view)] kafka --> chQueue[[kafka_event_queue]] chQueue --> mv[[event_mv]] mv --> chStat[(st-event-statistic ClickHouse
event, event_severstal_data)] kafka --> ex[(st-ex-statistics ClickHouse
stay_zone_event)] mirrors --> chEvent mirrors --> chStat chEvent --> ui[UI / API / отчёты] chStat --> ui ex --> ui

Исходный Mermaid-код схемы: В7-MER-003. 5.3. Источники данных для витрин.

Требование к резервному копированию витрин: ClickHouse-каталоги копируются согласованно с PostgreSQL и MinIO того же домена. Потеря ClickHouse без потери PostgreSQL/MinIO в большинстве случаев восстановима пересинхронизацией, но на период восстановления будут недоступны быстрый поиск, статистика и отчётные срезы.