0Pricing
SQL Academy · Aula

Hiper tabelas do TimescaleDB

Converta uma tabela do PostgreSQL em uma hipertabela do TimescaleDB, com particionamento temporal automático por intervalo de blocos.

Hiper tabelas do TimescaleDB é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 1 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 é TimescaleDB?

Uma extensão do PostgreSQL criada para dados de séries temporais. Adiciona particionamento temporal automático, compactação, retenção e agregados contínuos. Pode ser usada de forma independente ou junto ao PostgreSQL comum.

Hiper­tabela

Uma única tabela lógica que é dividida fisicamente em "partições" por tempo:

CREATE EXTENSION IF NOT EXISTS timescaledb;

CREATE TABLE metrics (
  ts TIMESTAMPTZ NOT NULL,
  device_id BIGINT NOT NULL,
  value DOUBLE PRECISION
);

SELECT create_hypertable('metrics', 'ts');
-- metrics is now a hypertable, chunks created automatically.

Intervalo de tempo das partições

A partição padrão tem 7 dias. Ajuste-a à velocidade dos seus dados (use partições menores para dados de alta velocidade):

SELECT create_hypertable('metrics', 'ts', chunk_time_interval => INTERVAL '1 day');
-- One chunk per day, smaller and faster to drop.

Inserindo dados

Basta usar INSERT normalmente — o TimescaleDB encaminha as linhas para a partição correta:

INSERT INTO metrics (ts, device_id, value)
VALUES (NOW(), 1, 42.5);

Consultando hipertabelas

Funciona como uma tabela normal. O planejador elimina as partições que não são necessárias para consultas limitadas por tempo:

SELECT * FROM metrics
WHERE ts >= NOW() - INTERVAL '7 days'
ORDER BY ts DESC LIMIT 100;
-- Only the relevant chunks are read.

time_bucket: date_trunc mais inteligente

Auxiliar de agrupamento do TimescaleDB:

SELECT time_bucket('1 hour', ts) AS hour,
       AVG(value) AS avg_value
FROM metrics
WHERE device_id = 42
  AND ts >= NOW() - INTERVAL '24 hours'
GROUP BY hour
ORDER BY hour;

Particionamento por várias colunas

Para cargas de trabalho com vários locatários, particione também por device_id:

SELECT create_hypertable('metrics', 'ts', 'device_id', 4);
-- Hash-partitions device_id into 4 space partitions per time chunk.

Consultando com os dois filtros

O melhor desempenho ocorre quando as duas dimensões de particionamento são filtradas:

SELECT * FROM metrics
WHERE device_id = 42
  AND ts >= NOW() - INTERVAL '7 days';
-- Prunes by both time and space.

Índices em hipertabelas

Os índices são propagados para todas as partições:

CREATE INDEX metrics_device_idx ON metrics (device_id, ts DESC);
-- Composite index ideal for 'recent data for one device' queries.

Atualizando hipertabelas

As operações de UPDATE e DELETE funcionam, mas devem ser raras em séries temporais. Dados antigos geralmente são somente de acréscimo e imutáveis.

Migrando de tabelas comuns

As tabelas existentes podem ser convertidas em hipertabelas:

SELECT create_hypertable('metrics', 'ts', migrate_data => true);

Recapitulação

Hipertabelas = particionamento temporal automático para PostgreSQL.

  • Uma tabela lógica, muitas partições físicas
  • create_hypertable + chunk_time_interval
  • time_bucket para agregações em intervalos
  • Os índices são propagados para todas as partições

Verificação rápida

Estão sendo ingeridas métricas de IoT a 100 mil linhas por segundo. Por que converter a tabela em uma hipertabela do TimescaleDB?

Perguntas Frequentes

A aula “Hiper tabelas do TimescaleDB” é grátis?

Sim — o texto completo de “Hiper tabelas do TimescaleDB” é 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 “Hiper tabelas do TimescaleDB”?

Converta uma tabela do PostgreSQL em uma hipertabela do TimescaleDB, com particionamento temporal automático por intervalo de blocos. 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 1 de 4.

Quanto tempo leva a aula “Hiper tabelas do TimescaleDB”?

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

  1. Hiper tabelas do TimescaleDB
  2. Agregações contínuas
  3. Políticas de compressão e retenção
  4. Escolha de índices para séries temporais
← Voltar para SQL Academy