Качество данных — важный аспект, напрямую влияющий на результаты аналитической обработки. Существует множество причин, которые приводят к загрязнению информации. Типичной проблемой является возникновение повторяющихся записей. В статье рассмотрим применение обработчика «Дубликаты и противоречия» для быстрого поиска записей с полностью или частично совпадающими полями.
Одной из проблем работы с большим количеством записей является возникновение в массиве их копий. Это может произойти, например, в результате ошибки менеджера или в случае предоставления клиентом некорректной информации. Особенно часто дубликаты встречаются, когда данные консолидируются из разных источников.
При этом записи могут повторять содержание друг друга как полностью (дубликаты), так и частично (противоречия). В первом случае информация не несет никакой практической ценности, т.к. уже содержится в хранилище. Все копии, кроме одной, удаляются в процессе очистки данных.
Работа с противоречиями менее однозначна. В зависимости от обрабатываемой информации они могут восприниматься и как ошибки, и как реальные данные.
Например, в базе заемщиков кредита могут быть люди с полностью совпадающими фамилиями, именами и отчествами, но разными идентификаторами и суммами долга. Такие записи нельзя удалять или агрегировать.
С другой стороны, встречаются ситуации, когда необходимо немедленно избавиться от найденных противоречий. Например, когда один и тот же товар дублируется в базе данных магазина с различными значениями цены.
Обилие дубликатов и противоречий приводит к искажению информации, на основе которой принимаются управленческие решения, что провоцирует рост издержек и репутационные потери. Поэтому важно как можно быстрее выявлять такие записи и удалять их в случае, когда это необходимо.
Ниже представлен сценарий Loginom, который осуществляет поиск и удаление дубликатов записей о кредитных клиентах банка.
Сценарий 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
На выходном порте сформируется таблица, в которой каждой группе дубликатов будет соответствовать только одна запись. Далее необходимо объединить полученные записи и данные со второго выходного порта обработчика «Фильтр строк» в одну таблицу. Для этого добавим узел «Объединение» на область построения сценария. В настройках установим соответствие между полями главной и присоединяемой таблиц.
Объединение в Loginom
После выполнения узла «Объединение» на его выходном порте сформируется очищенная от дубликатов таблица.
Очищенная от дубликатов таблица
При работе с массивом данных невозможно застраховаться от появления дубликатов и противоречий.
Обилие таких записей приводит к массе негативных последствий:
Кроме того, наличие дубликатов и противоречий в клиентских данных ведет к репутационным потерям. Повторяющиеся рассылки, звонки и другие действия отвлекают и раздражают. Например, дублирование клиентских данных в базе маркетплейса приводит к многократной отправке запросов на оплату одной и той же товарной позиции.
С помощью обработчика «Дубликаты и противоречия» Loginom позволяет быстро находить в большом массиве данных копии записей, а применив остальной функционал платформы — производить очистку данных.
Другие материалы по теме:
Очистка данных. Кейс медицинской лаборатории Инвитро