Pular para o conteúdo principal
O DataStore pode executar operações usando diferentes backends. Este guia explica como configurar e otimizar a seleção do motor de execução.

Motores disponíveis

Configurando 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())
  • Valores distintos (distinct(), drop_duplicates())
  • Limitação de resultados (limit(), head(), tail())

Operações executadas no pandas

  • Funções apply personalizadas (apply(custom_func))
  • Tabelas dinâmicas complexas com agregações customizadas
  • 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 por meio do ClickHouse SQL:

Quando usar

  • Processamento de grandes volumes de dados (milhões de linhas)
  • Cargas de trabalho com muita agregação
  • Quando você quer 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 ser compatíveis
  • Alguns recursos específicos do pandas exigem conversão

Modo pandas

Force todas as operações a passar pelo 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 no formato do pandas

Características de desempenho


Motor entre DataStores

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

Override em nível de função

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

Comparação de desempenho

Resultados do benchmark em 10 milhões de linhas: Principais conclusões:
  • o chDB se destaca em agregações e pipelines complexos
  • o 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 profiling antes de forçar

3. Forçar o motor para cargas de trabalho específicas

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 cargas de trabalho 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 o pandas.
Última modificação em 1 de julho de 2026