Pular para o conteúdo principal
O DataStore tem dois modos de compatibilidade que determinam se a saída é formatada para compatibilidade com pandas ou otimizada para o desempenho de Raw SQL.

Visão geral

O que o modo de desempenho desabilita


Habilitando o modo de desempenho

Usando o objeto config

Usando funções no nível do módulo

Usando importações simplificadas

Ao ativar o modo de desempenho, o mecanismo de execução é definido automaticamente como chdb. Não é necessário chamar config.use_chdb() separadamente.

Quando usar o modo de desempenho

Use o modo de desempenho quando:
  • Estiver processando grandes volumes de dados (de centenas de milhares a milhões de linhas)
  • Estiver executando workloads com muita agregação (groupby, sum, mean, count)
  • A ordem das linhas não importar (por exemplo, resultados agregados, relatórios, dashboards)
  • Quiser o máximo de throughput SQL com a menor sobrecarga possível
  • O uso de memória for uma preocupação (leitura paralela de Parquet, sem DataFrames intermediários)
Permaneça no modo pandas quando:
  • Precisar do comportamento exato do pandas (ordem das linhas, MultiIndex, dtypes)
  • Depender de first()/last() para retornar de fato a primeira/última linha
  • Usar shift(), diff(), cumsum() que dependem da ordem das linhas
  • Estiver escrevendo testes que comparam a saída do DataStore com o pandas

Diferenças de comportamento

Ordem das linhas

No modo de desempenho, a ordem das linhas não é garantida em nenhuma operação. Isso inclui:
  • Resultados de filtros
  • Resultados de agregação de GroupBy
  • head() / tail() sem sort_values() explícito
  • Agregações first() / last()
Se precisar de resultados ordenados, adicione um sort_values() explícito:

Resultados do GroupBy

Agregação

Execução em SQL único

No modo de desempenho, a agregação groupby de ColumnExpr (por exemplo, ds[condition].groupby('col')['val'].sum()) é executada como uma única consulta SQL, em vez do processo de duas etapas usado no modo pandas:
Isso elimina a materialização intermediária do DataFrame e pode reduzir significativamente o uso de memória e o tempo de execução.

Comparação com o mecanismo de execução

O modo de desempenho (compat_mode) e o mecanismo de execução (execution_engine) são eixos de configuração independentes: Definir compat_mode='performance' configura automaticamente execution_engine='chdb', já que o modo de desempenho foi projetado para execução de SQL.

Testando com o modo de desempenho

Ao escrever testes para o modo de desempenho, os resultados podem diferir do pandas na ordem das linhas e na estrutura do formato. Use estas estratégias:

Ordenar e comparar (agregações, filtros)

Validação de faixa de valores (primeiro/último)

Esquema e contagem (LIMIT sem ORDER BY)


Boas práticas

1. Habilite no início do script

2. Adicione ordenação explícita quando a ordem for importante

3. Use em cargas de trabalho de batch/ETL

4. Alterne entre modos em uma sessão


Última modificação em 10 de junho de 2026