Transformação Agregação
A transformação Agregação aplica funções agregadas, como Average, a valores de coluna e copia os resultados na saída da transformação. Além de funções agregadas, a transformação fornece a cláusula GROUP BY que você pode utilizar para especificar grupos a serem agregados.
Você configura a transformação Agregação na transformação, na saída e nos níveis de coluna.
No nível da transformação, configure a transformação Agregação para o desempenho especificando os seguintes valores:
O número de grupos que deverá resultar de uma operação Agrupar por.
O número de valores distintos que deverá resultar de uma operação Distinção de contagem.
A porcentagem pela qual é possível estender a memória durante a agregação.
A transformação Agregação também pode ser configurada para gerar um aviso em vez de falhar quando o valor de um divisor for zero.
No nível de saída, configure a transformação Agregação para o desempenho especificando o número de grupos que deverá resultar de uma operação Agrupar por. A transformação Agregação dá suporte a várias saídas e cada uma delas pode ser configurada de modo diferente.
No nível da coluna, especifique os seguintes valores:
A agregação executada pela coluna.
As opções de comparação da agregação.
Também é possível configurar a transformação Agregação para o desempenho especificando estes valores:
O número de grupos que deverá resultar de uma operação Agrupar por na coluna.
O número de valores distintos que deverá resultar de uma operação Distinção de contagem na coluna.
Também será possível identificar colunas como IsBig se uma coluna contiver valores numéricos grandes ou com alta precisão.
A transformação Agregação é assíncrona. Isto significa que ela não consome e publica dados linha por linha. Em vez de consumir o conjunto de linhas inteiro, ela executa seus agrupamentos e agregações e, depois, publica os resultados.
Essa transformação não transpassa nenhuma coluna, mas cria colunas novas no fluxo de dados para os dados que publica. Somente as colunas de entrada às quais se aplicam funções agregadas ou as que a transformação usa para agrupamento são copiadas para a saída da transformação. Por exemplo, uma entrada da transformação Agregação pode ter três colunas: CountryRegion, City e Population. A transformação faz o agrupamento pela coluna CountryRegion e aplica a função Sum à coluna Population. Por isso, a saída não inclui a coluna City.
Você também pode adicionar várias saídas à transformação Agregação e direcionar cada agregação a uma saída diferente. Por exemplo, se a transformação Agregação aplicar as funções Sum e Average, cada agregação poderá ser direcionada para uma saída diferente.
Você pode aplicar várias agregações a uma única coluna de entrada. Por exemplo, se você quiser os valores da soma e da média para uma coluna de entrada denominada Vendas, será possível configurar a transformação para aplicar as funções Sum e Average à coluna Vendas.
A transformação Agregação tem uma entrada e uma ou mais saídas. Ela não dá suporte a uma saída de erro.
Operações
A transformação Agregação oferece suporte às seguintes operações.
Operação |
Descrição |
---|---|
Agrupar por |
Divide conjuntos de dados em grupos. As colunas contendo qualquer tipo de dados podem ser utilizadas para agrupamento. Para obter mais informações, consulte GROUP BY (Transact-SQL). |
Soma |
Soma os valores em uma coluna. Somente podem ser somadas as colunas com tipos de dados numéricos. Para obter mais informações, consulte SUM (Transact-SQL). |
Média |
Retorna a média dos valores da coluna, em uma coluna. Uma média somente poderá ser obtida em colunas com tipos de dados numéricos. Para obter mais informações, consulte AVG (Transact-SQL). |
Contagem |
Retorna o número de itens de um grupo. Para obter mais informações, consulte COUNT (Transact-SQL). |
Distinção de Contagem |
Retorna o número de valores não nulos exclusivos de um grupo. Para obter mais informações, consulte Eliminando duplicatas com DISTINCT. |
Mínimo |
Retorna o valor mínimo de um grupo. Para obter mais informações, consulte MIN (Transact-SQL). Ao contrário da função Transact-SQL MIN, essa operação pode ser usada apenas com tipos de dados de data, hora e numéricos. |
Máximo |
Retorna o valor máximo em um grupo. Para obter mais informações, consulte MAX (Transact-SQL). Ao contrário da função Transact-SQL MIN, essa operação pode ser usada apenas com tipos de dados de data, hora e numéricos. |
A transformação Agregação lida com os valores nulos da mesma maneira que o Mecanismo de Banco de Dados relacional do SQL Server. O comportamento é definido de acordo com os padrões do SQL-92. As seguintes regras se aplicam:
Em uma cláusula GROUP BY, os nulos são tratados da mesma forma que os outros valores da coluna. Se a coluna de agrupamento contiver mais de um valor nulo, os valores nulos serão colocados em um único grupo.
Nas funções COUNT (nome de coluna) e COUNT (DISTINCT nome de coluna), os nulos são ignorados e o resultado exclui as linhas que contêm os valores nulos da coluna nomeada.
Na função COUNT (*), todas as linhas são contadas, inclusive as linhas com valores nulos.
Controlando números de valor elevado em agregados
Uma coluna pode conter valores numéricos que necessitem de uma análise especial devido a seu alto valor ou requisitos de precisão. A transformação Agregação inclui a propriedade IsBig, que você pode definir em colunas de saída para invocar tratamento especial em números de valor elevado ou de alta precisão. Se um valor de coluna exceder os 4 bilhões ou uma precisão maior que a de um tipo de dados flutuante for necessária, a IsBig deverá ser definida como 1.
A definição da propriedade IsBig como 1 afeta a saída da transformação agregação dos seguintes modos:
O tipo de dados DT_R8 é utilizado em vez do tipo de dados DT_R4.
Os resultados da contagem são armazenados como tipo de dados DT_UI8.
Os resultados de contagem distinta são armazenados como tipo de dados DT_UI4.
Observação |
---|
Você não pode definir a IsBig como 1 em colunas que forem utilizadas nas operações Agrupar por, Máximo ou Mínimo. |
Considerações sobre desempenho
A transformação Agregação inclui um conjunto de propriedades que você pode definir para aprimorar o desempenho da transformação.
Ao executar uma operação Agrupar por, defina as propriedades Keys ou KeysScale do componente e as saídas do componente. Com o uso de Keys, especifique o número exato de chaves com as quais a transformação deverá lidar. (Neste contexto, Keys se refere ao número de grupos que deverá resultar de uma operação Agrupar por.) Com o uso de KeysScale, especifique um número aproximado de chaves. Quando você especifica um valor apropriado para Keys ou KeyScale, o desempenho melhora porque a transformação pode alocar memória adequada para os dados que armazena em cache.
Ao executar uma operação Contagem distinta, defina as propriedades CountDistinctKeys ou CountDistinctScale do componente. Com o uso de CountDistinctKeys, especifique o número exato de chaves que a transformação deve controlar para uma operação de contagem distinta. (Neste contexto, CountDistinctKeys se refere ao número de valores distintos que deverá resultar de uma operação Contagem distinta.) Usando CountDistinctScale, você pode especificar um número aproximado de chaves para uma operação de contagem distinta. Quando você especifica um valor apropriado para CountDistinctKeys ou CountDistinctScale, o desempenho melhora porque a transformação pode alocar memória adequada para os dados que armazena em cache.
Configurando a transformação Agregação
Você pode definir as propriedades por meio do Designer SSIS ou programaticamente.
Para obter mais informações sobre as propriedades que podem ser definidas na caixa de diálogo Editor de Transformação Agregação, clique em um dos seguintes tópicos:
A caixa de diálogo Editor Avançado reflete as propriedades que podem ser definidas programaticamente. Para obter mais informações sobre as propriedades que podem ser definidas na caixa de diálogo Editor Avançado ou programaticamente, clique em um dos seguintes tópicos:
Para obter mais informações sobre como definir propriedades, clique em um dos seguintes tópicos:
Como agregar valores em um conjunto de dados usando a transformação Agregação
Como definir as propriedades de um componente de fluxo de dados
Como classificar dados para as Transformações Mesclar e Junção de Mesclagem
|