Качество данных — важный аспект, напрямую влияющий на результаты аналитической обработки. Существует множество причин, которые приводят к загрязнению информации. Типичной проблемой является возникновение повторяющихся записей. В статье рассмотрим применение обработчика «Дубликаты и противоречия» для быстрого поиска записей с полностью или частично совпадающими полями.
Одной из проблем работы с большим количеством записей является возникновение в массиве их копий. Это может произойти, например, в результате ошибки менеджера или в случае предоставления клиентом некорректной информации. Особенно часто дубликаты встречаются, когда данные консолидируются из разных источников.
При этом записи могут повторять содержание друг друга как полностью (дубликаты), так и частично (противоречия). В первом случае информация не несет никакой практической ценности, т.к. уже содержится в хранилище. Все копии, кроме одной, удаляются в процессе очистки данных.
Работа с противоречиями менее однозначна. В зависимости от обрабатываемой информации они могут восприниматься и как ошибки, и как реальные данные.
Например, в базе заемщиков кредита могут быть люди с полностью совпадающими фамилиями, именами и отчествами, но разными идентификаторами и суммами долга. Такие записи нельзя удалять или агрегировать.
С другой стороны, встречаются ситуации, когда необходимо немедленно избавиться от найденных противоречий. Например, когда один и тот же товар дублируется в базе данных магазина с различными значениями цены.
Обилие дубликатов и противоречий приводит к искажению информации, на основе которой принимаются управленческие решения, что провоцирует рост издержек и репутационные потери. Поэтому важно как можно быстрее выявлять такие записи и удалять их в случае, когда это необходимо.
Ниже представлен сценарий Loginom, который осуществляет поиск и удаление дубликатов записей о кредитных клиентах банка.
В таблице ниже представлены ФИО, уникальный идентификатор клиента и сумма его кредита в рублях.
Идентификатор | Фамилия | Имя | Отчество | Кредит, руб. |
---|---|---|---|---|
105441 | Абдулов | Иван | Михайлович | 245784,51 |
105442 | Борисов | Юрий | Иванович | 35435,5 |
105442 | Борисов | Юрий | Иванович | 35435,5 |
105443 | Волынкин | Илья | Олегович | 75120,48 |
105444 | Голыгин | Тимур | Сергеевич | 354354,65 |
105445 | Дорохов | Олег | Петрович | 6743,45 |
105445 | Дорохов | Олег | Петрович | 6743,45 |
105446 | Дорохов | Олег | Петрович | 41425,47 |
105447 | Екимова | Ольга | Егоровна | 54213,54 |
105448 | Екимова | Ольга | Егоровна | 75531,48 |
105449 | Железнова | Ирина | Юрьевна | 57841,7 |
105450 | Золотов | Илья | Аркадьевич | 3453,64 |
105451 | Игнатов | Сергей | Валерьевич | 53434,84 |
105451 | Игнатов | Сергей | Валерьевич | 53434,84 |
105452 | Костомаров | Андрей | Геннадьевич | 57547,75 |
105453 | Лазорев | Иван | Сергеевич | 354394,15 |
105454 | Матийченко | Юлия | Ивановна | 24423,15 |
105455 | Носов | Петр | Васильевич | 68745,3 |
105456 | Орлов | Илья | Иванович | 58574,74 |
Произведем анализ информации о заемщиках с целью очистки данных от дубликатов записей.
В Loginom создан специализированный обработчик «Дубликаты и противоречия» для поиска полных и частичных копий записей. Перенесем его на область построения сценария, подав на входной порт исходные данные.
Настройка самого узла максимально простая, достаточно присвоить каждому из входных столбцов одно из трёх значений:
Важно обязательно установить значение «Входное» хотя бы для одной колонки. В противном случае, система сообщит об ошибке: «Не указаны столбцы для обработки».
После запуска узла на выполнение на выходном порте сформируется таблица, в которой каждая запись исходных данных будет проверена на наличие противоречий и дубликатов.
Для отображения результатов исследования предусмотрен специальный визуализатор, который доступен только в данном обработчике и носит одноименное название. На правой панели необходимо выбрать визуализатор «Дубликаты и противоречия». Далее нажать «Добавить визуализатор» в блоке «Компонент».
В визуализаторе к исходной таблице по умолчанию добавляются два столбца: «Группа дубликата» и «Группа противоречия», где каждой серии присваивается порядковый номер, начиная с 1. В случае, если совпадения не найдены, поля остаются пустыми. Кроме того, доступна настройка отображения столбцов «Дубликат» и «Противоречие» со значениями «Истина»/«Ложь».
В полученной таблице визуализатора каждая запись относится к одному из четырех типов.
В приведенном примере присутствуют три группы дубликатов по две записи в каждой. Они создают избыточность данных, занимают дисковое пространство, никак не обогащая массив информации. В процессе очистки из каждой группы дубликатов необходимо оставить по одной записи, а остальные удалить.
Кроме того, в таблице присутствуют две группы противоречий. К первой из них относятся три записи, две из которых имеют одинаковое значение выходного поля «ID» — 105445 — и являются копиями друг друга. Работа с ними будет производиться как с дубликатами. Противоречие в данном случае задается записью со значением поля «ID» — 105446. Сумма кредита отличается от предыдущих записей. Это говорит о том, что два человека с полностью совпадающими фамилиями, именами и отчествами взяли кредиты в этом банке. Во второй группе противоречий наблюдается аналогичная ситуация. Поэтому обработка противоречий в данном случае производиться не будет.
Для очистки данных необходимо сначала отсортировать записи, которые помечены как дубликаты. Воспользуемся обработчиком «Фильтр строк».
На первом выходном порте сформируется таблица со всеми дубликатами, а на втором — с остальными записями. Далее объединим копии записей с помощью узла «Группировка». В настройках в качестве поля группировки необходимо задать «Группа дубликата», а все остальные поля перенести в «Показатели». Для того, чтобы значения полей не изменялись, выберем вид агрегации «Первый».
На выходном порте сформируется таблица, в которой каждой группе дубликатов будет соответствовать только одна запись. Далее необходимо объединить полученные записи и данные со второго выходного порта обработчика «Фильтр строк» в одну таблицу. Для этого добавим узел «Объединение» на область построения сценария. В настройках установим соответствие между полями главной и присоединяемой таблиц.
После выполнения узла «Объединение» на его выходном порте сформируется очищенная от дубликатов таблица.
При работе с массивом данных невозможно застраховаться от появления дубликатов и противоречий.
Обилие таких записей приводит к массе негативных последствий:
Кроме того, наличие дубликатов и противоречий в клиентских данных ведет к репутационным потерям. Повторяющиеся рассылки, звонки и другие действия отвлекают и раздражают. Например, дублирование клиентских данных в базе маркетплейса приводит к многократной отправке запросов на оплату одной и той же товарной позиции.
С помощью обработчика «Дубликаты и противоречия» Loginom позволяет быстро находить в большом массиве данных копии записей, а применив остальной функционал платформы — производить очистку данных.
Другие материалы по теме:
Очистка данных. Кейс медицинской лаборатории Инвитро