Дата публикации оригинала - 2008-06-07

Стратегия проверки качества данных и тестирования процессов обработки данных в хранилище данных включает достижение следующих целей:

  1. Обеспечение качества загружаемых данных;
  2. Обеспечение качества загрузки, обработки и преобразования данных;
  3. Обеспечение качества расчета метрических величин и агрегации данных.

Как вариант, эти цели могут быть достигнуты выполнением следующих задач.

Обеспечение качества загружаемых данных

  1. На основании первоначальных требований к хранилищу данных, определить обязательные поля, которые должны присутствовать в экстракте данных, и их формат;
  2. Определить структуру записи в экстракте (последовательность полей в записи, их длина и т.п.).

Обеспечение качества загрузки, обработки и преобразования данных

  1. Реализовать правила проверки записей в экстракте: все правильные записи должны быть загружены в staging-таблицы, а все неправильные записи (с неправильной структурой, форматом данных или отсутствующим значением в обязательном поле) - в в bad-таблицы;
  2. Реализовать бизнес-правила логической проверки записей в staging-таблицах (зависимости между записями для правильной консолидации записей, зависимости между значениями полей в одной записи и т.п.). Все записи, не прошедшие проверку, должны быть помечены как не релевантные для преобразования, консолидации и загрузки в таблицы фактов;
  3. Проверить и обеспечить сопоставимость значений полей из разных экстрактов, загружаемых в одно поле таблицы фактов. Например, в поле “Объем торгов” таблицы фактов должны записываться только значения полей экстрактов, которые определяют объем торгов. При этом должна использоваться одна величина измерения (сотня, тысяча, миллион). Эта задача сводится к определению conformed-фактов;
  4. Проверить и обеспечить сопоставимость значений полей из разных экстрактов, которые используются для связи факта с записью из таблицы размерности. Например, для связи записи в таблице фактов с записью в таблице размерности дат по полю “Дата ввода в систему” должны использоваться сопоставимые значения полей экстрактов. Эта задача сводится также включает определение conformed-размерностей;
  5. Проверить и обеспечить возможность установления связей факт-факт, если это необходимо, т.е. обеспечить возможность связи нескольких фактов в одной или из нескольких таблиц между собой (например, trade - fail - fail management);
  6. Проверить и обеспечить правильность связей факт-размерность. Эта задача сводится к реализации и проверке правильности работы процедур сопоставления значений (mapping);

Обеспечение качества расчета метрических величин и агрегации данных

  1. Проверить и обеспечить правильность расчета метрических величин в таблице фактов;
  2. Проверить и обеспечить правильность агрегации данных в таблицах агрегации. Эта задача сводится к реализации и проверке правильности работы процедур агрегации данных. Также необходимо проверить правильность агрегации числовых значений (суммирования, вычисления средних значений и т.д.).

Как общее решение, может использоваться следующий подход для реализации некоторых из описанных задач:

  1. Создание репрезентативной выборки данных для каждого экстракта (~50-70 записей) и внесение “шумов” в записи (нарушение структуры записей, формата данных, отсутствие обязательных полей, логические ошибки в данных и т.д.);
  2. Для каждой записи (транзакции) в выборке рассчитываются метрики, которые должны быть получены после загрузки записей в таблицу фактов;
  3. Для результирующих записей, которые должны попасть в таблицы фактов, определяются агрегации, которые должны быть получены в результате выполнения процедур агрегации данных из таблицы фактов.

Сформированная выборка используется для проверки правильности обработки, преобразования и агрегации данных, а также расчета метрик, если таковые используются. Помимо этого, могут быть сформированы промежуточные выборки для unit-тестов отдельных этапов преобразования данных: загрузка экстракта в staging-таблицы, проверка логической структуры данных, консолидация, преобразование и расчет метрик, агрегация данных.

Автор: Олег Усольцев
Материал опубликован в блоге Олега Усольцева


Для удобства отслеживания новых публикаций рекомендуем подписаться на рассылку или на канал RSS.

Читайте также: