Телеметрия и хранение данных

Платформа Стрикс реализует трёхуровневую модель хранения телеметрии, обеспечивающую баланс между детализацией данных, скоростью доступа и стоимостью хранения.
Трёхуровневая модель хранения
| Уровень | Хранилище | Детализация | Retention | Назна чение |
|---|---|---|---|---|
| Live | BaSyx OperationalData | ~1 Гц, последнее значение | Текущее | Дашборды, SCADA, мониторинг |
| История | ClickHouse | raw / 1 мин / 1 час | 7 / 90 / 730 дней | Тренды, отчёты, аналитика |
| Сырой сигнал | S3/MinIO (Parquet) | 25+ кГц | По политике | Вибродиагностика, спектральный анализ |
Поток данных
Датчик/ПЛК --> MQTT-брокер --> telemetry-writer --> ClickHouse (история)
|
+--> data-bridge --> BaSyx OperationalData (live)
OPC UA / Modbus / REST --> data-bridge --> BaSyx OperationalData
| Компонент | Назначение | Интервал |
|---|---|---|
| data-bridge | Запись последнего значения в BaSyx OperationalData | По событию (~1 Гц) |
| telemetry-writer | Пакетная запись в ClickHouse с буферизацией | Flush каждые 5 сек |
| retention-cleanup | Удаление устаревших данных по StoragePolicy | 1 раз в час |
MQTT-транспорт
Структура топика
liman/{project}/{deviceId}/telemetry
Примеры:
liman/nzif/ball-mill-101/telemetryliman/irs/larus-inv459/telemetry
Формат сообщения
{
"timestamp": "2026-03-27T10:15:00.123Z",
"temperature_bearing_de": 42.3,
"vibration_rms_de": 2.1,
"motor_current": 245.5
}
Подключение
| Среда | Адрес | Протокол |
|---|---|---|
| Разработка | ws://localhost:9001 | MQTT over WebSocket |
| Продуктив | wss://{host}/ws/mqtt | MQTT over WebSocket (TLS) |
TelemetryConfig -- настройка на оборудование
Субмодель TelemetryConfig (семантический ID: https://liman-tech.ru/sm/TelemetryConfig/1/0) размещается на AAS-оболочке оборудования и определяет параметры сбора телеметрии.
| Свойство | Тип | Описание | Пример |
|---|---|---|---|
Enabled | boolean | Сбор телеметрии включён | true |
PeriodMs | int | Период опроса в миллисекундах | 5000 |
AggregationMethod | string | Метод агрегации (avg, min, max, last) | avg |
RetentionOverrideDays | int | Переопределение retention для raw-данных | 30 |
ThrottleMode | string | Режим throttling (none, deadband, rate-limit) | deadband |
Parameters | SMC[] | Список параметров с индивидуальными настройками | см. ниже |
Параметры телеметрии
Parameters/
+-- Temperature/
| +-- SourceKey: "temperature_bearing_de"
| +-- Unit: "degC"
| +-- Period: 5000
| +-- DeadbandValue: 0.5
| +-- DisplayName: [ru: "Температура ПШ", en: "DE Bearing Temp"]
+-- Vibration/
| +-- SourceKey: "vibration_rms_de"
| +-- Unit: "mm/s"
| +-- Period: 1000
| +-- DeadbandValue: 0.1
+-- Current/
+-- SourceKey: "motor_current"
+-- Unit: "A"
+-- Period: 5000