Ни один проект связанный с данными не обходится без стадии Data Profiling. Давайте разбираться что это такое.
Data Profiling - это процесс исследования данных, понимания структуры, взаимосвязей, контекста и возможного применения этих данных в дальнейшем анализе.
Аналитик должен понять значение данных с точки зрения бизнеса и текущих процессов, а также описать как эти данные могут быть использованы в анализе.
Профайлинг данных помогает:
- В проектах связанных с исследованием систем-источников данных. В процессе data profiling могут быть подчеркнуты риски низкого качества данных, что повлияет на дальнейшее использование данных в BI инструментах и Data-продуктах
- При миграция данных из одной системы в другую (переезд с не поддерживаемых Legacy систем на новые решения). В процессе переезда важно понимать структуру, взаимосвязи и бизнес-контекст данных, также важно проверить качество данных и при необходимости повысить его с помощью интеграционных и ETL/ELT процессов.
- В процессе построение BI или Data продукта, которым пользуются конечные бизнес-пользователи. Data Profiling позволит подчеркнуть все риски качества данных, а также увеличит шансы применения данных в нужном ключе
Важное правило: Data Profiling необходимо планировать как можно раньше (на первых шагах) работы над проектом и продуктом. Это упростит понимание данных, а также даст возможность управлять поставленными требованиями с большей гибкостью.
- Data Profiling должен идти сразу после анализа и формулирования бизнес-требований. Вы должны понять, какие данные у вас есть и какие требования с помощью этих данных вы можете покрыть
- Важно оценить качество данных до этапа разработки. Может случится так, что качество одного источника данных очень низкое и вам придется искать другой источник. Это лучше делать в начале, чем потом мигрировать все решение на другой источник
- Вы должны проверять данные систематически. Нельзя слепо верить документации или описанной модели данных, они могут быть устаревшими или не совпадать с реальной структурой данных
Правильные вопросы при профайлинге данных:
- Какие таблицы у нас есть и какие атрибуты они в себя включают?
- Какие атрибуты включены в первичный ключ? Какой тип ключа используется (простой, составной, суррогатный)?
- Какой тип историчности и обновления данных используется в таблице?
- Как часто обновляются данные в таблице?
- Сколько пустых (blank или null) значений содержит каждый атрибут таблицы? Какой процент от общего количество строк содержит пустые значения?
- Сколько уникальных значений содержит каждый атрибут таблицы?
- Какие самые популярные значения атрибутов? Если числовые значения, то какое минимальное, максимальное и среднее значение?
- Какие корреляции есть между значениями атрибутов? Есть ли в этом зависимость от описываемого бизнес-процесса?
Как итог после успешного профайлинга данных вы получите:
- Понимание данных, атрибутов, взаимосвязей
- Понимание бизнес-области применения данных
- Описанное качество данных и возможное улучшение этого качества при помощи дальнейшей обработки данных
- Сокращение процесса разработки путем проведения профайлинга и выявления всех зависимостей перед самой разработкой
- Большее покрытие бизнес-требований