Как вы проверяете правильные данные в киоске данных? - PullRequest
3 голосов
/ 10 марта 2010

Я работаю над хранилищем данных и пытаюсь выяснить, как наилучшим образом убедиться, что данные из нашей базы данных очистки данных (нормализованной) правильно попадают в наши витрины. Я провел некоторые поиски, но результаты пока говорят больше о том, чтобы гарантировать наличие таких вещей, как ограничения, и что вам необходимо выполнить проверку данных в процессе ETL (например, даты действительны и т.д.). Измерения были довольно просты, так как я мог легко использовать первичный ключ или написать очень простой и поддающийся проверке запрос для получения данных. Таблицы фактов являются более сложными.

Есть мысли? Мы пытаемся упростить экспорт объектов для выполнения нескольких запросов, просмотра некоторых данных как из базы данных очистки данных, так и из витрин данных, и визуально сравнить их, чтобы убедиться, что они правильные.

Ответы [ 2 ]

4 голосов
/ 11 марта 2010

Вы проверяете загрузку таблицы фактов, внедряя упрощенное урезанное подмножество той же обработки данных в другом месте и сравнивая результаты.

Вы рассчитываете одинаковые итоги, подсчеты или другие цифры как минимум дважды. Однажды из самой таблицы фактов, после того, как она закончила загрузку, и однажды из какого-то другого источника:

  • напрямую к исходным данным, контролируя все этапы очистки между источником и фактом
  • исходный системный отчет, который, как известно, является правильным
  • и т.д.

Если вы делаете это в базе данных, вы можете написать каждый тест как запрос, который не возвращает записей, если все правильно. Любые возвращаемые записи являются исключениями: число x по (y, z) не совпадает.

См. Превосходную запись от ConcernedOfTunbridgeWells для получения дополнительных рекомендаций.

0 голосов
/ 22 марта 2010

Хотя у него есть некоторые недостатки и потенциальные проблемы, если вы много очищаете или преобразуете, я обнаружил, что вы можете использовать входной файл в обоих направлениях, заново сгенерировав входной файл из схемы (звездочек). Затем просто сравнив входной файл с выходным файлом. Может потребоваться некоторый массаж, чтобы привести их в соответствие (один дополнен левым, другой - правым).

Как правило, у меня была программа, которая использовала ту же компоновку, что и ETL, и выполняла сравнение, игнорируя выравнивание внутри поля. Кроме того, файлы могут быть отсортированы - есть сортировка командной строки, которую я использовал.

Если ваш ETL выполняет преобразование неправильно и вы преобразовываете неправильно, все еще возможно, что этот метод не показывает все проблемы в DW, и я бы не стал утверждать, что он имеет полное покрытие, но это довольно хороший первый удар при модульном тесте регрессии для каждой нагрузки.

...