Partilhar via


Agregar dados no Azure Databricks

Este artigo apresenta a semântica geral para agregação e discute as diferenças entre os resultados calculados usando consultas em lote, exibições materializadas e streaming.

Agregados em lote

A agregação em lote é o comportamento padrão observado ao executar uma consulta ad hoc em SQL ou processar dados com o Apache Spark DataFrames.

Uma consulta agregada gravada em relação a uma tabela ou fonte de dados calcula as estatísticas agregadas para todos os registros na fonte de dados. O Azure Databricks aproveita otimizações e metadados sempre que possível para otimizar essas consultas e pode calcular muitas agregações de forma eficiente para grandes conjuntos de dados.

A latência de agregação em lote e os custos de computação podem aumentar à medida que o tamanho dos dados aumenta, e os valores agregados pré-computados frequentemente referenciados podem economizar tempo e dinheiro substanciais aos usuários. O Databricks recomenda o uso de exibições materializadas para atualizar incrementalmente os valores agregados. Consulte Agregações incrementais.

Agregados com estado

As agregações definidas em cargas de trabalho de streaming têm monitoração de estado. Os agregados com estado rastreiam os registros observados ao longo do tempo e recalculam os resultados ao processar novos dados.

Você deve usar marcas d'água ao calcular agregados com monitoração de estado. Omitir uma marca d'água de uma consulta agregada de estado resulta em as informações de estado acumularem-se infinitamente ao longo do tempo. Isso resulta em lentidão de processamento e pode levar a erros de falta de memória.

Você não deve usar uma agregação com estado para calcular estatísticas em um conjunto de dados inteiro. O Databricks recomenda o uso de exibições materializadas para cálculo agregado incremental em um conjunto de dados inteiro. Consulte Agregações incrementais.

Configurar cargas de trabalho que computam agregados com estado de forma eficiente e correta requer entender como os dados chegam dos sistemas de origem e como o Azure Databricks usa marcas d'água, modos de saída e intervalos de gatilho para controlar o estado da consulta e a computação de resultados.

Agregados incrementais

Você pode usar exibições materializadas para calcular muitos valores agregados incrementalmente. As exibições materializadas rastreiam automaticamente as alterações na fonte de dados e aplicam atualizações apropriadas aos valores agregados na atualização. Os resultados retornados por uma exibição materializada são equivalentes aos retornados pela recomputação de resultados agregados em dados de origem com um trabalho em lote ou consulta ad hoc.

Agregados aproximados

Embora o Azure Databricks se destaque na computação em conjuntos de dados extremamente grandes, o uso de aproximação para agregações pode acelerar o processamento de consultas e reduzir custos quando você não precisa de resultados precisos.

O uso LIMIT de instruções às vezes é bom o suficiente para obter um instantâneo rápido dos dados, mas não introduz aleatoriedade nem garante que a amostragem seja distribuída pelo conjunto de dados.

O Spark SQL tem os seguintes métodos nativos para aproximar agregações em dados numéricos ou categóricos:

Você também pode especificar uma porcentagem de amostra com TABLESAMPLE para gerar uma amostra aleatória de um conjunto de dados e calcular agregados aproximados. Consulte a cláusulade .

Monitorar conjuntos de dados usando estatísticas agregadas

A criação de perfis de dados usa estatísticas agregadas e distribuições de dados para acompanhar a qualidade dos dados ao longo do tempo. Você pode gerar relatórios para visualizar tendências e agendar alertas para sinalizar alterações inesperadas nos dados. Consulte Criação de perfil de dados.