Управление качеством данных
Итак, у нас есть данные, и есть требования к ним. От кого? От тех, кто будет ими пользоваться. Если те, кто ставит задачу говорят что «данные плохие» и не могут сформулировать критерии к качеству данных, им можно их подсказать, подсмотрев в предыдущей статье. Таким образом, управление качеством данных — это, в первую очередь, методология, которая обеспечивает некий уровень качества в отношении выбранных данных.
Управление качеством данных — это постоянный процесс. Да, для начала неплохо разобраться с уже имеющимися данными, но наша задача сделать так, чтобы все новые данные, попадающие в систему, проверялись, валидировались, насыщались и, в итоге, соответствовали предъявляемым к ним требованиям. Управление качеством, кстати, является важной частью управления Нормативно-Справочной информацией, MDM (Master Data Management).
Как же сделать так, чтобы данные попадали в системы уже «чистыми»? Думаю, что самый оптимальный способ — это правильно настроить поля ввода, не допуская ввод заведомо некорректный значений, а также предлагать автозаполнение по возможности: например, выбор адреса доставки предлагать из КЛАДР, а данные о компании автоматически заполнять используя специальные сервисы. Таким образом, и людям надо будет вводить меньше информации, и вероятность ошибки будет гораздо меньше.
Только не надо слишком «закручивать гайки»: я встречал, когда сайт понимал только номер телефона +7 ___ ____, и знакомые из Белорусии с другим сотовым не могли себе заказать пиццу. Требования только цифр в индексе автоматом запретит вводить индексы из ряда других стран, а выбор исключительно адресов из КЛАДР отсечет всех, у кого адрес по каким-то причинам в него не включен. Таким образом, если все введено автоматом, то можно ставить галочку что все ок, а если адрес был введен вручную — можно поставить флаг «тревога» и отправить данные на дополнительную проверку. И, при необходимости, дополнительного насыщения собственных мастер — справочников, такие как адреса.
Если мы говорим про проверку существующих данных, то она начинается не с оценки качества, а с «Data Integrity» — проверки на целостность данных, их доступность и проверку источников — точно ли данные получены из «правильного источника», согласованность данных, соответствие хранимых данных в системе с их наименованием.
И при вводе новых данных, и при анализе существующих обычно применяют следующие методы проверки данных, связанных с качеством данных (как мы уже знаем, это точность, полнота, непротиворечивость, достоверность и уникальность):
Точность (Accuracy): Насколько данные соответствуют реальности и не содержат ошибок, такие как опечатки. По возможности, данные сравниваются с мастер-данными, и при расхождении или автоматически исправляются, или идут на валидацию сотруднику отдела НСИ (Иногда обозначается модным словом «Data Steward»). Вообще, конечно, золотое правило — стараться изначально не допустить ошибок или исправить их автоматом, иначе дата-стюард имеет шанс просто потонуть в ваших заявках на исправление данных.
Полнота (Completeness): Насколько данные полны и содержат всю необходимую информацию. Пример неполных данных — это нулевые значения, или отсутствие улицы в адресе, или номера телефона, или адреса электронной почты. Здесь важно требование бизнеса и под какие задачи необходим тот или иной сет данных — одним достаточно ФИО и электронной почты, а другом подавай телефон или дату рождения. На этом этапе также проводится возможное «насыщение» записи из других возможных источников. Например, если ИНН у нас валиден, то можно запросить из стороннего сервиса дополнительную информацию о компании, такую как юридический адрес.
Непротиворечивость (Consistency, которую иногда переводят как «Согласованность»): Согласованность данных между различными системами, причем в едином формате. То есть если у вас в одной системе даты записаны в разных форматах (например, ДД/ММ/ГГГГ и ММ/ДД/ГГГГ) — это нарушает принцип непротиворечивости и может вызвать проблемы в интеграции и анализе данных. Здесь как идет проверка на соответствие шаблонам и приведение записей к единому стандарту — той же дате или времени в едином формате UTC.
Достоверность (Validity): Насколько данные соответствуют бизнес-правилам и ограничениям, определенным для них. Достоверные данные попадают в ожидаемый диапазон и соответствуют указанным критериям. Например, допустимая дата рождения должна попадать в определенный диапазон, а цена продукта должна быть положительным значением. Здесь еще полезна проверка на смесь латинских и кириллических символов, а то некоторые хитрые сотрудники заводят дубликаты, вставляя латинские символы в кириллические названия. На глаз это не отличишь, а для системы это — две разных позиции.
Уникальность (Uniqueness): Насколько данные уникальны и не дублируют друг друга. Здесь наше все — дедубликация, в процессе которой находятся одинаковые записи и система по неким правилам пытается «склеить» из них одну полную запись, по возможности используя более «свежие» данные. Например, если мы нашли 2 записи клиента с разными почтами, то мы можем или отдать их на проверку дата-стюарду для проверки, если мы не уверены, что это один и тот же человек, или автоматически оставить одну запись, обновив e-mail на более «свежий».
Если планировать проект по очистке существующих данных, то в нем выделяют следующие этапы:
Профилирование или Оценка: аудит данных с целью понять их текущее плачевное состояние. Например, оценить заполненность полей «Компания», «Телефон», и «e-mail». «Дата рождения» можете даже не смотреть.
Очистка и обогащение: выполнение всех вышеуказанных действий по улучшению качества данных: удаление дублей; исправление ошибок; заполнение пропущенных данных, таких как адрес; проверка, попадают ли данные в нужный диапазон и так далее.
Стандартизация: Приведение данных к единому формату показателей. Например, использование унифицированного формата для телефонных номеров или времени.
Мой любимый, «Процесс непрерывного совершенствования»: ставим процесс на поток, подключаем мониторинг и осуществляем постоянный контроль новых данных.
Исправление: Если данные не соответствуют требованиях, они должны быть как можно быстрее исправлены, если не получается их исправить автоматом — то они должны ставится в очередь на проверку дата-стюарду или просто ответственному сотруднику. А, может, и Искусственному Интеллекту.
Таким образом, вам, возможно, даже и не надобятся специализированные решения по управлению качеством данных: вы можете использовать и имеющиеся в вашем распоряжении инструменты. Я видел примеры, когда для этих задач компании использовали имеющуюся у них платформу по интеграции данных, что меня удивило. И, кстати, подвигло на написание этой статьи.