Раздел 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 в пользовательском запросе. |
события и состояния]] 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 в большинстве случаев восстановима пересинхронизацией, но на период восстановления будут недоступны быстрый поиск, статистика и отчётные срезы.