Passer au contenu principal
Comprendre le modèle d’évaluation paresseuse de DataStore est essentiel pour l’utiliser efficacement et obtenir des performances optimales.

Évaluation paresseuse

DataStore utilise l’évaluation paresseuse : les opérations ne sont pas exécutées immédiatement ; elles sont enregistrées puis compilées en requêtes SQL optimisées. L’exécution n’a lieu que lorsque les résultats sont effectivement nécessaires.

Exemple : évaluation paresseuse vs évaluation immédiate

Avantages de l’évaluation paresseuse

  1. Optimisation des requêtes : plusieurs opérations sont compilées en une seule requête SQL optimisée
  2. Pushdown des filtres : les filtres sont appliqués au niveau de la source de données
  3. Élagage des colonnes : seules les colonnes nécessaires sont lues
  4. Choix différé : le moteur d’exécution peut être choisi à l’exécution
  5. Inspection du plan : vous pouvez afficher et déboguer la requête avant de l’exécuter

Déclencheurs d’exécution

L’exécution est automatiquement déclenchée lorsque vous avez besoin des valeurs réelles :

Déclencheurs automatiques

Exemples :

Opérations qui restent paresseuses

Exemples :

Exécution en trois phases

Les opérations de DataStore suivent un modèle d’exécution en trois phases :

Phase 1 : Construction de la requête SQL (paresseuse)

Les opérations qui peuvent être exprimées en SQL sont accumulées :

Phase 2 : point d’exécution

Lorsqu’un déclencheur se produit, le SQL accumulé est exécuté :

Phase 3 : Opérations sur les DataFrame (le cas échéant)

Si vous enchaînez des opérations spécifiques à pandas après l’exécution :

Affichage des plans d’exécution

Utilisez explain() pour voir ce qui sera exécuté :
Query
Response
Utilisez verbose=True pour obtenir plus de détails :
Consultez la documentation complète de Débogage : explain().

Mise en cache

DataStore met en cache les résultats d’exécution afin d’éviter les requêtes redondantes.

Comment fonctionne la mise en cache

Invalidation du cache

Le cache est invalidé dès que des opérations modifient le DataStore :

Gestion manuelle du cache


Combiner SQL et les opérations Pandas

DataStore gère intelligemment les opérations combinant SQL et pandas :

Opérations compatibles avec SQL

Elles sont compilées en SQL :
  • filter(), where()
  • select()
  • groupby(), agg()
  • sort(), orderby()
  • limit(), offset()
  • join(), union()
  • distinct()
  • Opérations sur les colonnes (mathématiques, comparaisons, méthodes sur les chaînes)

Opérations propres à Pandas

Ces opérations déclenchent l’exécution et font appel à Pandas :
  • apply() avec des fonctions personnalisées
  • pivot_table() avec des agrégations complexes
  • stack(), unstack()
  • Opérations sur des DataFrames déjà exécutés

Pipelines hybrides


Sélection du moteur d’exécution

DataStore peut exécuter des opérations avec différents moteurs :

Auto Mode (par défaut)

Forcer le moteur chDB

Forcer le moteur pandas

Consultez Configuration : moteur d’exécution pour plus de détails.

Impact sur les performances

Bien : filtrer tôt

À éviter : filtrer trop tard

Bon réflexe : sélectionnez les colonnes dès le début

Bon : laissez SQL faire le travail


Résumé des bonnes pratiques

  1. Chaînez les opérations avant d’exécuter - Construisez la requête complète, puis déclenchez l’exécution une seule fois
  2. Filtrez tôt - Réduisez les données à la source
  3. Sélectionnez uniquement les colonnes nécessaires - L’élagage des colonnes améliore les performances
  4. Utilisez explain() pour comprendre l’exécution - Déboguez avant d’exécuter
  5. Laissez SQL gérer les agrégations - ClickHouse est optimisé pour cela
  6. Sachez ce qui déclenche l’exécution - Évitez un déclenchement prématuré par inadvertance
  7. Utilisez la mise en cache à bon escient - Comprenez quand le cache est invalidé
Dernière modification le 2 juillet 2026