Transformação de agregação

Aplica-se a:SQL Server SSIS Integration Runtime no Azure Data Factory

A transformação Agregação aplica funções de agregação, como Média, aos valores das colunas e copia os resultados para a 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 Aggregate 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, confira GROUP BY (Transact-SQL).
SUM Soma os valores em uma coluna. Somente colunas com tipos de dados numéricos podem ser somadas. Para obter mais informações, confira SUM (Transact-SQL).
Média Retorna a média dos valores de uma coluna. A média só poderá ser obtida em colunas com tipos de dados numéricos. Para obter mais informações, confira AVG (Transact-SQL).
Contagem Retorna o número de itens de um grupo. Para obter mais informações, confira COUNT (Transact-SQL).
Contagem distinta 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, confira 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, confira 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 forma 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, incluindo 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 de Agregação inclui a propriedade IsBig, que você pode definir nas colunas de saída para acionar um tratamento especial para números grandes ou de alta precisão. Se um valor de coluna exceder 4 bilhões ou se uma precisão maior que a de um tipo de dados flutuante for necessária, IsBig deverá ser definido como 1.

Definir a propriedade IsBig como 1 afeta a saída da transformação de agregação das seguintes formas:

  • 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 da contagem de valores distintos são armazenados no tipo de dados DT_UI4.

Observação

Não é possível definir IsBig como 1 em colunas que são utilizadas nas operações GROUP BY, 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 refere-se ao número de grupos que se espera obter com uma operação Agrupar por.) Com o KeysScale, você pode especificar um número aproximado de Keys. 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 armazenados em cache.

  • Ao realizar uma operação de contagem distinta, defina as propriedades CountDistinctKeys ou CountDistinctScale no componente. Com o uso de CountDistinctKeys, especifique o número exato de chaves que a transformação deverá tratar em 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 .) Com o uso de 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 armazenados em cache.

Configuração da transformação de agregação

Você configura a transformação Agregação nos níveis de transformação, saída e coluna.

  • No nível de transformação, configure a transformação Aggregate para otimizar o desempenho, especificando os seguintes valores:

    • O número de grupos que se espera obter com uma operação Agrupar por.

    • O número de valores distintos que se espera obter em uma operação Contagem distinta.

    • 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 é zero.

  • No nível de saída, configure a transformação Agregação para melhorar o desempenho especificando o número de grupos que se espera obter de uma operação Agrupar por. A transformação Agregação oferece suporte a várias saídas, e cada uma delas pode ser configurada de forma 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.

Você também pode configurar a transformação Aggregate para melhorar o desempenho, especificando os seguintes valores:

  • O número de grupos que deverá resultar de uma operação Agrupar por na coluna.

  • O número de valores distintos que se espera obter de uma operação Contagem distinta aplicada à coluna.

Também será possível identificar colunas como IsBig se uma coluna contiver valores numéricos grandes ou valores numéricos com alta precisão.

A transformação de Agregação é assíncrona, o que significa que ela não consome nem publica os 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: PaísRegião, Cidade e População. 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 usar as funções Soma e Média, 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 dá suporte a uma saída de erro.

Você pode definir propriedades pelo Designer do SSIS ou programaticamente.

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:

Agregue valores em um conjunto de dados usando a transformação de Agregação

Editor da Transformação de Agregação (aba Agregações)

Use a guia Agregações da caixa de diálogo Editor de Transformação Agregação para especificar colunas para agregação e propriedades de agregação. Você pode aplicar diversas agregações. Esta transformação não gera uma saída de erro.

Observação

As opções de contagem de chaves, escala de chave, contagem de chaves distintas e escala de chave distinta são aplicadas em nível de componente quando especificado na guia Avançado , em nível de saída quando especificado na exibição avançada da guia Agregações e em nível de coluna quando especificado na lista de colunas na parte inferior da guia Agregações .

Na transformação de Agregação, Chaves e Escala de chaves referem-se ao número de grupos que se espera obter como resultado de uma operação Agrupar por. Chaves de contagem distinta e Escala de contagem distinta referem-se ao número de valores distintos que se espera obter como resultado de uma operação de contagem distinta.

Opções

Avançado/Básico
Exiba ou oculte opções para configurar várias agregações para diversas saídas. Por padrão, as opções Avançadas são ocultas.

Nome da Agregação
Na exibição avançada, digite um nome amigável para a agregação.

Agrupar por Colunas
Na exibição avançada, selecione as colunas a serem agrupadas usando a lista Colunas de Entrada Disponíveis como descrito abaixo.

Escala principal
Na exibição avançada, especifique, opcionalmente, o número aproximado de chaves que a agregação pode gravar. Por padrão, o valor desta opção é Não Especificado. Se as propriedades Escala de Chave e Chaves forem definidas, o valor de Chaves terá precedência.

Valor Descrição
Não Especificado A propriedade Key Scale não é usada.
Baixo A agregação pode gravar aproximadamente 500.000 chaves.
Médio A agregação pode gravar aproximadamente 5.000.000 chaves.
Alto A agregação pode gravar mais de 25.000.000 de chaves.

Chaves
Na exibição avançada, especifique, opcionalmente, o número exato de chaves que a agregação pode gravar. Se forem especificadas Escala de Chave e Chaves , Chaves terá precedência.

