Pular para o conteúdo principal
Entender o modelo de avaliação preguiçosa do DataStore é essencial para usá-lo com eficiência e obter o melhor desempenho.

Avaliação preguiçosa

O DataStore usa avaliação preguiçosa - as operações não são executadas imediatamente; em vez disso, são registradas e compiladas em consultas SQL otimizadas. A execução só acontece quando os resultados são realmente necessários.

Exemplo: Preguiçoso vs Eager

Benefícios da Avaliação Preguiçosa

  1. Otimização de Consultas: várias operações são compiladas em uma única consulta SQL otimizada
  2. Pushdown de Filtros: os filtros são aplicados no nível da fonte de dados
  3. Poda de Colunas: apenas as colunas necessárias são lidas
  4. Decisões Adiadas: o mecanismo de execução pode ser escolhido em tempo de execução
  5. Inspeção do Plano: você pode visualizar e depurar a consulta antes de executá-la

Gatilhos de execução

A execução é acionada automaticamente quando você precisa dos valores reais:

Gatilhos automáticos

Exemplos:

Operações que permanecem preguiçosas

Exemplos:

Execução em três fases

As operações do DataStore seguem um modelo de execução em três fases:

Fase 1: Construção da consulta SQL (Preguiçoso)

As operações que podem ser expressas em SQL são acumuladas:

Fase 2: Ponto de execução

Quando um gatilho é acionado, o SQL acumulado é executado:

Fase 3: Operações com DataFrame (se houver)

Se você encadear operações apenas do pandas após a execução:

Visualizando planos de execução

Use explain() para ver o que será executado:
Query
Response
Use verbose=True para obter mais detalhes:
Consulte Depuração: explain() para acessar a documentação completa.

Armazenamento em cache

O DataStore armazena em cache os resultados da execução para evitar consultas redundantes.

Como o cache funciona

Invalidação do cache

O cache é invalidado quando operações alteram o DataStore:

Controle manual do cache


Combinando operações de SQL e Pandas

O DataStore lida de forma inteligente com operações que combinam SQL e pandas:

Operações compatíveis com SQL

São convertidas em SQL:
  • filter(), where()
  • select()
  • groupby(), agg()
  • sort(), orderby()
  • limit(), offset()
  • join(), union()
  • distinct()
  • Operações em colunas (matemática, comparação, métodos de string)

Operações exclusivas do Pandas

Estas operações acionam a execução e usam o Pandas:
  • apply() com funções personalizadas
  • pivot_table() com agregações complexas
  • stack(), unstack()
  • Operações em DataFrames já executados

Pipelines híbridos


Seleção do mecanismo de execução

O DataStore pode executar operações com diferentes mecanismos:

Modo automático (padrão)

Forçar o mecanismo chDB

Forçar o mecanismo do pandas

Consulte Configuração: Mecanismo de execução para mais detalhes.

Impactos no desempenho

Bom: aplique o filtro no início

Ruim: filtrar só no fim

Bom: selecione as colunas desde o início

Bom: deixe o SQL fazer o trabalho


Resumo das práticas recomendadas

  1. Encadeie as operações antes de executar - Monte a consulta completa e só então acione a execução uma vez
  2. Filtre o quanto antes - Reduza os dados na origem
  3. Selecione apenas as colunas necessárias - A eliminação de colunas melhora o desempenho
  4. Use explain() para entender a execução - Depure antes de executar
  5. Deixe o SQL cuidar das agregações - O ClickHouse é otimizado para isso
  6. Fique atento aos gatilhos de execução - Evite execuções antecipadas acidentais
  7. Use cache com critério - Entenda quando o cache é invalidado
Última modificação em 19 de junho de 2026