O que acontece quando você entrega um conjunto de um trilhão de linhas a um mecanismo SQL distribuído? Descobre do que ele é realmente capaz.
Na semana passada, testamos o GizmoEdge, nosso mecanismo de dados distribuído e preparado para IoT, no desafio de 1 trilhão de linhas da Coiled, no Azure. O objetivo: processar e resumir um trilhão de registros do conjunto de medições o mais rápido possível.
Configuração da infraestrutura
Implantamos um cluster GizmoEdge com 1.000 workers, cada um usando DuckDB e orquestrado pelo Kubernetes. O cluster rodou em nós Azure Standard E64pds v6, cada um com 64 vCPUs e 504 GiB de RAM.
Cada pod de worker GizmoEdge recebeu 3,8 vCPUs (3800 m) e 30 GiB de RAM, permitindo cerca de 16 workers por nó. Assim, o teste exigiu aproximadamente 63 nós no total.
Resultados de desempenho
Consulta de referência
SELECT COUNT(*) FROM measurements;- Tempo de execução: < 0,5 segundo
- Linhas contadas: 1.000.000.000.000
Consulta de agregação do desafio
SELECT station, MIN(measure), MAX(measure), AVG(measure)
FROM measurements
GROUP BY station
ORDER BY station;- Tempo de execução: < 5 segundos
- Conjunto de resultados: 412 linhas
Cada linha agrupada representava a agregação de cerca de 2,4 bilhões de linhas, e o GizmoEdge concluiu o trabalho entre todos os workers em segundos.
Veja o GizmoEdge concluir o desafio:

Como o GizmoEdge funciona
A arquitetura do GizmoEdge foi projetada para grande escala, alto desempenho e execução segura.
Análise e planejamento SQL
O servidor GizmoEdge recebe uma consulta SQL do cliente, analisa-a e gera duas instruções:
- Um SQL de worker para executar em cada nó distribuído
- Um SQL de combinação para executar no servidor e fazer a agregação final
Distribuição dos fragmentos
Cada worker solicita um fragmento de dados ao servidor, que responde com:
- Um hash SHA-256 do arquivo do fragmento para verificar a integridade do download
- Uma negociação de autenticação por token que garante a participação apenas de workers autorizados
Os workers baixam, descompactam e materializam seus fragmentos em bancos DuckDB construídos a partir de arquivos Parquet.
Modelo seguro de "confiar, mas verificar"
Toda a comunicação entre worker e servidor usa WebSockets criptografados com TLS, garantindo confidencialidade e autenticidade. Cada worker:
- Autentica-se com um token assinado e validado pelo servidor
- Verifica o hash SHA-256 do fragmento após o download para confirmar que corresponde ao emitido pelo servidor
- Calcula seu próprio hash MD5 do fragmento e o retorna ao servidor
- O servidor compara os hashes e só passa a confiar nesse worker para processar consultas se eles coincidirem
Execução paralela e agregação
Depois da verificação, cada worker executa sua consulta local pelo DuckDB e transmite conjuntos intermediários Arrow IPC ao servidor por WebSockets seguros. O servidor combina e agrega todos os resultados em paralelo para produzir o resultado SQL final, frequentemente em segundos.
Computação heterogênea: da nuvem à borda
O GizmoEdge não se limita a VMs Azure. Foi projetado para computação heterogênea, executando workers simultaneamente em dispositivos IoT, notebooks, celulares ou clusters na nuvem.
Veja o GizmoEdge distribuir consultas entre AWS, Azure, GCP e dispositivos de borda, como iPhones e pods Kubernetes: https://www.youtube.com/watch?v=gIgFKniKAdk
Detalhes do desafio
Quer saber mais sobre o desafio de 1 trilhão de linhas? Os detalhes completos, incluindo como acessar o conjunto público de dados, estão no repositório oficial: https://github.com/coiled/1trc
O desafio oferece um benchmark abrangente para testar sistemas distribuídos de processamento de dados em escala, sendo uma ótima forma de avaliar seu desempenho real.
O GizmoSQL também participou
O GizmoEdge não foi o único produto GizmoData a enfrentar o desafio de 1 trilhão de linhas. O GizmoSQL, nosso servidor DuckDB Arrow Flight SQL de nó único, também o concluiu com resultados expressivos.
Usando uma única instância AWS Graviton 4, o GizmoSQL processou o conjunto de um trilhão de linhas em pouco mais de 2 minutos. Leia sobre a abordagem e os resultados do GizmoSQL para comparar o desempenho em nó único com a execução distribuída.
Próximos passos
O GizmoEdge ainda está em pré-produção, e convidamos parceiros de desenvolvimento que queiram ampliar os limites da análise distribuída.
Se sua organização trabalha com vários terabytes ou até petabytes de dados e quer ver como o GizmoEdge pode executar suas consultas em segundos, entre em contato.
GizmoEdge — o mecanismo SQL distribuído para a nova fronteira dos dados.