Преобразование «Статистическая обработка»
Преобразование «Агрегатная обработка» применяет агрегатные функции, такие как Average, к значениям столбцов и копирует результат на выход преобразования. Кроме агрегатных функций преобразование предоставляет возможность использования предложения GROUP BY, которое можно применять для указания обрабатываемых групп.
Операции
Преобразование «Агрегатная обработка» поддерживает следующие операции:
Операция |
Описание |
---|---|
Group by |
Разделяет наборы данных по группам. Для группирования могут быть использованы столбцы любого типа данных. Дополнительные сведения см. в разделе GROUP BY (Transact-SQL). |
Sum |
Суммирует значения в столбцах. Суммироваться будут только столбцы с числовыми значениями. Дополнительные сведения см. в разделе SUM (Transact-SQL). |
Average |
Возвращает среднее значение всех значений в столбце. В операции могут принимать участие только столбцы с числовыми значениями. Дополнительные сведения см. в разделе AVG (Transact-SQL). |
Count |
Возвращает количество элементов в группе. Дополнительные сведения см. в разделе Функция COUNT (Transact-SQL). |
Count distinct |
Возвращает число уникальных ненулевых значений в группе. |
Минимум |
Возвращает минимальное значение в группе. Дополнительные сведения см. в разделе MIN (Transact-SQL). В отличие от функции MIN Transact-SQL, эта операция может быть использована только с числовыми типами данных, типами данных даты и времени. |
Maximum |
Возвращает максимальное значение в группе. Дополнительные сведения см. в разделе MAX (Transact-SQL). В отличие от функции MAX Transact-SQL, эта операция может быть использована только с числовыми типами данных, типами данных даты и времени. |
Преобразование «Статистическая обработка» обрабатывает значение NULL так же, как и ядро реляционной СУБД SQL Server. Такое поведение определено в стандарте SQL-92. Применяются следующие правила:
В предложении GROUP BY значения NULL обрабатываются так же, как и все значения столбца. Если в столбце, по которому производится группирование, содержится несколько значений NULL, все они помещаются в одну группу.
В функциях COUNT (имя столбца) и COUNT (DISTINCT имя столбца) значения NULL не обрабатываются, а результат не включает строк именованного столбца, содержащих значения NULL.
В функции COUNT (*) подсчитываются все строки, включая строки со значениями NULL.
Большие числа в статистических выражениях
Столбец может содержать числовые значения, требующие особого внимания из-за их большого значения или требований высокой точности вычисления. Преобразование «Статистическая обработка» имеет свойство IsBig, которое можно установить на выходные столбцы для вызова особой обработки больших или высокоточных числовых данных. Если значение столбца превысит 4 миллиарда или требуемая точность будет находиться вне пределов данных с плавающей точкой, то значение IsBig должно быть установлено как 1.
Установка свойства IsBig в значение 1 влияет на вывод преобразования «Статистическая обработка» следующим образом:
Вместо типа данных DT_R4 используется тип DT_R8.
Результаты вычислений хранятся в формате типа данных DT_UI8.
Результаты отдельных вычислений хранятся в типе данных DT_UI4.
Примечание |
---|
Нельзя установить значения 1 свойству IsBig для столбцов, используемых в операторах GROUP BY, Maximum или Minimum. |
Вопросы производительности
Преобразование «Статистическая обработка» содержит набор свойств, который можно настроить для увеличения производительности преобразования.
При выполнении операции Группировать по задайте свойства компонента Keys или KeysScale, а также выводы компонента. Используя Keys, можно указать точное количество обрабатываемых преобразованием ключей. (В этом контексте свойство Keys ссылается на ожидаемое число групп, являющихся результатом операции Группировать по.) Используя свойство KeysScale, можно указать приблизительное количество ключей. Если указать соответствующее значение для свойств Keys или KeyScale, то производительность повысится, так как преобразование сможет выделить адекватный объем памяти для кэшируемых данных.
При выполнении операции Подсчет различных объектов задайте свойства компонента CountDistinctKeys или CountDistinctScale. Используя CountDistinctKeys, можно указать точное количество обрабатываемых преобразованием ключей для отдельной операции преобразования. (В этом контексте свойство CountDistinctKeys ссылается на ожидаемое число отдельных значений, являющихся результатом операции Подсчет различных объектов.) Используя CountDistinctScale, можно указать приблизительное количество ключей для отдельной операции преобразования. Если указать соответствующее значение для свойств CountDistinctKeys или CountDistinctScale, то производительность повысится, так как преобразование сможет выделить адекватный объем памяти для кэшируемых данных.
Настройка преобразования «Агрегатная обработка»
Можно настроить преобразование «Агрегатная обработка» на уровнях преобразования, вывода, а также на уровне столбцов.
На уровне преобразования настраивается производительность преобразования «Статистическая обработка», для чего указываются следующие значения.
Ожидаемое число групп, являющихся результатом операции Группировать по.
Ожидаемое число различающихся значений, являющихся результатом операции Подсчет различных объектов.
Процент возможного увеличения занимаемой памяти во время статической обработки.
Преобразование «Статистическая обработка» также может быть настроено для создания предупреждающего сообщения вместо завершения ошибкой при обнаружении деления на ноль.
На уровне вывода настраивается производительность преобразования «Статистическая обработка» с указанием ожидаемого количества групп, являющихся результатом операции Группировать по. Преобразование «Статистическая обработка» поддерживает несколько выводов, каждый из которых может быть настроен отдельно.
На уровне столбца указываются следующие значения.
Статистическая обработка, которая выполняется в столбце.
Параметры сравнения статистической обработки.
Также можно настроить производительность преобразования «Статистическая обработка», указав следующие значения.
Ожидаемое число групп, являющихся результатом операции Группировать по в столбце.
Ожидаемое число различающихся значений, являющихся результатом операции Подсчет различных объектов в столбце.
Также можно определить столбцы как IsBig, если столбец содержит большие числовые значения или числовые значения высокой точности.
Преобразование «Статистическая обработка» является асинхронным, т.е. оно не преобразует и не публикует данные построчно. Вместо этого преобразование «Статистическая обработка» обрабатывает набор строк целиком, выполняя их группирование и статистическую обработку, и затем публикует результаты.
Это преобразование не пропускает столбцы, однако создает новые столбцы в потоке данных для публикуемых данных. В выход преобразования копируются только входные столбцы, к которым обращаются агрегатные функции, а также входные столбцы, используемые преобразованием для группирования. Например, преобразование «Статистическая обработка» на входе может иметь три столбца: CountryRegion, City и Population. Преобразование производит группирование по столбцу CountryRegion и применяет функцию Sum к столбцу Population. Поэтому вывод не включает столбец City.
Можно добавить несколько выводов преобразования «Статистическая обработка» и направить каждое статистическое выражение в различный вывод. Например, если преобразование «Статистическая обработка» обращается к функциям Sum и Average, то каждое статистическое выражение может быть направлено в различный вывод.
Можно применять несколько статистических обработок к одному входному столбцу. Например, если необходимо получить сумму и среднее значений входного столбца с именем Продажи, можно настроить преобразование для применения обеих функций Sum и Average к столбцу Продажи.
Преобразование «Агрегатная обработка» имеет один вход и один или более выводов. Вывод ошибок не поддерживается.
Значения свойств можно задавать с помощью конструктора Службы SSIS или программными средствами.
Дополнительные сведения о свойствах, которые можно установить в диалоговом окне Редактор преобразования «Статистическая обработка», см. в следующих разделах:
Редактор преобразования «Статистическая обработка» (вкладка «Агрегаты»)
Редактор преобразований «Статистическая обработка» (вкладка «Дополнительно»)
Диалоговое окно Расширенный редактор содержит свойства, которые можно установить с помощью программных средств. Дополнительные сведения о свойствах, которые можно задать в диалоговом окне Расширенный редактор или программными средствами, см. в следующих разделах:
Дополнительные сведения о настройке свойств см. в следующих разделах.
Статистическая обработка значений в наборе данных с помощью преобразования «Агрегатная обработка»
Сортировка данных для преобразований «Слияние» и «Соединение слиянием»
Связанные задачи
Статистическая обработка значений в наборе данных с помощью преобразования «Агрегатная обработка»
См. также
|