Skip to main content
DataStore offre des gains de performance significatifs par rapport à pandas pour de nombreuses opérations. Ce guide explique pourquoi et comment optimiser vos charges de travail.

Pourquoi DataStore est-il plus rapide ?

1. SQL Pushdown

Les opérations sont exécutées au niveau de la source de données :

2. Élagage de colonnes

Seules les colonnes nécessaires sont lues :

3. Évaluation différée

Plusieurs opérations sont compilées en une seule requête :

Benchmark : DataStore vs pandas

Environnement de test

  • Données : 10 millions de lignes
  • Matériel : ordinateur portable standard
  • Format de fichier : CSV

Résultats

Principaux enseignements

  1. Opérations GroupBy : DataStore jusqu’à 19,93x plus rapide
  2. Pipelines complexes : DataStore 5 à 6x plus rapide (grâce au pushdown SQL)
  3. Opérations de découpage simples : performances comparables - différence négligeable
  4. Meilleur cas d’usage : opérations en plusieurs étapes avec GroupBy/agrégation
  5. Zero-copy : to_df() n’entraîne aucun surcoût de conversion des données

Quand DataStore a l’avantage

Agrégations intensives

Pipelines complexes

Traitement des fichiers de grande taille

Opérations sur plusieurs colonnes


Quand pandas tient la comparaison

Dans la plupart des cas, DataStore égale ou dépasse les performances de pandas. Cependant, pandas peut être légèrement plus rapide dans les cas suivants :

Jeux de données de petite taille (<1 000 lignes)

Opération de découpage simple

Fonctions lambda Python personnalisées

ImportantMême lorsque DataStore est “plus lent”, les performances restent généralement du même ordre que celles de pandas : la différence est négligeable en pratique. Les avantages de DataStore pour les opérations complexes l’emportent largement sur ces cas particuliers.Pour un contrôle précis de l’exécution, consultez la configuration du moteur d’exécution.

Intégration zero-copy des DataFrames

DataStore utilise le zero-copy pour lire et écrire des DataFrames pandas. Cela signifie :
Principales implications :
  • to_df() est quasiment sans coût - aucune sérialisation ni copie de mémoire
  • La création d’un DataStore à partir d’un pandas DataFrame est instantanée
  • La mémoire est partagée entre DataStore et les vues pandas

Conseils d’optimisation

1. Activez le mode Performance pour les charges de travail intensives

Pour les charges de travail à forte composante d’agrégation, si vous n’avez pas besoin du format de sortie exact de pandas (ordre des lignes, colonnes MultiIndex, corrections de dtype), activez le mode Performance pour un débit maximal :
Amélioration attendue : jusqu’à 2 à 8 fois plus rapide pour les charges de travail filter+groupby, avec une consommation mémoire réduite pour les fichiers Parquet volumineux. Voir Mode performance pour plus de détails.

2. Préférez Parquet au CSV

Amélioration attendue : lectures 3 à 10 fois plus rapides

3. Filtrez le plus tôt possible

4. Sélectionnez uniquement les colonnes nécessaires

5. Tirez parti des agrégations SQL

6. Utilisez head() plutôt que des requêtes complètes

7. Opérations par lots

8. Utilisez explain() pour optimiser


Profilage de votre charge de travail

Activer le profilage

Repérer les goulots d’étranglement

Comparaison des approches


Résumé des bonnes pratiques


Guide de décision rapide

Pour une sélection automatique optimale du moteur, utilisez config.set_execution_engine('auto') (par défaut). Pour un débit maximal sur les charges de travail d’agrégation, utilisez config.use_performance_mode(). Consultez Moteur d’exécution et Mode Performance pour plus de détails.
Dernière modification le 3 juillet 2026