Бөлісу құралы:


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

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

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

Примечание.

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

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

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

Выход преобразования включает все входные столбцы, один или больше столбцов со стандартизованными данными и столбец, содержащий показатель подобия. Показатель является десятичным значением между 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 (SSIS), Использование выражений свойств в пакетах и Пользовательские свойства преобразований.

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

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

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

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

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

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

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

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

Свойства могут быть заданы с помощью конструктора SSIS или программным путем.

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

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

Редактор преобразования «Нечеткое группирование» (вкладка «Диспетчер соединений»)

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

Примечание.

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

Параметры

Диспетчер соединений OLE DB
Выберите в списке существующий диспетчер соединения OLE DB или создайте новое соединение с помощью кнопки Создать .

Новый
Создайте новое соединение с помощью диалогового окна Настройка диспетчера соединений OLE DB .

Редактор преобразования «Нечеткое группирование» (вкладка «Столбцы»)

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

Параметры

Доступные входные столбцы
Выберите из списка входные столбцы, используемые для группировки строк с повторяющимися значениями.

Имя
Просмотрите имена доступных входных столбцов.

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

Входной столбец
Выберите один из входных столбцов, указанных ранее в списке Доступные входные столбцы .

Псевдоним вывода
Введите описательное имя соответствующего выходного столбца. По умолчанию, имя выходного столбца совпадает с именем входного столбца.

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

Тип соответствия
Выберите нечеткое или четкое соответствие. Строки считаются повторяющимися, если они подобны по всем столбцам в случае нечеткого соответствия. Если также задано четкое соответствие по определенным столбцам в качестве вероятно повторяющихся, рассматриваются только строки, которые содержат одинаковые значения в столбцах четкого соответствия. Таким образом, если известно, что определенный столбец не содержит ошибок или несоответствий, по нему можно задать четкое соответствие для повышения точности нечеткого соответствия по другим столбцам.

Минимальное подобие
Задайте порог подобия на уровне соединения с помощью ползунка. Чем ближе значение к 1, тем ближе к искомому должно быть значение строки уточняющего запроса. Увеличение порогового значения может увеличить скорость соответствия, так как при этом будет рассматриваться меньшее количество предполагаемых совпадений.

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

Цифры
Задайте значимость начальных и конечных цифр при сравнении данных столбцов. Например, если начальные цифры являются значимыми, группировка строк «123 Main Street» и «456 Main Street» не выполняется.

значение Описание
Neither Начальные и конечные цифры не являются значимыми.
Начальные Значимыми являются только начальные цифры.
Конечные Значимыми являются только конечные цифры.
Начальные и конечные Значимыми являются и начальные, и конечные цифры.

Флаги сравнения
Дополнительные сведения о параметрах сравнения строк см. в разделе Сравнение строковых данных.

Редактор преобразования «Нечеткое группирование» (вкладка «Дополнительно»)

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

Примечание.

Свойства Exhaustive и MaxMemoryUsage преобразования «Нечеткое группирование» недоступны в Редакторе преобразования «Нечеткое группирование», однако они могут быть заданы при помощи расширенного редактора. Дополнительные сведения об этих свойствах см. в подразделе «Преобразование "Нечеткое группирование"» раздела Transformation Custom Properties.

Параметры

Имя входного ключевого столбца
Укажите имя выходного столбца, содержащего уникальный идентификатор для каждой входной строки. Столбец _key_in содержит значение, уникально идентифицирующее каждую строку.

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

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

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

Разделители токенов
В преобразовании имеется набор разделителей по умолчанию для разделения данных на лексемы. При необходимости можно добавить или удалить разделители в списке.

См. также

Преобразование «Нечеткий уточняющий запрос»
Преобразования служб Integration Services