Partilhar via


Transformação agregada

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

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

Operações

A transformação Agregada suporta as seguintes operações.

Funcionamento Descrição
Agrupar por Divide os conjuntos de dados em grupos. Colunas de qualquer tipo de dados podem ser usadas para agrupamento. Para obter mais informações, consulte GROUP BY (Transact-SQL).
Soma Soma os valores em uma coluna. Apenas colunas com tipos de dados numéricos podem ser somadas. Para obter mais informações, consulte SUM (Transact-SQL).
Média Retorna a média dos valores de uma coluna. Apenas as colunas com tipos de dados numéricos podem ser calculadas em média. Para obter mais informações, consulte AVG (Transact-SQL).
Contagem Devolve o número de itens num grupo. Para obter mais informações, consulte COUNT (Transact-SQL).
Contagem distinta Retorna o número de valores não nulos exclusivos em um grupo.
Mínimo Devolve o valor mínimo num grupo. Para obter mais informações, consulte MIN (Transact-SQL). Em contraste com a função Transact-SQL MIN, essa operação pode ser usada apenas com tipos de dados numéricos, de data e hora.
Máximo Devolve o valor máximo num grupo. Para obter mais informações, consulte MAX (Transact-SQL). Em contraste com a função Transact-SQL MAX, essa operação pode ser usada apenas com tipos de dados numéricos, de data e hora.

A transformação Aggregate manipula valores nulos da mesma maneira que o mecanismo de banco de dados relacional do SQL Server. O comportamento é definido no padrão SQL-92. Aplicam-se as seguintes regras:

  • Em uma cláusula GROUP BY, os nulos são tratados como outros valores de 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 da coluna) e COUNT (nome da coluna DISTINCT ), os nulos são ignorados e o resultado exclui as linhas que contêm valores nulos na coluna nomeada.

  • Na função COUNT (*), todas as linhas são contadas, incluindo linhas com valores nulos.

Grandes números em agregados

Uma coluna pode conter valores numéricos que requerem consideração especial devido ao seu grande valor ou requisitos de precisão. A transformação de agregação inclui a propriedade IsBig, que você pode definir em colunas de saída para invocar manipulação especial de números grandes ou de alta precisão. Se um valor de coluna pode exceder 4 bilhões ou uma precisão além de um tipo de dados flutuante é necessária, IsBig deve ser definido como 1.

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

  • O tipo de dados DT_R8 é usado em vez do tipo de dados DT_R4.

  • Os resultados da contagem são armazenados como o tipo de dados DT_UI8.

  • Resultados de contagem distintos são armazenados como o tipo de dados DT_UI4.

Observação

Não é possível definir IsBig como 1 em colunas usadas nas operações GROUP BY, Maximum ou Minimum.

Considerações sobre desempenho

A transformação Agregar inclui um conjunto de propriedades que você pode definir para melhorar o desempenho da transformação.

  • Ao executar uma operação Group by, defina as propriedades Keys ou KeysScale do componente, assim como as saídas do mesmo. Usando Chaves, você pode especificar o número exato de chaves que a transformação deve manipular. (Neste contexto, Chaves refere-se ao número de grupos que se espera que resultem de uma operação de agrupamento por em.) Usando KeysScale, pode especificar um número aproximado de chaves. Ao especificar um valor apropriado para Keys ou KeyScale, você melhora o desempenho porque a transformação é capaz de alocar memória adequada para os dados que a transformação armazena em cache.

  • Ao executar uma contagem Distinct operação, configure as propriedades CountDistinctKeys ou CountDistinctScale do componente. Usando CountDistinctKeys, você pode especificar o número exato de chaves que a transformação deve manipular para uma operação distinta de contagem. (Neste contexto, CountDistinctKeys refere-se ao número de valores distintos que se espera que resultem de uma operação de contagem Distinct .) Usando CountDistinctScale, pode especificar um número aproximado de chaves para uma operação de contagem distinta. Ao especificar um valor apropriado para CountDistinctKeys ou CountDistinctScale, você melhora o desempenho porque a transformação é capaz de alocar memória adequada para os dados que a transformação armazena em cache.

