Skip to main content
O DataStore pode executar operações usando diferentes backends. Este guia explica como configurar e otimizar a seleção do motor.

Motores disponíveis

Definindo o motor

Configuração global

Verificando o motor atual


Modo automático

No modo auto (padrão), o DataStore seleciona o motor mais adequado para cada operação:

Operações executadas no chDB

  • Filtragem compatível com SQL (filter(), where())
  • Seleção de colunas (select())
  • Ordenação (sort(), orderby())
  • Agrupamento e agregação (groupby().agg())
  • Junções (join(), merge())
  • Distinct (distinct(), drop_duplicates())
  • Limite (limit(), head(), tail())

Operações executadas no pandas

  • Funções apply personalizadas (apply(custom_func))
  • Tabelas dinâmicas complexas com agregações personalizadas
  • Operações que não podem ser expressas em SQL
  • Quando a entrada já é um DataFrame do pandas

Exemplo


Modo chDB

Force todas as operações via ClickHouse SQL:

Quando usar

  • Processamento de grandes volumes de dados (milhões de linhas)
  • Workloads de agregação intensiva
  • Quando você busca o máximo de otimização de SQL
  • Comportamento consistente em todas as operações

Características de desempenho

Limitações

  • Funções personalizadas em Python podem não ter suporte
  • Alguns recursos específicos do pandas exigem conversão

Modo pandas

Force todas as operações por meio do pandas:

Quando usar

  • Testes de compatibilidade com o pandas
  • Uso de funcionalidades específicas do pandas
  • Depuração de problemas relacionados ao pandas
  • Quando os dados já estão em formato pandas

Características de desempenho


Motor de Cross-DataStore

Configure o motor para operações que combinam colunas de diferentes DataStores:

Exemplo


Lógica de seleção do motor

Árvore de decisão do modo automático

Sobrescrita em nível de função

Algumas funções podem ter o motor configurado explicitamente:
Consulte Configuração de função para detalhes.

Comparação de desempenho

Resultados de benchmark em 10M linhas: Principais conclusões:
  • chDB se destaca em agregações e pipelines complexos
  • pandas é um pouco mais rápido em operações simples e isoladas
  • Use o modo auto para aproveitar o melhor dos dois

Boas práticas

1. Comece pelo modo automático

2. Faça o profiling antes de forçar

3. Forçar motor para workloads específicos

4. Use explain() para entender a execução


Solução de problemas

Problema: Operação mais lenta que o esperado

Problema: operação não suportada no modo chdb

Problema: uso excessivo de memória com grandes volumes de dados

Modo de desempenhoSe você estiver executando workloads pesadas de agregação e não precisar de compatibilidade exata com a saída do pandas (ordem das linhas, MultiIndex, correções de dtype), considere usar o modo de desempenho. Ele define automaticamente o motor como chdb e remove toda a sobrecarga de compatibilidade com pandas.
Última modificação em 23 de julho de 2026