Learning Platform
Глоссарий Troubleshooting
Урок 05.01 · 20 мин
Средний
Data QualityQuality DimensionsCompletenessAccuracyConsistency

Измерения качества данных

Введение

Когда руководитель ДатаТех спрашивает “у нас хорошие данные?”, команда не может ответить — потому что нет определения “хорошие”. Data Quality (качество данных) — это не субъективная оценка, а измеримая характеристика, определяемая через конкретные Data Quality Dimensions (измерения качества данных). В этом уроке мы разберём шесть базовых измерений по DMBOK2 и научимся количественно оценивать качество данных.

Шесть измерений качества данных

Data Quality Dimensions (измерения качества данных) — стандартные категории для оценки качества. DMBOK2 определяет шесть базовых измерений:

1. Completeness (полнота)

Доля заполненных (non-null) значений в датасете. Если в таблице клиентов 1000 записей и у 200 из них отсутствует email — полнота поля email = 80%.

# Базовый расчёт полноты
completeness = count_non_null / count_total  # 0.0 - 1.0

2. Accuracy (точность)

Степень соответствия данных реальному миру. Если клиенту 25 лет, а в базе записано 250 — данные неточные. Accuracy часто требует внешнего эталона для сверки.

3. Consistency (консистентность)

Согласованность данных между системами и внутри одной записи. Если в PostgreSQL клиент “Иванов”, а в ClickHouse — “Иванова” для того же customer_id — нарушена консистентность.

4. Timeliness (своевременность)

Актуальность данных относительно SLA. Если аналитический склад обновляется ежедневно, но данные за вчера ещё не загружены — нарушена своевременность.

5. Uniqueness (уникальность)

Отсутствие дубликатов. Если один и тот же клиент представлен тремя записями с разными ID — уникальность нарушена.

6. Validity (валидность)

Соответствие данных определённым форматам и бизнес-правилам. Например, email должен содержать ”@”, возраст — быть в диапазоне 0-120, статус заказа — из фиксированного списка.

-- dbt test для validity
SELECT *
FROM orders
WHERE status NOT IN ('pending', 'confirmed', 'shipped', 'delivered', 'cancelled');
Проверка знанийKnowledge check
В таблице orders у 5% записей поле customer_id = NULL, а у 3% записей customer_id ссылается на несуществующего клиента. Какие два измерения качества нарушены?
ОтветAnswer
Нарушены Completeness (полнота) -- 5% записей с NULL customer_id, и Validity (валидность) -- 3% записей ссылаются на несуществующие записи (нарушение referential integrity). Accuracy здесь не подходит, потому что значения не 'неточные', а отсутствующие или невалидные.

Data Quality Scorecard

Для системной оценки качества используется Data Quality Dashboard (дашборд качества данных) — визуализация, агрегирующая метрики по всем измерениям в единый scorecard. Каждое измерение получает оценку от 0.0 до 1.0, а общий Data Quality Score вычисляется как взвешенное среднее.

DataTech Solutions: Data Quality Scorecard
72Completeness
85Accuracy
60Consistency
50Timeliness
85Uniqueness
78Validity
Средний балл:72/ 100

На дашборде видно, что у DataTech Solutions (ДатаТех Солюшенз) наибольшие проблемы с Timeliness (0.50) и Consistency (0.60). Это типично для организации Level 1: нет SLA на обновление данных, нет процесса синхронизации между системами.

Подход к оценке качества

Оценка качества — не разовый аудит, а непрерывный процесс. Data Quality Rules (правила качества данных) формализуют проверки для каждого измерения:

ИзмерениеПример правилаSeverity
Completenesscustomer_id IS NOT NULLcritical
Accuracyage BETWEEN 0 AND 120warning
Consistencypg.email = ch.email (cross-system)critical
Timelinessupdated_at >= NOW() - INTERVAL '24 hours'warning
UniquenessCOUNT(DISTINCT id) = COUNT(id)critical
Validityemail LIKE '%@%.%'warning

Каждое правило привязано к конкретному измерению и имеет severity: critical (блокирует пайплайн), warning (генерирует алерт), info (для отчётности).

Сценарий: ДатаТех и БиоГенезис

Сценарий: DataTech Solutions (ДатаТех Солюшенз)

В ДатаТех Data Engineer Алексей получил задачу: “Оцени качество данных клиентов”. Без фреймворка измерений это превращается в бессистемный поиск проблем. С шестью измерениями задача декомпозируется:

  1. Completeness: SELECT COUNT(*) FILTER (WHERE email IS NULL) FROM customers — 30% NULL emails
  2. Uniqueness: SELECT email, COUNT(*) FROM customers GROUP BY email HAVING COUNT(*) > 1 — 15% дубликатов
  3. Validity: SELECT COUNT(*) FILTER (WHERE email NOT LIKE '%@%.%') FROM customers — 5% невалидных email

Для сравнения: BioGenesis Lab (БиоГенезис Лаб)

В БиоГенезис качество клинических данных — не просто метрика, а регуляторное требование. Ошибка в дозировке препарата (Accuracy) или пропущенный результат анализа (Completeness) может повлиять на клиническое исследование. Здесь Data Quality SLA (SLA качества данных) определяется не бизнесом, а регулятором: completeness >= 99.5% для клинических данных.

Проверка знанийKnowledge check
Почему для клинических данных БиоГенезис порог completeness (99.5%) значительно выше, чем типичный корпоративный порог (95%)?
ОтветAnswer
Клинические данные напрямую влияют на здоровье пациентов и результаты исследований. Пропущенный результат анализа может исказить статистику клинического испытания и привести к неверным выводам о безопасности препарата. Регулятор (GCP стандарты, 323-ФЗ) устанавливает жёсткие требования, потому что цена ошибки -- человеческие жизни, а не потерянная выручка.

Итоги

  • Data Quality Dimensions — шесть стандартных категорий оценки: completeness, accuracy, consistency, timeliness, uniqueness, validity
  • Каждое измерение выражается числовым score (0.0-1.0) и имеет целевой порог (target)
  • Data Quality Rules формализуют проверки для каждого измерения с уровнями severity
  • Data Quality Scorecard агрегирует метрики в единый дашборд для мониторинга
  • Порог quality зависит от контекста: корпоративные данные (95%), клинические данные (99.5%+)

В следующем уроке мы научимся программно измерять Completeness — наиболее фундаментальное измерение качества, с которого начинается любой DQ-аудит.

Проверьте понимание

Результат: 0 из 0
Прикладной
Вопрос 1 из 5. В таблице customers у 20% записей отсутствует email, у 5% записей возраст равен 999, у 10% записей customer_id дублируется. Какие три измерения качества нарушены соответственно?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 8