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


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

Применимо к: SQL Server Integration Runtime служб SSIS в Фабрика данных Azure

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

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

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

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

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

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

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

Сортировка и повторяющиеся строки

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

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

Параметры в диалоговом окне «Сведение»

Операция сведения настраивается путем установки параметров в диалоговом окне Сведение . Чтобы открыть диалоговое окно Сведение , добавьте преобразование "Сведение" в пакет в среде SQL Server Data Tools (SSDT), а затем щелкните компонент правой кнопкой мыши и выберите команду Редактировать.

В следующем списке описаны параметры диалогового окна Сведение .

Ключ сведения
Указывает столбец для использования в качестве значений верхней строки (строки заголовка) таблицы.

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

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

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

Также вы можете настроить преобразование для вывода значений, установив для пользовательского свойства PassThroughUnmatchedPivotKeys значение True.

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

  1. Выберите параметр Пропускать несовпадающие значения ключа сведения и создать по ним отчет после выполнения DataFlow , а затем нажмите кнопку ОК в диалоговом окне Сведение , чтобы сохранить изменения в преобразовании "Сведение".

  2. Запустите пакет.

  3. После успешного выполнения пакета выберите вкладку Ход выполнения и найдите информационное сообщение журнала о преобразовании «Сведение», которое содержит значения ключей сведения.

  4. Щелкните сообщение правой кнопкой мыши и выберите пункт Копировать текст сообщения.

  5. Выберите пункт Остановить отладку в меню Отладка , чтобы переключиться в режим конструктора.

  6. Щелкните правой кнопкой мыши преобразование "Сведение" и выберите команду Редактировать.

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

    [значение1],[значение2],[значение3]

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

Выходные столбцы отображаются в поле Существующие выходные столбцы сведения .

Существующие выходные столбцы сведения
Выводит список выходных столбцов для значений ключей сведения

В следующей таблице показан набор данных до их сведения в столбце Год .

Год Название продукта Итог
2004 Шина для велосипеда HL Mountain 1504884.15
2003 Камера шины для шоссейного велосипеда 35920.50
2004 Фляга для воды — 30 унций. 2805.00
2002 Шина для туристического велосипеда 62364.225

В следующей таблице показан набор данных после их сведения по столбцу Год .

Название продукта 2002 2003 2004
Шина для велосипеда HL Mountain 141164.10 446297.775 1504884.15
Камера шины для шоссейного велосипеда 3592.05 35920.50 89801.25
Фляга для воды — 30 унций. NULL NULL 2805.00
Шина для туристического велосипеда 62364.225 375051.60 1041810.00

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

  • В списке Ключ сведения выбирается «Год».

  • В списке Ключ набора выбирается «Название продукта».

  • В списке Значение сведения выбирается «Итог».

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

    [2002],[2003],[2004]

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

Значения свойств можно задавать с помощью конструктора Integration Services или программными средствами.

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

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

См. также:

Преобразование отмены свертывания
Поток данных
Преобразования служб Integration Services