Compartilhar via


Transformação Agregação

A transformação Agregação aplica funções de agregação, como Average, a valores de coluna e copia os resultados na saída da transformação. Além de funções de agregação, a transformação fornece a cláusula GROUP BY que você pode utilizar para especificar grupos a serem agregados.

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.

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.

Números grandes em agregações

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çãoObservaçã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.

Configuração da transformação Agregação

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 de agregação 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. Não há suporte para uma saída com erro.

Você pode definir propriedades por meio do SSIS Designer 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 tópicos a seguir:

Tarefas relacionadas

Agregar valores em um conjunto de dados por meio da transformação Agregação

Conteúdo relacionado

Ícone do Integration Services (pequeno) Mantenha-se atualizado com o Integration Services

Para obter os downloads, artigos, exemplos e vídeos mais recentes da Microsoft, bem como soluções selecionadas pela comunidade, visite a página do Integration Services no MSDN:


Para receber uma notificação automática dessas atualizações, assine os RSS feeds disponíveis na página.

Consulte também

Conceitos

Fluxo de dados

Transformações do Integration Services