Passer au contenu principal
DataStore peut exécuter des opérations via différents backends. Ce guide explique comment configurer et optimiser le choix du moteur.

Moteurs disponibles

MoteurDescriptionIdéal pour
autoSélectionne automatiquement le meilleur moteur pour chaque opérationUtilisation générale (par défaut)
chdbExécute toutes les opérations via ClickHouse SQLGrands ensembles de données, agrégations
pandasExécute toutes les opérations via pandasTests de compatibilité, fonctionnalités propres à pandas

Définir le moteur

Configuration globale

Vérifier le moteur actuel


mode auto

En mode auto (par défaut), DataStore choisit le moteur le plus adapté à chaque opération :

Opérations exécutées dans chDB

  • Filtrage de type SQL (filter(), where())
  • Sélection de colonnes (select())
  • Tri (sort(), orderby())
  • Regroupement et agrégation (groupby().agg())
  • Jointures (join(), merge())
  • Déduplication (distinct(), drop_duplicates())
  • Limitation (limit(), head(), tail())

Opérations effectuées dans pandas

  • Fonctions apply personnalisées (apply(custom_func))
  • Tableaux croisés dynamiques complexes avec des agrégations personnalisées
  • Opérations impossibles à exprimer en SQL
  • Lorsque l’entrée est déjà un DataFrame pandas

Exemple


Mode chDB

Forcez toutes les opérations via ClickHouse SQL :

Quand l’utiliser

  • Traitement de grands volumes de données (des millions de lignes)
  • Charges de travail d’agrégation intensives
  • Lorsque vous recherchez une optimisation SQL maximale
  • Comportement cohérent pour toutes les opérations

Caractéristiques en matière de performances

Type d’opérationPerformances
GroupBy/AgrégationExcellentes (jusqu’à 20x plus rapide)
Filtrage complexeExcellentes
TriTrès bonnes
Filtres simples individuelsBonnes (léger surcoût)

Limites

  • Les fonctions Python personnalisées peuvent ne pas être prises en charge
  • Certaines fonctionnalités propres à pandas nécessitent une conversion

Mode pandas

Forcer toutes les opérations via pandas :

Quand utiliser

  • Tests de compatibilité avec pandas
  • Utilisation de fonctionnalités propres à pandas
  • Débogage des problèmes liés à pandas
  • Lorsque les données sont déjà au format pandas

Caractéristiques de performances

Type d’opérationPerformance
Opérations simplesBonne
Fonctions personnaliséesExcellente
Agrégations complexesPlus lentes que chDB
Jeux de données volumineuxGourmands en mémoire

Moteur Cross-DataStore

Configurez le moteur pour les opérations combinant des colonnes de différents DataStores :

Exemple


Logique de sélection du moteur

Arbre de décision du mode Auto

Surcharge au niveau de la fonction

Certaines fonctions peuvent avoir leur moteur configuré explicitement :
Voir Configuration des fonctions pour plus de détails.

Comparaison des performances

Résultats du benchmark sur 10 M lignes :
Opérationpandas (ms)chdb (ms)Accélération
GroupBy count3471719.93x
Opérations combinées1,5352346.56x
Pipeline complexe2,0473805.39x
Filter+Sort+Head1,5373504.40x
GroupBy agg4061412.88x
Filtre simple2765260.52x
Points clés :
  • chDB excelle pour les agrégations et les pipelines complexes
  • pandas est légèrement plus rapide pour les opérations simples prises isolément
  • Utilisez le mode auto pour profiter du meilleur des deux

Bonnes pratiques

1. Commencez par mode auto

2. Définissez un profil avant de forcer

3. Forcer un moteur pour des charges de travail spécifiques

4. Utilisez explain() pour comprendre l’exécution


Dépannage

Problème : opération plus lente que prévue

Problème : opération non prise en charge en mode chdb

Problème : problèmes de mémoire avec de gros volumes de données

Performance ModeSi vous exécutez des charges d’agrégation importantes et que vous n’avez pas besoin d’une compatibilité exacte avec la sortie de pandas (ordre des lignes, MultiIndex, corrections de type), envisagez d’utiliser le Performance Mode. Il définit automatiquement le moteur sur chdb et supprime toute la surcharge liée à la compatibilité avec pandas.
Dernière modification le 2 juillet 2026