QuestDB 9.0.0 lançado: arrays multidimensionais, protocolo binário ultrarrápido, Materialized Views inteligentes e deduplicação turbinada revolucionam bancos de dados de série temporal

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

Uma revolução no desempenho e flexibilidade para dados em tempo real com recursos inéditos em bancos de dados de séries temporais.

O QuestDB 9.0.0 chegou como um divisor de águas no mundo dos bancos de dados de série temporal. Lançado em 7 de julho de 2025, este banco de dados open-source de alto desempenho dá um salto evolutivo com uma combinação impressionante de inovações: arrays multidimensionais, um novo protocolo de linha binária (ILP), melhorias substanciais em Materialized Views e uma deduplicação de dados extremamente eficiente.

Essas mudanças não apenas atendem a gargalos enfrentados por aplicações de IoT, finanças (market data), telemetria, monitoramento e machine learning, como também preparam o QuestDB para consolidar sua posição como uma das plataformas mais robustas e flexíveis para workloads intensivos de dados em tempo real.

Arrays multidimensionais: um novo paradigma para dados em série temporal

A estrela da versão 9.0.0 é a introdução de arrays multidimensionais, marcando a primeira vez que o QuestDB oferece suporte nativo a estruturas como DOUBLE[] em qualquer formato.

Flexibilidade e desempenho: o tipo DOUBLE[] e suas operações

O suporte inicial a DOUBLE[] é abrangente. Ele aceita arrays contíguos, com formato (shaped), com saltos (strided) e não aninhados em JSON. O mais impressionante é que isso é feito com zero-copy slicing — ou seja, operações como fatiamento, transposição (transposing) e cálculo de agregados (cumulative ops, aggregates) são executadas com desempenho nativo.

Essa arquitetura evita overheads comuns de cópia de memória, tornando possível executar transformações vetoriais e análises em tempo real com eficiência de CPU e cache extremamente elevada.

Impacto para análise de dados complexos, mercado financeiro e ML/IA

Casos de uso como order-book depth em finanças ou snapshots de pesos em modelos de machine learning são beneficiados diretamente. A possibilidade de realizar análises de spread, liquidez, desequilíbrio (imbalance analytics) com uma única linha SQL é revolucionária.

Além disso, os arrays podem ser enviados diretamente a partir de estruturas como Pandas DataFrame, abrindo um caminho natural para integrações com pipelines de ETL, IA, instrumentação científica e analytics distribuído.

Protocolo binário (ILP) e deduplicação de dados: turbinando a ingestão de alto throughput

ILP binário: velocidade wire speed e payloads compactos

O novo protocolo de linha binária (ILP) foi projetado para transmitir arrays e dados numéricos com velocidade máxima na rede (wire speed). A nova abordagem reduz drasticamente o tamanho dos payloads e aumenta o throughput, sem sacrificar a compatibilidade com clientes ILP antigos.

Os clientes novos, no entanto, têm acesso a recursos avançados como deduplicação de dados, evolução de esquema e ganchos de fail-over.

Por exemplo, uma linha de código pode enviar um double[] para a tabela trades com timestamp preciso e integridade transacional usando questdb.ingress.Sender.

A revolução da deduplicação de dados: ganhos massivos em performance

A funcionalidade de deduplicação de dados (DEDUP) foi completamente reprojetada. Agora, ingestões em massa com dados duplicados ou fora de ordem são processadas com uma eficiência até 3x superior (de 520k linhas/s na v8.3.3 para 1.7M linhas/s na v9.0.0).

A introdução da keyword DEDUP permite reenvio de dados de forma idempotente, crucial para cenários com falhas de rede ou dados parciais.

O futuro da deduplicação: modos de REPLACE, SKIP e MERGE

A roadmap do QuestDB prevê novos comportamentos, como:

  • REPLACE (last-writer-wins) – já disponível;
  • SKIP (first-writer-wins) – previsto;
  • MERGE-SKIP e MERGE-REPLACE – para combinar linhas parciais com controle refinado.

Esses modos serão fundamentais para sistemas com ingestão distribuída e integração de múltiplas fontes de dados com latência variável.

Materialized Views: inteligência e agendamento preciso para análise de dados

As Materialized Views (MVs) evoluíram para se tornarem mecanismos inteligentes de pré-computação e agregação em tempo real, com grande impacto para sistemas que dependem de agregações, relatórios periódicos e alertas baseados em eventos.

