Agregações contínuas
Pré-agregue dados de séries temporais com visões materializadas CONTINUOUS AGGREGATE e atualização incremental.
Agregações contínuas é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.
O que é um agregado contínuo?
Um agregado pré-computado e atualizado incrementalmente sobre uma hipertabela — como uma visão materializada que se atualiza de forma inteligente à medida que novos dados chegam.
Criando um agregado contínuo
Médias horárias por dispositivo:
CREATE MATERIALIZED VIEW metrics_hourly
WITH (timescaledb.continuous) AS
SELECT device_id,
time_bucket('1 hour', ts) AS hour,
AVG(value) AS avg_value,
COUNT(*) AS samples
FROM metrics
GROUP BY device_id, hour;Política de atualização
O TimescaleDB atualiza automaticamente:
SELECT add_continuous_aggregate_policy('metrics_hourly',
start_offset => INTERVAL '1 day',
end_offset => INTERVAL '1 hour',
schedule_interval => INTERVAL '15 minutes');
-- Every 15 minutes, refresh the window from 1 day ago to 1 hour ago.Consultando
Basta usar SELECT — o TimescaleDB combina os dados materializados com os dados brutos do período mais recente que ainda não foi materializado:
SELECT * FROM metrics_hourly
WHERE device_id = 42
AND hour >= NOW() - INTERVAL '7 days'
ORDER BY hour;Agregação em tempo real
Por padrão, os agregados contínuos mostram os dados pré-computados MAIS os dados brutos do trecho final não materializado. Você sempre vê os valores mais recentes, ao custo de calcular esse trecho em tempo real.
Modo somente materializado
Para painéis totalmente pré-computados, sem cálculos em tempo real, desative a agregação em tempo real:
ALTER MATERIALIZED VIEW metrics_hourly
SET (timescaledb.materialized_only = true);Agregação em vários níveis
Construa agregações horárias → diárias → mensais:
-- daily aggregate from the hourly cagg
CREATE MATERIALIZED VIEW metrics_daily
WITH (timescaledb.continuous) AS
SELECT device_id, time_bucket('1 day', hour) AS day,
AVG(avg_value) AS avg_value
FROM metrics_hourly
GROUP BY device_id, day;Compactar a hipertabela não bloqueia a agregação
É possível compactar a hipertabela subjacente; os agregados contínuos continuam funcionando.
Quando os agregados contínuos são melhores que as visões materializadas
- Dados de séries temporais: semântica temporal integrada
- Atualização incremental — nunca é necessário varrer todo o histórico novamente
- Integração com o trecho final em tempo real
- Agregações em vários níveis
Compatibilidade
Os agregados contínuos funcionam em hipertabelas do TimescaleDB. Para PostgreSQL sem TS, é necessário criar sua própria visão materializada e sua própria lógica de atualização.
Preenchimento retroativo
Atualize os dados históricos manualmente se alterar a definição do agregado:
CALL refresh_continuous_aggregate('metrics_hourly',
NULL, NOW());
-- Recompute from the beginning of time.Recapitulação
Agregados contínuos são visões materializadas para séries temporais.
- Definidos com WITH (timescaledb.continuous)
- Política de atualização automática
- Combinação de dados em tempo real e materializados
- Agregações diárias ou semanais sobre agregações horárias
Verificação rápida
O que torna a atualização de um agregado contínuo do TimescaleDB eficiente em comparação com REFRESH MATERIALIZED VIEW?
Perguntas Frequentes
A aula “Agregações contínuas” é grátis?
Sim — o texto completo de “Agregações contínuas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.
O que vou aprender em “Agregações contínuas”?
Pré-agregue dados de séries temporais com visões materializadas CONTINUOUS AGGREGATE e atualização incremental. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar SQL Academy?
Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Agregações contínuas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de SQL Academy?
Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Hiper tabelas do TimescaleDB
- Agregações contínuas
- Políticas de compressão e retenção
- Escolha de índices para séries temporais