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


Преобразование «Сведение»

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

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

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

  • Столбец выступает в качестве ключа или части ключа, который определяет набор записей.

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

  • Столбец содержит значения, которые переносятся в столбцы, созданные сведением.

Следующая диаграмма показывает набор данных перед выполнением сведения по столбцу Product.

Набор данных после сведения

Следующая диаграмма показывает набор данных после выполнения сведения по столбцу Product.

Набор данных до сведения

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

Введенные данные могут содержать повторяющиеся строки, которые могут вызвать сбой преобразования «Сведение». Повторяющиеся строки — это строки, имеющие одинаковые значения в наборе ключевых столбцов и столбцов сведения. Например, если используется набор данных до сведения данных по столбцу Product, как показано в диаграмме, и добавлены строки со значением «Kate» в столбец Cust и «Soda» в столбец Product, то эти повторяющиеся значения могут вызвать сбой преобразования «Сведение», несмотря на величину в столбце Qty. Чтобы предотвратить сбой, можно либо настроить преобразование для перенаправления ошибочных строк в выход ошибок, либо заранее вычислить значения во избежание повторяющихся рядов. Например, в образце набора данных можно просуммировать значения в столбце Qty для заказчиков и продуктов.

Преобразование «Сведение» использует свойства входного и выходного столбцов для определения сведения.

Преобразование «Сведение» содержит пользовательское свойство PivotKeyValue. Это свойство может быть обновлено выражением свойства при загрузке пакета. Дополнительные сведения см. в разделах Справочник по выражениям служб Integration Services, Использование выражений свойств в пакетах и Пользовательские свойства преобразований.

Это преобразование содержит один вход, один обычный выход и один выход ошибки.

Настройка образца набора данных

Образец набора данных, показанный на схеме, был сконфигурирован следующим образом: свойству PivotUsage столбца Cust было присвоено значение 1 для обозначения столбца набора ключей; свойству PivotUsage входного столбца Product было присвоено значение 2 для обозначения столбца, значения которого должны быть использованы для создания новых полей в результирующем наборе данных; свойству PivotUsage входного столбца Qty было присвоено значение 3 для указания того, что значения в столбце будут использованы для заполнения столбца сведения.

Выход преобразования настроен на включение шести новых столбцов. Столбцы, добавленные с помощью диалогового окна Расширенный редактор, были названы Cust, Ham, Soda, Milk, Beer и Chips. Свойство PivotKeyValue столбца Ham было установлено как Ham, чтобы указать, что преобразование должно искать это значение во входном столбце. Похожим образом свойство PivotKeyValue столбца Soda было установлено в Soda и т. д.

Столбцы на входе преобразования сопоставлены со столбцами на выходе.

Свойство SourceColumn столбца Cust было настроено на использование идентификатора журнала обращений и преобразований входного столбца Cust. Свойства SourceColumn столбцов Ham, Soda, Milk, Beer и Chips были настроены на использование идентификатора журнала обращений и преобразований входного столбца Qty. Другой способ задания значений выходных полей может заключаться в установке свойства SourceColumn столбцов Ham, Soda, Milk, Beer и Chips в значение -1, что приведет к использованию значения True вместо значений данных. Например, вместо значений 12 и 24 столбец Beer будет содержать значение True, обозначая, что клиент приобрел данный продукт без уточнения точного количества единиц.

Строки на выходе преобразования содержат значения из входных столбцов Cust и Qty.

Параметры сведения

Свойство PivotUsage входных столбцов устанавливается для определения роли каждого столбца в процессе сведения. Допустимыми значениями для PivotUsage являются 0, 1, 2 и 3.

В следующей таблице приводятся описания параметров PivotUsage.

Параметр

Описание

0

Столбец не подвергается сведению, и его значения передаются без изменения с входа на выход преобразования.

1

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

2

По данному столбцу выполняется сведение. Как минимум один столбец создается по каждому значению в данном столбце.

3

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

Настройка преобразования «Сведение»

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

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

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

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

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

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