Skip to main content
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. Décisions différées : Le moteur d’exécution peut être choisi au moment de l’exécution
  5. Inspection du plan : Vous pouvez inspecter/déboguer la requête avant de l’exécuter

Déclencheurs d’exécution

L’exécution est déclenchée automatiquement lorsque vous avez besoin de 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 pouvant être exprimées en SQL sont accumulées :

Phase 2 : Moment de l’exécution

Lorsqu’un déclenchement a lieu, le SQL accumulé est exécuté :

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

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

Afficher les plans d’exécution

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

Mise en cache

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

Fonctionnement du cache

Invalidation du cache

Le cache est invalidé lorsque des opérations modifient le DataStore :

Gestion manuelle du cache


Combiner des opérations SQL et pandas

DataStore gère intelligemment les opérations mêlant SQL et pandas :

Opérations compatibles avec SQL

Ces opérations sont compilées en SQL :
  • filter(), where()
  • select()
  • groupby(), agg()
  • sort(), orderby()
  • limit(), offset()
  • join(), union()
  • distinct()
  • Opérations sur les colonnes (calculs, comparaisons, méthodes sur les chaînes de caractères)

Opérations uniquement avec Pandas

Les opérations suivantes déclenchent l’exécution et utilisent 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 à l’aide de différents moteurs :

Mode automatique (par défaut)

Forcer le moteur chDB

Forcer l’utilisation du moteur pandas

Consultez Configuration : moteur d’exécution pour en savoir plus.

Impact sur les performances

Bien : filtrer en amont

Mauvais : filtrer trop tard

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

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 le plus tôt possible - 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 - Effectuez le débogage avant de lancer l’exécution
  5. Laissez SQL gérer les agrégations - ClickHouse est optimisé pour cela
  6. Soyez attentif aux déclencheurs d’exécution - Évitez tout déclenchement accidentel et prématuré
  7. Utilisez la mise en cache avec discernement - Sachez quand le cache est invalidé
Dernière modification le 23 juillet 2026