Поделиться через


Преобразование «Нечеткое группирование»

Преобразование «Нечеткое группирование» выполняет задачи очистки данных путем идентификации строк данных, которые похожи на дубликаты, и выбора канонической строки данных для использования в стандартизации данных.

ПримечаниеПримечание

Дополнительные сведения о преобразовании «Нечеткое группирование», в том числе сведения об ограничениях производительности и памяти, см. в техническом документе Преобразования «Нечеткий уточняющий запрос» и «Нечеткое группирование» в службах SQL Server Integration Services 2005.

Преобразованию «Нечеткое группирование» необходимо соединение с экземпляром SQL Server, чтобы создать временные таблицы SQL Server, необходимые алгоритму преобразования для выполнения этой работы. Соединение должно преобразоваться в пользователя, имеющего разрешение создавать таблицы в базе данных.

Чтобы настроить преобразование, необходимо выбрать входные столбцы для поиска дубликатов, а также выбрать тип соответствия, нечеткое или точное, для каждого столбца. Точное совпадение гарантирует, что только строки, имеющие идентичные значения в этом столбце, будут сгруппированы. Точное соответствие может быть применено к столбцам любых типов данных служб Integration Services, кроме DT_TEXT, DT_NTEXT и DT_IMAGE. Нечеткое соответствие группирует строки, имеющие приблизительно похожие значения. Метод приблизительного совпадения данных основан на указанном пользователем показателе подобия. В нечетком соответствии могут использоваться только столбцы с типами данных DT_WSTR и DT_STR. Дополнительные сведения см. в разделе Типы данных служб Integration Services.

Выход преобразования включает все входные столбцы, один или больше столбцов со стандартизованными данными и столбец, содержащий показатель подобия. Показатель является десятичным значением между 0 и 1. Каноническая строка имеет показатель 1. Другие строки в нечеткой группе имеют показатели, отображающие, насколько строка соответствует канонической строке. Чем ближе к 1 коэффициент, тем более строка соответствует канонической. Если в нечеткое группирование включаются строки, которые являются точными дубликатами канонической строки, эти строки также имеют показатель 1. Преобразование не удаляет дублирующиеся строки; оно группирует их, создавая ключ, связывающий каноническую строку со сходной строкой.

Преобразование формирует одну выходную строку для каждой входной строки со следующими дополнительными столбцами:

  • _key_in — столбец, который уникально идентифицирует каждую строку.

  • _key_out — столбец, который идентифицирует группу дублирующихся строк. Столбец _key_out имеет значение столбца _key_in в канонической строке данных. Строки с одинаковым значением в _key_out — члены одной и той же группы. Значение _key_out для группы соответствует значению _key_in в канонической строке данных.

  • _score — значение между 0 и 1, отображающее подобие входной строки по отношению к канонической строке.

Эти названия столбцов заданы по умолчанию. Можно настроить преобразование «Нечеткое группирование» для использования других названий. Выход также обеспечивает показатель подобия для каждого столбца, участвующего в нечетком группировании.

Преобразование «Нечеткое группирование» содержит два режима для настройки выполняемого группирования: разделители лексем и порог подобия. Преобразование обеспечивает заданный по умолчанию набор разделителей, используемых для разметки данных, но можно добавить новые разделители, которые улучшат разметку данных.

Порог подобия отображает, как строго преобразование идентифицирует дубликаты. Пороги подобия могут быть установлены на уровнях компонента и столбца. Порог подобия столбца доступен только для столбцов, участвующих в нечетком соответствии. Диапазон подобия охватывает значения от 0 до 1. Чем ближе порог к 1, тем более сходными должны быть строки и столбцы, чтобы называться дубликатами. Порог подобия среди строк и столбцов указывается установкой свойства MinSimilarity на уровнях компонента и столбца. Для соответствия подобию, которое указано на уровне компонента, все строки должны иметь подобие во всех столбцах, которое больше порога подобия, определенного на уровне компонента, или равно ему.

Преобразование «Нечеткое группирование» вычисляет внутреннюю меру подобия и не группирует строки с меньшим значением подобия, чем определено в MinSimilarity.

Чтобы определить порог подобия, который будет работать для реальных данных, возможно, придется применить преобразование «Нечеткое группирование» несколько раз, используя различные минимальные пороги подобия. Во время выполнения столбцы показателя на выходе преобразования содержат показатели подобия для каждой строки в группе. Можно использовать эти значения, чтобы определить порог подобия, который соответствует этим данным. Если необходимо увеличить подобие, нужно присвоить свойству MinSimilarity значение больше, чем значение в столбцах показателей.

Можно настроить группирование, выполняемое преобразованием, устанавливая свойства столбцов на входе преобразования «Нечеткое группирование». Например, свойство FuzzyComparisonFlags определяет, как преобразование сравнивает строковые данные в столбце, а свойство ExactFuzzy определяет, выполняет ли преобразование нечеткое соответствие или точное соответствие.

Объем памяти, используемой преобразованием «Нечеткое группирование», можно задать в пользовательском свойстве MaxMemoryUsage. Можно указать число мегабайтов (МБ) или значение 0, которое позволяет преобразованию использовать динамический объем памяти в зависимости от своих потребностей и наличия доступной физической памяти. Пользовательское свойство MaxMemoryUsage можно обновить с помощью выражения свойства при загрузке пакета. Дополнительные сведения см. в разделах Справочник по выражениям служб Integration Services, Использование выражений свойств в пакетах и Пользовательские свойства преобразований.

Это преобразование имеет один вход и один выход. Выход ошибок не поддерживается.

Сравнение строк

При настройке преобразования «Нечеткое группирование» можно определить алгоритм сравнения, который преобразование применяет для сравнения строк на входе преобразования. Если свойству Exhaustive присвоено значение true, преобразование будет сравнивать каждую строку на входе с каждой другой строкой на входе. Этот алгоритм сравнения может выдать более точные результаты, но это может сделаеть работу преобразования более медленной при большом количестве строк на входе. Чтобы избежать проблем с производительностью, желательно установить свойство Exhaustive в значение true только на время развертывания пакета.

Временные таблицы и индексы

Во время выполнения преобразование «Нечеткое группирование» создает временные объекты, такие как таблицы и индексы, потенциально существенного размера в базе данных SQL Server, к которой преобразование подключается. Размер таблиц и индексов пропорционален количеству строк на входе преобразования и количеству разделителей лексем, созданных преобразованием «Нечеткое группирование».

Преобразование также делает запросы к временным таблицам. Поэтому необходимо рассмотреть подключение преобразования «Нечеткое группирование» к непроизводственному экземпляру SQL Server, особенно если рабочий сервер имеет ограничения по доступному месту на диске.

Производительность этого преобразования может повышаться путем размещения используемых им таблиц и индексов на локальном компьютере.

Настройка преобразования «Нечеткое группирование»

Свойства задаются через конструктор служб SSIS или программно.

Дополнительные сведения о свойствах, которые можно установить в диалоговом окне Редактор преобразования «Нечеткое группирование», см. в следующих разделах:

Дополнительные сведения о свойствах, которые можно задать в диалоговом окне Расширенный редактор или программно, см. в следующих разделах:

Дополнительные сведения о настройке свойств см. в следующих разделах.

Значок служб Integration Services (маленький)Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загружать новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу Integration Services на сайтах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.