Skip to main content
DataStore propose deux modes de compatibilité qui déterminent si la sortie est formatée pour la compatibilité avec pandas ou optimisée pour les performances du SQL brut.

Vue d’ensemble

Ce que désactive le mode Performance


Activation du mode Performance

Utilisation de l’objet de configuration

Utilisation des fonctions au niveau du module

Utilisation des imports simplifiés

L’activation du mode Performance règle automatiquement le moteur d’exécution sur chdb. Vous n’avez pas besoin d’appeler config.use_chdb() séparément.

Quand utiliser le mode Performance

Utilisez le mode Performance lorsque :
  • vous traitez de grands jeux de données (de centaines de milliers à plusieurs millions de lignes)
  • vous exécutez des workloads à forte agrégation (groupby, sum, mean, count)
  • l’ordre des lignes n’a pas d’importance (par exemple pour des résultats agrégés, des rapports ou des tableaux de bord)
  • vous voulez un débit SQL maximal avec un minimum d’overhead
  • la consommation mémoire est un enjeu (lecture parallèle de Parquet, sans DataFrame intermédiaire)
Restez en mode pandas lorsque :
  • vous avez besoin du comportement exact de pandas (ordre des lignes, MultiIndex, dtypes)
  • vous dépendez de first()/last() pour renvoyer la véritable première/dernière ligne
  • vous utilisez shift(), diff(), cumsum() qui dépendent de l’ordre des lignes
  • vous écrivez des tests qui comparent les résultats de DataStore à ceux de pandas

Différences de comportement

Ordre des lignes

En mode performance, l’ordre des lignes n’est pas garanti pour quelque opération que ce soit. Cela inclut :
  • Résultats de filtrage
  • Résultats d’agrégation GroupBy
  • head() / tail() sans sort_values() explicite
  • Agrégations first() / last()
Si vous avez besoin de résultats ordonnés, ajoutez un sort_values() explicite :

Résultats de GroupBy

Agrégation

Exécution en une seule requête SQL

En mode performance, l’agrégation groupby sur ColumnExpr (par ex., ds[condition].groupby('col')['val'].sum()) est exécutée comme une seule requête SQL, au lieu du processus en deux étapes utilisé en mode pandas :
Cela évite la matérialisation intermédiaire du DataFrame et peut réduire considérablement l’utilisation de la mémoire ainsi que le temps d’exécution.

Comparaison avec le moteur d’exécution

Le mode Performance (compat_mode) et le moteur d’exécution (execution_engine) sont deux axes de configuration indépendants : Définir compat_mode='performance' définit automatiquement execution_engine='chdb', car le mode Performance est conçu pour l’exécution SQL.

Test en mode Performance

Lors de la rédaction de tests en mode Performance, les résultats peuvent différer de ceux de pandas en ce qui concerne l’ordre des lignes et le format structurel. Utilisez les stratégies suivantes :

Tri puis comparaison (agrégations, filtres)

Contrôle de la plage de valeurs (première/dernière)

Schéma et comptage (LIMIT sans ORDER BY)


Bonnes pratiques

1. Activez-le dès le début de votre script

2. Ajoutez un tri explicite lorsque l’ordre est important

3. À utiliser pour les charges de travail de traitement par lots/ETL

4. Basculer entre les modes au sein d’une session


Dernière modification le 23 juillet 2026