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


Сортировка данных для преобразований "Слияние" и "Соединение слиянием"

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

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

Сортировка данных

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

  • В источнике — в инструкции, с помощью которой загружаются данные, — использовать предложение ORDER BY.

  • В потоке данных преобразование «Сортировка» должно предшествовать преобразованию «Слияние» или «Соединение слиянием».

Если данные являются строковыми, то и преобразование «Слияние», и преобразование «Соединение слиянием» ожидают, что строковые значения отсортированы с использованием параметров сортировки Windows. Чтобы строковые значения передавались преобразованиям «Слияние» и «Соединение слиянием», отсортированным с помощью параметров сортировки Windows, примените следующую процедуру.

Чтобы передавались строковые значения, отсортированные с помощью параметров сортировки Windows

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

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

    –или–

  • Используйте оператор языка Transact-SQL CAST для преобразования значений varchar в значения nvarchar , а затем с помощью предложения языка Transact-SQL ORDER BY отсортируйте эти данные.

    Внимание

    Предложение ORDER BY нельзя использовать только потому, что предложение ORDER BY использует параметры сортировки SQL Server для сортировки строковых значений. Использование сортировки SQL Server может привести к порядку сортировки, отличному от сортировки Windows, что может привести к возникновению непредвиденных результатов преобразования слияния или соединения слиянием.

Настройка параметров сортировки данных

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

  • Свойство IsSorted выхода показывает, были ли данные отсортированы. Это свойство должно иметь значение True.

    Внимание

    Установка свойства IsSorted в значение True не приводит к сортировке данных. Это свойство только указывает компонентам нисходящего потока, что данные раньше были отсортированы.

  • Свойство SortKeyPosition выходных столбцов показывает, отсортирован ли столбец, порядок сортировки и последовательность, в которой сортируется несколько столбцов. Это свойство должно быть задано для каждого столбца отсортированных данных.

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

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

Задание атрибутов сортировки вручную на источнике или в компоненте преобразования

  1. В SQL Server Data Tools (SSDT) откройте проект служб Integration Services, содержащий нужный пакет.

  2. Чтобы открыть пакет, дважды щелкните его в обозревателе решений.

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

  4. Щелкните компонент правой кнопкой мыши и выберите пункт Показать расширенный редактор.

  5. Щелкните вкладку Свойства входов и выходов .

  6. Щелкните <имя компонента> "Вывод" и задайте для свойства IsSorted значение True.

    Примечание.

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

  7. Разверните элемент Выходные столбцы.

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

    • Целое число должно представлять числовую последовательность начиная с 1 с добавлением по единице.

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

    • Отрицательные целые значения соответствуют убывающему порядку сортировки. Если задано отрицательное целое число, положение столбца в последовательности сортировки будет определять абсолютное значение этого числа.

    • Значение 0 указывает на то, что столбец не отсортирован. Чтобы выходные столбцы не участвовали в сортировке, задайте значение 0.

    В качестве примера настройки свойства SortKeyPosition рассмотрите приведенную ниже инструкцию Transact-SQL, которая загружает данные в источник.

    SELECT * FROM MyTable ORDER BY ColumnA, ColumnB DESC, ColumnC

    В этой инструкции свойство SortKeyPosition задается для каждого столбца следующим образом.

    • Задайте для свойства SortKeyPosition столбца ColumnA значение 1. Это показывает, что столбец ColumnA является первым при сортировке, а сортировка производится по возрастанию.

    • Задайте для свойства SortKeyPosition столбца ColumnB значение 2. Это показывает, что столбец ColumnB является вторым при сортировке, а сортировка производится по убыванию.

    • Задайте для свойства SortKeyPosition столбца ColumnC значение 3. Это показывает, что столбец ColumnC является третьим при сортировке, а сортировка производится по возрастанию.

  9. Повторите шаг 8 для каждого отсортированного столбца.

  10. Щелкните OK.

  11. Чтобы сохранить обновленный пакет, выберите пункт Сохранить выбранные элементы в меню Файл .

См. также

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