Совет №59. Удивительная польза профилирования данных
Дата оригинальной публикации: 2004-09-14
Автор оригинала: Ralph Kimball
Перевод на русский язык: Антон Задорожный
Оригинальный документ располагается здесь
Профилирование данных это серая лошадка технологий хранилищ данных. Мне кажется что большинство из нас думает о профилировании данных, как о чем-то, что вы делаете после того как была построена система ETL. В этом представлении, профилирование отыскивает небольшие аномалии, что могут потребовать очистки перед загрузкой данных в промышленную среду. Обнаружение этих аномалий перед переходом в промышленную среду должно предохранить команду разработчиков хранилища данных от маленьких сюрпризов.
В последние годы, при работе над новой книгой об ETL с Joe Caserta я глубоко погружался в детали ETL процессов, необходимых для построения хранилища данных. Возможно самым большим откровением было открытие степени недооценки профилирования данных в типичном проекте по созданию хранилища.
Что такое профилирование данных?
Профилирование данных это систематический упреждающий анализ данных систем-источников, начиная от подсчета байтов и проверки количества элементов до самого глубокого анализа соответствия данных высокоуровневым целям хранилища данных.
Практики профилирования данных разделяют анализ на последовательность проверок, начиная с отдельных полей и заканчивая всеми таблицами базы данных. Отдельные поля проверяются на соответствие содержимого определениям базового типа данных и домена. Особенно полезно оценить количество строк содержащих пустое значение (NULL) или нарушающих определение домена. Например, если определение домена это «телефонный номер», то текстовые записи четко иллюстрируют проблему. Лучшие инструменты профилирования данных подсчитывают, сортируют и отображают записи нарушающие определения типа данных и домена.
Двигаясь от единичных полей, профилирование данных описывает связи, обнаруженные между полями одной таблицы. Поля реализующие ключ таблицы могут быть отображены, вместе с высокоуровневыми отношениями один-ко-многим, реализующими иерархии. Проверка того что дожно быть ключом особенно важна, так как нарушения (дубликаты значений ключа) являются или серьезной ошибкой или отражают бизнес-правило, которое не было учтено при разработке ETL.
Отношения между таблицами также проверяются на шаге профилирования данных, включая предполагаемые отношения внешний ключ – первичный ключ и наличие родителей без потомков.
Наконец, профилирование данных может быть специально настроено для проверки сложных и уникальных бизнес-правил, таких как проверка выполнения всех условий для одобрения финансирования серьезных действий на рынке ценных бумаг.
Надеюсь что по мере того как я описывал возможности профилирования данных вы представили себе этот процесс как нечто в самом начале проекта, где профилирование может значительно помочь разработке и сократить время. В сущности, я пришел к выводу что профилирование данных должно быть обязательным «следующим шагом», после сбора бизнес-требований, в каждом проекте по созданию хранилища данных. В ходе моего последнего исследования ETL я пришел к следующему списку того, что может быть сделано с помощью профилирования:
- Общее решение «Продолжать – Не продолжать» для всего проекта! Профилирование может обнаружить что данные, от которых зависит проект, просто не содержат информации на базе которой могут приниматься планируемые решения. Значение такого результата трудно переоценить, несмотря на сопряженные разочарования.
- Проблемы с качеством данных в системах-источниках, которые должны быть решены (внесением изменений в источники) до продолжения проекта. Несмотря на немного меньший драматизм чем отмена всего проекта, эти изменения являются огромной внешней зависимостью, которой нужно уметь управлять чтобы достичь успеха с хранилищем данных.
- Проблемы с качеством данных, которые могут быть решены в ETL процессе, после того как данные были извлечены из источников. Понимание этих проблем влияет на логику трансформаций в ETL и на механиз обработки исключений. Эти проблемы также являются подсказкой в оценке времени, ежедневно требуемого для ручной обработки и исправления ошибок.
- Непредвиденные бизнес-правила, иерархические структуры, отношения внешний ключ – первичный ключ. Понимание данных на детальном уровне предостережет от серьезных проблем в разработанной ETL системе.
Наконец, важным достоинством (о котором, возможно, лучше умолчать при разговоре с руководством) профилирования является тот факт, что команда внедренцев выглядит как будто они знают что делают. Корректно предсказывая сложности с качеством данных, команда избегает неприятных (для карьеры) сюрпризов при нахождении БОЛЬШИХ проблем в самом конце проекта.
Материал опубликован с разрешения компании Ralph Kimball Associates
Для удобства отслеживания новых публикаций рекомендуем подписаться на рассылку или на канал RSS.