Pular para o conteúdo principal
DataStore oferece melhorias significativas 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. Pushdown de SQL

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

2. Poda de colunas

Apenas as colunas necessárias são lidas:

3. Avaliação preguiçosa

Várias operações são compiladas em uma única consulta:

Benchmark: DataStore vs pandas

Ambiente de teste

  • Dados: 10 milhões de linhas
  • Hardware: notebook padrão
  • 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 pushdown de SQL)
  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 se destaca

Agregações pesadas

Pipelines Complexos

Processamento de arquivos grandes

Operações em várias colunas


Quando o pandas é competitivo

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 conjuntos 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 normalmente é comparável ao do pandas — a diferença é insignificante na prática. As vantagens do DataStore em operações complexas superam amplamente esses casos pontuais.Para ter um controle mais detalhado da execução, consulte Configuração do mecanismo de execução.

Integração zero-copy com DataFrame

O DataStore usa zero-copy para ler e gravar DataFrames do pandas. Isso significa:
Principais implicações:
  • to_df() é praticamente gratuito — 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 visualizações do pandas

Dicas de otimização

1. Ative o modo de desempenho para cargas de trabalho intensivas

Para cargas de trabalho intensivas em 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 throughput máximo:
Melhoria esperada: Até 2-8x mais rápido em workloads de filter+groupby, com menor uso de memória em arquivos Parquet grandes. Consulte Modo de desempenho para mais detalhes.

2. Use Parquet em vez de CSV

Melhoria esperada: leituras 3 a 10 vezes mais rápidas

3. Aplique filtros cedo

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 explain() para otimizar


Profiling da sua carga de trabalho

Ative o profiling

Identifique gargalos

Compare as abordagens


Resumo de Boas Práticas


Guia rápido de decisão

Para seleção automática do engine mais adequado, use config.set_execution_engine('auto') (padrão). Para máximo throughput 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 12 de junho de 2026