Skip to main content
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, mas são registradas e compiladas em consultas SQL otimizadas. A execução só ocorre quando os resultados são realmente necessários.

Exemplo: Lazy vs Imediato

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/depurar a consulta antes de executá-la

Gatilhos de execução

A execução é iniciada automaticamente quando você precisa de valores reais:

Gatilhos automáticos

Exemplos:

Operações que permanecem lazy

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 (lazy)

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

Fase 2: Momento da execução

Quando ocorre um disparo, o SQL acumulado é executado:

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

Se você encadear operações específicas 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 ver a documentação completa.

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 modificam o DataStore:

Controle manual do cache


Combinando operações SQL e do Pandas

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

Operações compatíveis com SQL

Estas operações são compiladas 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 texto)

Operações exclusivas do Pandas

Estas operações disparam 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 usando diferentes motores:

Modo Automático (Padrão)

Forçar o engine chDB

Forçar o engine do pandas

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

Implicações no desempenho

Bom: Filtrar logo no início

Ruim: filtrar tarde

Bom: selecione as colunas logo no início

Bom: deixe o SQL fazer o trabalho


Resumo de boas práticas

  1. Encadeie as operações antes de executar - Monte a consulta completa e só então a execute uma vez
  2. Filtre o quanto antes - Reduza os dados na origem
  3. Selecione apenas as colunas necessárias - A poda de colunas melhora o desempenho
  4. Use explain() para entender a execução - Faça a depuração 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 o cache com critério - Entenda quando o cache é invalidado
Última modificação em 23 de julho de 2026