Skip to main content
O DataStore oferece ganhos significativos de desempenho em relação ao pandas em muitas operações. Este guia explica por quê e como otimizar suas cargas de trabalho.

Por que o DataStore é mais rápido

1. SQL Pushdown

As operações são executadas na fonte de dados:

2. Poda de colunas

Somente as colunas necessárias são lidas:

3. Avaliação preguiçosa

Múltiplas operações são compiladas em uma única consulta:

Benchmark: DataStore vs pandas

Ambiente de teste

  • Dados: 10 milhões de linhas
  • Hardware: Laptop comum
  • Formato de arquivo: CSV

Resultados

Principais conclusões

  1. Operações de GroupBy: DataStore até 19,93x mais rápido
  2. Pipelines complexos: DataStore 5–6x mais rápido (benefício do SQL pushdown)
  3. Operações simples de fatiamento: Desempenho comparável — diferença insignificante
  4. Melhor caso de uso: Operações em várias etapas com GroupBy/agregação
  5. Zero-copy: to_df() não tem sobrecarga de conversão de dados

Quando o DataStore leva vantagem

Agregações pesadas

Pipelines complexos

Processamento de arquivos grandes

Operações em várias colunas


Quando o pandas se equipara

Na maioria dos cenários, o DataStore iguala ou supera o desempenho do pandas. No entanto, o pandas pode ser um pouco mais rápido nestes casos específicos:

Pequenos volumes de dados (<1.000 linhas)

Operações simples de fatiamento

Funções lambda personalizadas em Python

ImportanteMesmo em cenários em que o DataStore é “mais lento”, o desempenho geralmente fica no mesmo nível do pandas — a diferença é desprezível na prática. As vantagens do DataStore em operações complexas superam de longe esses casos pontuais.Para um controle mais detalhado da execução, consulte Configuração do mecanismo de execução.

Integração de DataFrame com zero-copy

O DataStore usa zero-copy para ler e gravar DataFrames do pandas. Isso significa:
Principais implicações:
  • to_df() praticamente não tem custo — sem serialização nem cópia de memória
  • Criar um DataStore a partir de um DataFrame do pandas é instantâneo
  • A memória é compartilhada entre o DataStore e as views do pandas

Dicas de otimização

1. Ative o modo de desempenho para cargas de trabalho com muita agregação

Para cargas de trabalho com muita agregação em que você não precisa do formato de saída exato do pandas (ordem das linhas, colunas MultiIndex, correções de dtype), ative o modo de desempenho para obter o máximo throughput:
Melhoria esperada: Até 2-8x mais rápido em cargas de trabalho com filter+groupby, com uso de memória reduzido para arquivos Parquet grandes. Consulte Modo de desempenho para ver todos os detalhes.

2. Use Parquet em vez de CSV

Melhoria esperada: leituras de 3 a 10x mais rápidas

3. Aplique filtros o quanto antes

4. Selecione apenas as colunas necessárias

5. Use agregações SQL

6. Use head() em vez de consultas completas

7. Operações em lote

8. Use o explain() para otimizar


Profiling da sua carga de trabalho

Habilite o profiling

Identifique gargalos

Compare as abordagens


Resumo das boas práticas


Guia rápido de decisão

Para selecionar automaticamente o engine ideal, use config.set_execution_engine('auto') (padrão). Para throughput máximo em cargas de trabalho de agregação, use config.use_performance_mode(). Consulte Mecanismo de execução e modo de desempenho para mais detalhes.
Última modificação em 23 de julho de 2026