Качество данных
Качество входных данных напрямую определяет достоверность аналитики. Расчёт OEE, вибродиагностика и предиктивное обслуживание бессмысленны, если данные телеметрии содержат пропуски, задержки или аномалии. Сервис data-quality автоматически оценивает каждый параметр каждой единицы оборудования и записывает результат в BaSyx.
Без контроля качества данных нельзя дов ерять ни одному показателю. Внедрение data-quality -- обязательный этап перед запуском OEE и PdM.
Три измерения качества
Каждый параметр оборудования оценивается по трём независимым измерениям. Итоговая оценка -- среднее взвешенное.
| Измерение | Обозначение | Вес | Что проверяется |
|---|---|---|---|
| Полнота (Completeness) | C | 0.4 | Доля полученных значений от ожидаемых за период |
| Своевременность (Timeliness) | T | 0.3 | Задержка доставки данных относительно настроенного периода |
| Непротиворечивость (Consistency) | S | 0.3 | Отсутствие физически невозможных значений, выбросов, застываний |
Score = 0.4 * C + 0.3 * T + 0.3 * S (0..100)
Обнаруживаемые проблемы
Пропуски данных (Gaps)
Система определяет интервалы, в которых данные не поступали, хотя оборудование было в режиме RUN:
| Уровень | Условие | Пример (при периоде 1 с) |
|---|---|---|
| Допустимый | До 3x периода опроса | До 3 секунд |
| Warning | 3x--10x периода | 3--10 секунд |
| Critical | Более 10x периода или > 5 минут | Более 10 секунд |
Застывшие значения (Stuck)
Параметр не изменяется в течение длительного времени при работающем оборудовании:
- Анализируется дисперсия за скользящее окно (по умолчанию 5 минут)
- Если стандартное отклонение < 0.01% от диапазона параметра -- значение считается застывшим
- Исключение: дискретные параметры (статус, режим) не проверяются на застывание
Выбросы (Outliers)
Значения, выходящие за физически допустимые границы:
- Границы задаются в субмодели TelemetryConfig (min/max для каждого параметра)
- Дополнительно: статистический анализ (> 4 sigma от скользящего среднего)
- Выбросы маркируются флагом
quality: "bad"в ClickHouse
Задержки доставки (Latency)
Время между формированием значения на датчике и его записью в BaSyx:
| Уровень | Задержка | Влияние |
|---|---|---|
| Good | < 2 с | Норма для MQTT pipeline |
| Uncertain | 2--10 с | Возможны проблемы с сетью или мостом |
| Bad | > 10 с | Данные непригодны для управления в реальном времени |
Архитектура сервиса
Сервис data-quality выполняет полный цикл каждые 300 секунд (5 минут):
- Discover -- находит все оборудование с субмоделью OperationalData
- Fetch -- получает текущие значения из BaSyx и историю из ClickHouse (последние 10 минут)
- Analyze -- рассчитывает три измерения для каждого параметра
- Score -- вычисляет итоговый балл по оборудованию
- Write -- записывает результат в субмодель DataQuality (upsert + addSubmodelRef)
BaSyx: OperationalData ----+
|
BaSyx: TelemetryConfig -----+--> data-quality service --> BaSyx: DataQuality
|
ClickHouse: telemetry_raw --+
Структура субмодели DataQuality
DataQuality/
OverallScore: 87
Completeness: 92
Timeliness: 85
Consistency: 83
LastEvaluation: "2026-03-26T10:00:00Z"
Parameters/
MotorCurrent/
Score: 95
Completeness: 98
Timeliness: 92
Consistency: 95
Issues: []
BearingTemperature_DE/
Score: 62
Completeness: 70
Timeliness: 88
Consistency: 45
Issues: ["stuck_values", "outliers"]
Уровни качества
| Балл | Уровень | Цвет | Рекомендация |
|---|---|---|---|
| 90--100 | Отлично | Зелёный | Данные пригодны для всех видов аналитики |
| 70--89 | Хорошо | Жёлтый | Данные пригодны для OEE, возможны неточности в PdM |
| 50--69 | Удовлетворительно | Оранжевый | Требуется диагностика канала передачи данных |
| 0--49 | Неудовлетворительно | Красный | Данные непригодны для аналитики, необходимо вмешательство |
Флаги качества в ClickHouse
Каждая запись в таблице telemetry_raw содержит поле quality:
| Флаг | Код | Описание |
|---|---|---|
good | 0 | Значение достоверно |
uncertain | 1 | Значение получено с задержкой или пропуском |
bad | 2 | Значение за пределами допуска или застывшее |
Флаги устанавливаются сервисом telemetry-writer при записи и обновляются сервисом data-quality при ретроспективном анализе.
Визуализация
Дашборд качества данных отображает:
- Heatmap по оборудованию -- цветовая матрица (строки = оборудование, столбцы = параметры, цвет = балл)
- Тренд качества -- график изменения балла за последние 24 часа / 7 дней
- Список проблем -- таблица активных проблем с фильтрацией по типу и severity
- Детализация -- при клике на ячейку heatmap показываются подр обности по конкретному параметру
Пороги определения проблем (допустимый gap, окно stuck-детекции, границы outlier) настраиваются в субмодели TelemetryConfig для каждого параметра индивидуально. Значения по умолчанию задаются в StoragePolicy на уровне проекта.
Интеграция с другими сервисами
| Потребитель | Как использует данные качества |
|---|---|
| oee | Исключает интервалы с quality=bad из расчёта производительности |
| alarms | Ген ерирует алармы при падении качества ниже порога |
| diagnost | Отмечает спектры, рассчитанные по данным низкого качества |
| monitor | Агрегирует качество данных по проекту в SystemHealth |