Найти тему

Мониторинг качества данных в ETL процессах


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

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

1️⃣ Проверка объемов
Сколько выгрузили = столько должны загрузить. Это работает, если в процессе у нас не участвуют этапы трансформации в виде фильтрации, либо агрегации. Выгрузили из источника данных 1000 строк и в таком же виде эти 1000 строк переложили в хранилище данных.
Если объемы не совпадают - срабатывает алерт, либо специальны мониторинг.

🔎 Алерт (alert) - сигнал, уведомление для человека, что что-то пошло не по плану.

2️⃣ Проверка контрольных сумм
Работает тогда, когда в данных есть числовые метрики, например сумма продаж, стоимость продуктов и т.п.
Можно считать общую сумму по набору забираемых данных и сравнивать с суммой загруженных по итогу данных в целевую систему. Например, забираем из источника 1100 строк, с общей суммой по столбцу sale_amount = 350к. + стоит правила на фильтрацию данных с заказами, где sale_amount = 0. В итоге загрузили в целевую систему уже только 900 строк (объем был 1100), а по сумме заказов sale_amount = 350к, т.е. все хорошо. Просто в процессе правильно отфильтровались нулевые заказы и даже можно считать сколько таких было.

3️⃣ Частота выгрузки
Большая часть процессов работает по расписанию. Например, мы вугружаем данные 1 раз в час.
Т.е. каждый час у нас происходит: выгрузка, трансформация, загрузка почки данных.
Если в очередной час выгрузка не сработала - это повод для алерта.

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

Накидайте реакций, если вам интересна эта тема и стоит еще про нее рассказывать 😉
2 минуты