Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo apresenta a semântica geral de agregação e discute as diferenças entre os resultados computados usando consultas em lote, exibições materializadas e streaming.
Agregações em lote
A agregação em lote é o comportamento padrão observado ao executar uma consulta ad hoc no SQL ou no processamento de dados com o Apache Spark DataFrames.
Uma consulta agregada gravada em uma tabela ou fonte de dados computa as estatísticas de agregação de 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 computar muitas agregações eficientemente 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 referenciados com frequência pré-computados podem economizar tempo e dinheiro substanciais aos usuários. O Databricks recomenda o uso de exibições materializadas para atualizar incrementalmente os valores agregados. Confira Agregações incrementais.
Agregações com estado
As agregações definidas em cargas de trabalho de streaming têm estado. As agregações com estado acompanham os registros observados ao longo do tempo e recomputam os resultados ao processar novos dados.
Você deve usar marcas d'água ao calcular agregações com estado. Omitir uma marca d'água de uma consulta agregada com estado resulta em informações de estado acumuladas infinitamente ao longo do tempo. Isto resulta em lentidão no processamento e pode levar a erros de memória insuficiente.
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 de agregação incremental em um conjunto de dados inteiro. Confira Agregações incrementais.
Configurar cargas de trabalho que computam agregações com estado de forma eficiente e correta requer a compreensão de como os dados chegam de 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.
Agregações incrementais
Você pode usar exibições materializadas para calcular muitos valores agregados de forma incremental. 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 um modo de exibição materializado são equivalentes aos retornados pela recompilação de resultados agregados em dados de origem com um trabalho em lote ou consulta ad hoc.
Agregações aproximadas
Embora o Azure Databricks se destaque na computação em conjuntos de dados extremamente grandes, o uso da aproximação para agregações pode acelerar o processamento de consultas e reduzir os custos quando você não precisar de resultados precisos.
Às vezes, usar instruções LIMIT é bom o suficiente para obter um instantâneo rápido de dados, mas não introduz aleatoriedade ou garante que a amostragem seja distribuída entre o conjunto de dados.
O SPARK SQL tem os seguintes métodos nativos para aproximação de agregações em dados numéricos ou categóricos:
-
approx_count_distinctfunção de agregação -
approx_percentilefunção de agregação -
approx_top_kfunção de agregação
Você também pode especificar uma porcentagem de exemplo com TABLESAMPLE para gerar uma amostra aleatória de um conjunto de dados e calcular agregações aproximadas. Consulte a cláusula TABLESAMPLE.
Monitorar conjuntos de dados usando estatísticas agregadas
A criação de perfil 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 a criação de perfil de dados.