В дополнение к обзорной статье про Data Quality Services хотелось бы поговорить о некоторых практических аспектах использования этого компонента, входящего в состав SQL Server.
Для решения каких задач можно использовать DQS
DQS можно использовать для следующих задач:
- автоматическая выверка, очистка и удаление дублей в больших массивах данных о физических и юридических лицах:
- проверка корректности формата e-mail адресов, телефонов, номеров паспорта, ИНН, КПП, банковских реквизитов, СНИЛС и т.д.;
- простановка почтовых индексов на основании адреса;
- проверка корректности, согласованности и определение пола по имени и отчеству;
- корректировка и приведение к стандартному виду почтовых адресов (при наличии общей базы адресов);
- и т.д. (пожалуйста, высылайте дополнения к этим примерам)
Создание базы знаний DQS с использованием составных доменов и бизнес-правил
При создании базы знаний задаются домены (соответствующие колонкам исходных наборов данных), которые будут проходить очистку и дедупликацию. При необходимости можно задавать составные домены, т.е. домены, состоящие из нескольких обычных доменов.
Для имеющихся доменов можно создавать бизнес-правила, обеспечивающие корректность данных в домене, в том числе:
- типичные альтернативные названия и правила их преобразования в правильные названия;
- отслеживание допустимых диапазонов значений, правильных типов данных;
- проверка соответствия шаблону (например, что e-mail представляет одно или несколько слов, разделенных точками плюс символ «@» плюс как минимум два слова разделенных точками; при этом слово – последовательность латинских букв, цифр и некоторых разрешенных символов);
- правила корректировки составных доменов (например, если город – Екатеринбург, то субъект РФ – Свердловская область);
- правило по отправке данных для очистки с помощью специального облачного сервиса (например, сверить адрес с общей базой адресов);
- и так далее.
Очистка данных в автоматическом режиме (проект SSIS c преобразованием DQS Cleansing)
В типовом пакете очистки данных новые справочные данные сравниваются с нормативно-справочной информацией (НСИ). Если данные есть в системе управления НСИ, они направляются в промежуточную область хранилища данных, а если нет, они могут быть направлены в преобразование DQS Cleansing для предварительной очистки (источник: Matt Masson. EIM presentation material from DevTeach Montreal).
В результате очистки преобразованием DQS Cleansing данные классифицируются: новые, корректные и откорректированные.
Откорректированные данные снова сравниваются с данными в системе управления НСИ. Если соответствие найдено, они направляются в промежуточную область хранилища данных.
Если соответствие откорректированных данных все еще не найдено, данные направляются в промежуточную таблицу для ручной обработки с помощью DQS наравне с новыми записями, а также в систему управления НСИ наравне с корректными записями, которых нет в НСИ.
Гибкая дедупликация данных в ручном режиме (проект DQS)
Для более гибкой настройки дедупликации можно использовать клиентское приложение DQS, где с помощью Matching Policy индивидуально для каждого домена можно задать его вес при сопоставлении, а также при необходимости указать требование изначальной идентичности (источник: Jeremy Kashel. DQS Matching Vs SSIS Fuzzy Grouping and Lookup).
DQS выполняет сопоставление данных и дедупликацию путем сравнения каждой строки со всеми остальными строками с использованием настроек Matching Policy, заданных в базе знаний.
Результат сопоставления с учетом ручных корректировок может быть экспортирован в таблицу SQL Server или файл CSV для дальнейшей обработки.
Дедупликация данных в автоматическом режиме (проект SSIS c преобразованием Fuzzy Gouping)
Для дедупликации данных в автоматическом режиме в SQL Server 2012 можно использовать преобразование Fuzzy Grouping, которое в дополнительной колонке _key_out формирует идентификатор группы (ссылку на канонический идентификатор _key_in), а в колонке _score выдает стпень похожести (между 0 и 1). Источник: BI Monkey. SSIS, DQS Cleansing & the Balanced Data Distributor.
Уровень похожести записей устанавливается с помощью специального бегунка в дополнительных настройка преобразования Fuzzy Grouping.
Распараллеливание потоков данных для ускорения пакета с DQS
Для применения DQS над большими объемами данных (сотни тысяч и миллионы записей) можно использовать распараллеливание потока данных с помощью компонента «Balanced Data Distributor» (источник: BI Monkey. SSIS, DQS Cleansing & the Balanced Data Distributor).
Иван, было бы интересно решить задачу по стандартизации и распознаванию адресов используя в качестве референса справочник КЛАДР. У вас случайно нет готового решения?
Андрей, стандартного решения нет. Если что, можно сделать прототип… Напишите, пожалуйста, мне на почту или Ваши контактные данные…
Иван, добрый день!
Вы можете продемонстрировать (разобрать пример), как с помощью инструментов MS можно решить задачу по управлению контактами?
Например, есть web сайт где регистрируются пользователи и CRM система. Данные в системы попадают независимо из разных источников, соответственно контакты могут пересекаться и могут быть уникальными в каждой системе. Сопоставление может осуществляться по e-mail или по Фамилии + Имя. Напрямую сопоставить их нельзя, так как данные могут быть заполнены по-разному: Александр или Саша — и таких исключений может быть много. Как решается такая задача?
Для домена «Имя» можно создать правила преобразования коротких имен в длинные. Для доменов «Фамилия» и «E-mail» — установить требуемую степень похожести, чтобы считать их одинаковыми. Вообще, при сравнении клиентов нужно сравнивать также другие атрибуты, такие как адрес, телефоны, возраст, пол и т.д., в зависимости от того, какие данные есть в наличии.
Иван, у Oracle есть решение по консолидации и управлению клиентскими данными, например вот https://www.rdtex.ru/win/root/NEWS20080527.HTML, которое решает задачу из моего примера.
Скажите, есть ли подобные решения на базе MS?
Антон, по ссылке говорится «об очистке и стандартизации данных с помощью продукта ФАКТОР». Описание продукта не нашел. Что касается Microsoft, то решение здесь SQL Server DQS + Integrations Services + настройка под задачу организации. По управлению НСИ и очистке данных есть также партнерские решения (надстройки над SQL Server). Например, у компании «Навикон» есть готовое решение по интеграции с 1С и выявлению дублирующих имен клиентов. Вот ссылка на решение Navicon CDI (customer data integration): https://www.navicongroup.ru/biztalk/management_nsi/cdi.php
Видео решения Navicon CDI: https://www.youtube.com/watch?v=GKCcd0UIzug (без звука)