Gerenciamento eficiente: replace commit e self-UNION queries

Com o novo mecanismo de replace commit, é possível fazer updates eficientes de MVs sem recriá-las do zero. O suporte a self-UNION queries amplia a flexibilidade de criação de visões agregadas acumulativas e sobrepostas.

Novos modos de refresh: TIMER, MANUAL e PERIOD com agendamento por calendário e fuso horário

A versão 9.0.0 introduz três novos modos para o refresh de MVs:

  • TIMER refreshes: ocorrem após um intervalo fixo estabilizado, ideal para sistemas de atualização periódica;
  • MANUAL refreshes: totalmente controlados pelo usuário, com suporte incremental;
  • PERIOD refreshes: programados por calendário, respeitando o fuso horário e agrupando apenas buckets completos de dados.

Esse último é essencial para aplicações como resumo de transações da NYSE ou Tóquio, onde os dados precisam refletir ciclos financeiros bem definidos.

Materialized Views: o poder da análise agregada em tempo real

Ao combinar essas capacidades com a engine de SQL de alta performance, as MVs no QuestDB se tornam elementos de primeira classe para construir dashboards, análises temporais, e sistemas de alerta proativo em ambientes de alta frequência.

SQL e Web Console: aprimoramentos para desenvolvedores e DBAs

Novidades na linguagem SQL: funções, JOINs e otimizações de SELECT

A linguagem SQL foi aprimorada com:

  • Memoization automática de colunas SELECT (ótima para json_extract);
  • A nova função generate_series() para criação de intervalos temporais;
  • Melhorias em CROSS JOIN, ASOF JOIN e LT JOIN com otimização de TOLERANCE;
  • TOLERANCE virou uma keyword, exigindo aspas quando usada como alias;
  • Mudanças no comportamento de alias de colunas sem nome explícito, agora controláveis por configuração.

Web Console renovada: depuração visual e execução de múltiplas queries

O Web Console foi redesenhado com uma série de melhorias orientadas à produtividade:

  • Execução com run arrow em queries individuais;
  • Destaque de delimitadores por ponto e vírgula;
  • Execução de múltiplas queries em lote com Run All;
  • Resultados organizados em Query Log com depuração por clique direito (sem precisar de EXPLAIN);
  • Interrupção automática em caso de erro na execução em lote;
  • Tooltip com descrição dos ícones de tabela, melhor feedback visual e novos indicadores de status dinâmicos de query.

Quebras de compatibilidade e o futuro do QuestDB: adaptando-se à evolução

A grande reformulação de recursos traz consigo mudanças importantes que exigem atenção por parte dos usuários e desenvolvedores.

PG Wire: migrando para a nova implementação

Usuários que optaram por não usar a nova implementação foram revertidos automaticamente para a versão atualizada. A flag de opt-out pg.legacy.mode=!true será descontinuada em breve.

Materialized Views e Column Aliasing: ajustes necessários

  • A sintaxe de REFRESH LIMIT e REFRESH EVERY foi resetada devido a mudanças no formato de armazenamento;
  • A cláusula TIMER teve sua sintaxe invertida;
  • REFRESH INCREMENTAL foi substituído por REFRESH IMMEDIATE;
  • A configuração cairo.sql.column.alias.expression.enabled controla o comportamento novo de alias automático de colunas.

Essas alterações podem exigir scripts de migração ou revisão de queries, especialmente em sistemas complexos com uso extensivo de views ou pipelines SQL automatizados.

Conclusão: QuestDB 9.0.0 — o benchmark para bancos de dados de série temporal de próxima geração

O QuestDB 9.0.0 representa um marco definitivo no avanço de bancos de dados de série temporal open-source. Com recursos como arrays multidimensionais, um protocolo binário ultrarrápido, Materialized Views agendadas por fuso horário e deduplicação turbinada, esta versão não é apenas uma atualização — é uma redefinição da categoria.

Para desenvolvedores, cientistas de dados e engenheiros que lidam com dados em tempo real, ingestão em alta velocidade e análise complexa, o QuestDB 9.0.0 oferece um arsenal de ferramentas moderno, eficiente e pronto para as demandas mais exigentes do presente e do futuro.

Compartilhe este artigo