Colunas de Entrada Disponíveis
Selecione na lista de colunas de entrada disponíveis usando as caixas de seleção nesta tabela.

Coluna de Entrada
Selecione na lista de colunas de entrada disponíveis.

Apelido de saída
Digite um alias para cada coluna. O padrão é o nome da coluna de entrada; no entanto, é possível escolher qualquer nome descritivo exclusivo.

Operação
Escolha na lista de operações disponíveis, usando a tabela abaixo como guia.

Operação Descrição
GroupBy Divide conjuntos de dados em grupos. Colunas que contêm qualquer tipo de dados podem ser utilizadas para agrupamento. Para obter mais informações, consulte GROUP BY.
Sum Soma os valores em uma coluna. Somente colunas com tipos de dados numéricos podem ser somadas. Para obter mais informações, consulte SUM.
Média Retorna a média dos valores de uma coluna. A média só poderá ser obtida em colunas com tipos de dados numéricos. Para obter mais informações, consulte AVG.
Count Retorna o número de itens de um grupo. Para obter mais informações, consulte COUNT.
CountDistinct Retorna o número de valores não nulos exclusivos de um grupo. Para obter mais informações, consulte COUNT e Distinct.
Mínimo Retorna o valor mínimo de um grupo. Restrito a tipos de dados numéricos.
Máximo Retorna o valor máximo em um grupo. Restrito a tipos de dados numéricos.

Sinalizadores de Comparação
Se você escolher Agrupar por, use as caixas de seleção para controlar como a transformação executa a comparação. Para obter mais informações sobre as opções de comparação de cadeias de caracteres, consulte Comparing String Data(Comparando dados de cadeia de caracteres).

Escala de Contagem Distinta
Especifique, opcionalmente, o número aproximado de valores de distinção que a agregação pode gravar. Por padrão, o valor desta opção é Não Especificado. Se forem especificadas CountDistinctScale e CountDistinctKeys , CountDistinctKeys terá precedência.

Valor Descrição
Não Especificado A propriedade CountDistinctScale não é usada.
Baixo A agregação pode gravar aproximadamente 500.000 valores distintos.
Médio A agregação pode gravar aproximadamente 5.000.000 valores distintos.
Alto A agregação pode gravar mais de 25.000.000 de valores distintos.

Contar chaves distintas
Especifique, opcionalmente, o número exato de valores de distinção que a agregação pode gravar. Se forem especificadas CountDistinctScale e CountDistinctKeys , CountDistinctKeys terá precedência.

Editor da Transformação de Agregação (aba Avançada)

Use a guia Avançado da caixa de diálogo Editor de Transformação Agregação para definir propriedades de componentes, especificar agregações e definir propriedades de colunas de entrada e saída.

Observação

As opções de contagem de chaves, escala de chave, contagem de chaves distintas e escala de chave distinta são aplicadas em nível de componente quando especificado na guia Avançado , em nível de saída quando especificado na exibição avançada da guia Agregações e em nível de coluna quando especificado na lista de colunas na parte inferior da guia Agregações .

Na transformação de Agregação, Chaves e Escala de chaves referem-se ao número de grupos que se espera obter como resultado de uma operação Agrupar por. Chaves de contagem distinta e Escala de contagem distinta referem-se ao número de valores distintos que se espera obter como resultado de uma operação de contagem distinta.

Opções

Escala de teclas
Especifique, opcionalmente, o número aproximado de chaves que a agregação espera. A transformação usa estas informações para otimizar seu tamanho de cache inicial. Por padrão, o valor desta opção é Não Especificado. Se for especificada a Escala de chave e o Número de chaves , o Número de chaves terá precedência.

Valor Descrição
Não Especificado A propriedade Escala de chave não é usada.
Baixo A agregação pode gravar aproximadamente 500.000 chaves.
Médio A agregação pode gravar aproximadamente 5.000.000 chaves.
Alto A agregação pode gravar mais de 25.000.000 de chaves.

Número de chaves
Especifique, opcionalmente, o número exato de chaves que a agregação espera. A transformação usa estas informações para otimizar seu tamanho de cache inicial. Se for especificada a Escala de chave e o Número de chaves , o Número de chaves terá precedência.

Escala de contagem distinta
Especifique, opcionalmente, o número aproximado de valores de distinção que a agregação pode gravar. Por padrão, o valor desta opção é Não Especificado. Se for especificada a Escala de Distinção de Contagem e as Chaves de Distinção de Contagem , as Chaves de Distinção de Contagem terão precedência.

Valor Descrição
Não Especificado A propriedade CountDistinctScale não é usada.
Baixo A agregação pode gravar aproximadamente 500.000 valores distintos.
Médio A agregação pode gravar aproximadamente 5.000.000 valores distintos.
Alto A agregação pode gravar mais de 25.000.000 de valores distintos.

Contar chaves distintas
Especifique, opcionalmente, o número exato de valores de distinção que a agregação pode gravar. Se for especificada a Escala de Distinção de Contagem e as Chaves de Distinção de Contagem , as Chaves de Distinção de Contagem terão precedência.

Fator de extensão automática
Use um valor entre 1 e 100 para especificar a porcentagem pela qual a memória pode ser estendida durante a agregação. Por padrão, o valor desta opção é 25%.