Configuração de transformação agregada

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

  • No nível de transformação, você configura a transformação Agregada para desempenho especificando os seguintes valores:

    • O número de grupos que se espera que resultem de uma operação de agrupamento por .

    • O número de valores distintos que se espera que resultem de uma operação de contagem distinta de .

    • A porcentagem pela qual a memória pode ser estendida durante a agregação.

    A transformação Agregada 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, configura-se a transformação de agregação para desempenho, especificando o número de grupos que se espera-se que resultem de uma operação de agrupamento por . A transformação Agregada suporta várias saídas e cada uma pode ser configurada de forma diferente.

  • No nível da coluna, especifique os seguintes valores:

    • A agregação que a coluna realiza.

    • As opções de comparação da agregação.

Você também pode configurar a transformação Agregada para desempenho especificando estes valores:

  • O número de grupos que se espera que resultem de uma operação de Grupo por na coluna.

  • O número de valores distintos que se espera que resultem de uma operação de contagem distinta na coluna.

Você também pode identificar colunas como IsBig se uma coluna contiver grandes valores numéricos ou valores numéricos com alta precisão.

A transformação Agregar é assíncrona, o que significa que ela não consome e publica dados linha por linha. Em vez disso, ele consome todo o conjunto de linhas, executa seus agrupamentos e agregações e, em seguida, publica os resultados.

Essa transformação não passa por nenhuma coluna, mas cria novas colunas no fluxo de dados para os dados que publica. Somente as colunas de entrada às quais as funções agregadas se aplicam ou as colunas de entrada que a transformação usa para agrupamento são copiadas para a saída da transformação. Por exemplo, uma entrada de transformação Agregada pode ter três colunas: CountryRegion, Citye Population. A transformação agrupa pela coluna CountryRegion e aplica a função Soma à coluna Population. Portanto, a saída não inclui a coluna City.

Você também pode adicionar várias saídas à transformação Agregada e direcionar cada agregação para uma saída diferente. Por exemplo, se a transformação Agregada aplicar 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 desejar os valores de soma e média para uma coluna de entrada chamada Vendas, você pode configurar a transformação para aplicar as funções Soma e Média à coluna Vendas.

A transformação agregada tem uma entrada e uma ou mais saídas. Ele não suporta uma saída de erro.

Você pode definir propriedades por meio do SSIS Designer ou programaticamente.

A caixa de diálogo Advanced Editor reflete as propriedades que podem ser definidas programaticamente. Para obter mais informações sobre as propriedades que você pode definir na caixa de diálogo Advanced Editor 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:

Agregar valores em um conjunto de dados usando a Transformação Agregada

Editor de Transformação Agregada (Guia Agregações)

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

Observação

As opções para contagem de chaves, escala de chaves, contagem de chaves distintas e escala de chaves distintas aplicam-se no nível do componente quando especificado na guia Avançado, no nível de saída quando especificado na exibição avançada da guia Agregações e no nível da coluna quando especificado na lista de colunas na parte inferior da guia Agregações .

Na transformação Agregada, as Chaves e as Chaves referem-se ao número de grupos que se espera que resultem de uma operação de agrupar por . Contagem de chaves distintas e Contagem de escalas distintas referem-se ao número de valores distintos que se espera que resultem 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 várias saídas. Por padrão, as opções avançadas estão ocultas.

Nome da agregação
Na exibição Avançado, digite um nome amigável para a agregação.

Agrupar por colunas
Na exibição Avançado, selecione colunas para agrupamento usando a lista Colunas de entrada disponíveis conforme descrito abaixo.

Escala chave
Na exibição Avançado, especifique opcionalmente o número aproximado de chaves que a agregação pode gravar. Por padrão, o valor dessa opção é Não especificado. Se as propriedades Key Scale e Keys estiverem definidas, o valor de Keys terá precedência.

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

Chaves
Na exibição Avançado, especifique opcionalmente o número exato de chaves que a agregação pode gravar. Se tanto a Escala de Chaves quanto as Chaves forem especificadas, as Chaves tomam 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.

