Skip to main content
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 desativa


Ativando o modo de desempenho

Usando o objeto de configuração

Usando funções de nível de módulo

Usando imports de conveniência

Ao definir o modo de desempenho, o mecanismo de execução é configurado automaticamente como chdb. Você não precisa chamar config.use_chdb() separadamente.

Quando usar o modo de desempenho

Use o modo de desempenho quando:
  • Estiver processando grandes conjuntos 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 de SQL com o mínimo de sobrecarga
  • 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() retornarem a verdadeira primeira/última linha
  • Usar shift(), diff(), cumsum() que dependem da ordem das linhas
  • Estiver escrevendo testes que comparam a saída do DataStore com a do 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 filtro
  • Resultados de agregação do GroupBy
  • head() / tail() sem sort_values() explícito
  • Agregações first() / last()
Se você precisar de resultados ordenados, adicione um sort_values() explícito:

Resultados de GroupBy

Agregação

Execução com uma única consulta SQL

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 necessidade de materializar o DataFrame intermediário 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: Ao definir compat_mode='performance', execution_engine='chdb' é definido automaticamente, já que o modo de desempenho foi projetado para execução de SQL.

Testes no modo de desempenho

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

Ordenar e depois comparar (agregações, filtros)

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

Esquema e contagem (LIMIT sem ORDER BY)


Boas práticas

1. Ative logo no início do script

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

3. Use para cargas de trabalho de batch/ETL

4. Alternar entre modos em uma sessão


Última modificação em 23 de julho de 2026