Практические рекомендации по использованию 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