Alias de saída
Digite um alias para cada coluna. O padrão é o nome da coluna de entrada; no entanto, você pode escolher qualquer nome exclusivo e descritivo.

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

Funcionamento Descrição
GroupBy Divide os conjuntos de dados em grupos. Colunas com qualquer tipo de dados podem ser usadas para agrupamento. Para obter mais informações, consulte GROUP BY.
Soma Soma os valores em uma coluna. Apenas colunas com tipos de dados numéricos podem ser somadas. Para obter mais informações, consulte SOMA.
Média Devolve a média dos valores dentro de uma coluna. Apenas as colunas com tipos de dados numéricos podem ser calculadas em média. Para obter mais informações, consulte AVG.
Contagem Devolve o número de itens num grupo. Para obter mais informações, consulte COUNT.
CountDistinct Retorna o número de valores não nulos exclusivos em um grupo. Para obter mais informações, consulte COUNT e Distinct.
Mínimo Devolve o valor mínimo num grupo. Restrito a tipos de dados numéricos.
Máximo Devolve o valor máximo num grupo. Restrito a tipos de dados numéricos.

Bandeiras de comparação
Se escolher Agrupar por, use as caixas de seleção para controlar como a transformação executa a comparação. Para obter informações sobre as opções de comparação de cadeia de caracteres, consulte Comparando dados de cadeia de caracteres.

Escala de Contagem Distinta
Opcionalmente, especifique o número aproximado de valores distintos que a agregação pode gravar. Por padrão, o valor dessa opção é Não especificado. Se tanto CountDistinctScale quanto CountDistinctKeys forem especificados, CountDistinctKeys terá precedência.

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

Contagem de chaves distintas
Opcionalmente, especifique o número exato de valores distintos que a agregação pode gravar. Se CountDistinctScale e CountDistinctKeys forem especificados, CountDistinctKeys terá a precedência.

Editor de Transformação Agregada (Guia Avançado)

Use a guia Advanced da caixa de diálogo Aggregate Transformation Editor para definir propriedades de componentes, especificar agregações e definir propriedades de colunas de entrada e saída.

Observação

As opções para contagem de chaves, escala de chaves, contagem de chaves distintas e escala de chaves distintas aplicam-se no nível do componente quando especificado na guia Avançado, no nível de saída quando especificado na exibição avançada da guia Agregações e no nível da coluna quando especificado na lista de colunas na parte inferior da guia Agregações .

Na transformação Agregada, escala Chaves e Chaves refere-se ao número de grupos que se espera que resultem de um Grupo por operação. Contar chaves distintas e Contar escala distinta refere-se ao número de valores distintos que se espera que resultem de uma operação de contagem distinta.

Opções

Teclas escala
Opcionalmente, especifique o número aproximado de chaves que a agregação espera. A transformação usa essas informações para otimizar seu tamanho inicial de cache. Por padrão, o valor dessa opção é Não especificado. Se tanto a escala de chaves quanto o número de chaves forem especificados, o número de chaves terá precedência.

Valor Descrição
Não especificado A propriedade da escala Keys não é utilizada.
Baixo A agregação pode escrever aproximadamente 500.000 chaves.
Média A agregação é capaz de escrever aproximadamente 5.000.000 de chaves.
Alto A agregação pode escrever mais de 25.000.000 de chaves.

Número de chaves
Opcionalmente, especifique o número exato de chaves que a agregação espera. A transformação usa essas informações para otimizar seu tamanho inicial de cache. Se tanto escala de chaves como número de chaves forem especificados, número de chaves terá precedência.

Contar escalas distintas
Opcionalmente, especifique o número aproximado de valores distintos que a agregação pode gravar. Por padrão, o valor dessa opção é Não especificado. Se forem especificados tanto Contar escala distinta quanto Contar chaves distintas, terá precedência Contar chaves distintas.

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

Contar chaves distintas
Opcionalmente, especifique o número exato de valores distintos que a agregação pode gravar. Se ambos Contar escala distinta e Contar chaves distintas forem especificados, Contar chaves distintas terá 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 dessa opção é 25%.

Ver também

Fluxo de Dados
Transformações do Integration Services