DuckDB Turbina Leitura de Dados no S3 com I/O Assíncrono
Aprofundamento CEVIU
Aprofundamento
A implementação de I/O assíncrono no DuckDB v2.0 é um passo importante para otimizar a leitura de arquivos remotos, especialmente em cenários de data lake no S3. O segredo está na segregação de tarefas em dois pools de threads: um para o trabalho pesado de processamento (REGULAR) e outro dedicado a operações de I/O bloqueantes (ASYNC). Enquanto as threads REGULAR decodificam e processam dados, as threads ASYNC estão ocupadas buscando mais dados de forma antecipada, garantindo que o processador nunca fique esperando. Esse modelo evita o gargalo de I/O que costuma ocorrer quando operações síncronas bloqueiam as threads principais.
Além da divisão de threads, o DuckDB adota uma estratégia de pré-leitura (read-ahead) que programa a busca de dados antes que sejam efetivamente necessários. Isso mantém um fluxo contínuo de informações, mascarando a latência de armazenamento remoto. Para evitar estouro de memória, um sistema de governança de memória monitora a quantidade de dados pré-carregados, ajustando a profundidade da pré-leitura conforme a disponibilidade de recursos. No DuckDB, um
Linha do tempo
Lançamento do DuckDB 1.5.0, com CLI retrabalhada e novos tipos de dados.
Arcesium migra para DuckDB, reduzindo custos de consulta pela metade.
Apache DataFusion Comet turbina desempenho de queries Spark em tabelas Iceberg.
CEVIU News detalha a arquitetura vetorizada que impulsiona a performance do DuckDB.
Apache DataFusion otimiza consultas para dados quase ordenados.
Spotify implementa novo sistema de indexação para acelerar consultas em Data Lakes.
DuckDB anuncia I/O assíncrono para turbinar leitura de dados no S3, começando com a versão 2.0.
Perguntas frequentes
O que é I/O assíncrono no DuckDB?
É uma nova capacidade do DuckDB v2.0 que permite ler arquivos remotos, como os do S3, sem bloquear as threads de processamento. Ele usa threads separadas para buscar dados, enquanto as principais continuam trabalhando, melhorando muito o desempenho em ambientes de nuvem.
Como essa nova arquitetura melhora a performance?
A performance é impulsionada por dois pools de threads dedicados, um para processamento e outro para I/O, além de uma estratégia de pré-leitura. Isso garante que mais dados estejam sempre disponíveis, saturando a largura de banda da rede e reduzindo o tempo que o processador passa ocioso esperando por dados.
Quais formatos de arquivo são suportados pelo I/O assíncrono?
Inicialmente, o I/O assíncrono suporta arquivos Parquet e CSV não comprimidos e buscáveis. O time do DuckDB planeja estender o suporte a outros formatos, como o formato nativo do DuckDB e JSON, em futuras atualizações.
Quais foram os ganhos de performance observados?
Em testes com um benchmark TPC-H Q6, a leitura de 22 GB de dados Parquet do S3 ficou quase três vezes mais rápida (de 8,23s para 2,84s). Para um arquivo CSV grande, a melhoria foi ainda mais expressiva, beirando 20 vezes a aceleração.
Fontes
- duckdb.orgfonte original
- Categoria
- CEVIU Dados
- Publicado
- 03 de agosto de 2026
- Editoria
- CEVIU Dados

