Практические рекомендации по использованию DQS 2012

В дополнение к обзорной статье про 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. Источник: 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).

Задание весов доменов в Matching Policy. Источник: Jeremy Kashel. DQS Matching Vs SSIS Fuzzy Grouping and Lookup

DQS выполняет сопоставление данных и дедупликацию путем сравнения каждой строки со всеми остальными строками с использованием настроек Matching Policy, заданных в базе знаний.

Обнаруженые дублирующие записи. Источник: Jeremy Kashel. DQS Matching Vs SSIS Fuzzy Grouping and Lookup

Результат сопоставления с учетом ручных корректировок может быть экспортирован в таблицу 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. Источник: BI Monkey. SSIS, DQS Cleansing & the Balanced Data Distributor SSIS, DQS Cleansing & the Balanced Data Distributor

Уровень похожести записей устанавливается с помощью специального бегунка в дополнительных настройка преобразования Fuzzy Grouping.

Распараллеливание потоков данных для ускорения пакета с DQS

Для применения DQS над большими объемами данных (сотни тысяч и миллионы записей) можно использовать распараллеливание потока данных с помощью компонента «Balanced Data Distributor» (источник: BI Monkey. SSIS, DQS Cleansing & the Balanced Data Distributor).

DQS с применением BDD (Balanced Data Distributor). Источник: BI Monkey. SSIS, DQS Cleansing & the Balanced Data Distributor SSIS, DQS Cleansing & the Balanced Data Distributor

комментариев 7

  1. Иван, было бы интересно решить задачу по стандартизации и распознаванию адресов используя в качестве референса справочник КЛАДР. У вас случайно нет готового решения?

    • Андрей, стандартного решения нет. Если что, можно сделать прототип… Напишите, пожалуйста, мне на почту или Ваши контактные данные…

  2. Иван, добрый день!
    Вы можете продемонстрировать (разобрать пример), как с помощью инструментов MS можно решить задачу по управлению контактами?
    Например, есть web сайт где регистрируются пользователи и CRM система. Данные в системы попадают независимо из разных источников, соответственно контакты могут пересекаться и могут быть уникальными в каждой системе. Сопоставление может осуществляться по e-mail или по Фамилии + Имя. Напрямую сопоставить их нельзя, так как данные могут быть заполнены по-разному: Александр или Саша — и таких исключений может быть много. Как решается такая задача?

    • Для домена «Имя» можно создать правила преобразования коротких имен в длинные. Для доменов «Фамилия» и «E-mail» — установить требуемую степень похожести, чтобы считать их одинаковыми. Вообще, при сравнении клиентов нужно сравнивать также другие атрибуты, такие как адрес, телефоны, возраст, пол и т.д., в зависимости от того, какие данные есть в наличии.

      • Иван, у Oracle есть решение по консолидации и управлению клиентскими данными, например вот http://www.rdtex.ru/win/root/NEWS20080527.HTML, которое решает задачу из моего примера.
        Скажите, есть ли подобные решения на базе MS?

      • Антон, по ссылке говорится «об очистке и стандартизации данных с помощью продукта ФАКТОР». Описание продукта не нашел. Что касается Microsoft, то решение здесь SQL Server DQS + Integrations Services + настройка под задачу организации. По управлению НСИ и очистке данных есть также партнерские решения (надстройки над SQL Server). Например, у компании «Навикон» есть готовое решение по интеграции с 1С и выявлению дублирующих имен клиентов. Вот ссылка на решение Navicon CDI (customer data integration): http://www.navicongroup.ru/biztalk/management_nsi/cdi.php

      • Видео решения Navicon CDI: http://www.youtube.com/watch?v=GKCcd0UIzug (без звука)

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: