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 plus rapide

1. SQL Pushdown

Les opérations sont exécutées directement sur la source de données :

2. Sélection des colonnes nécessaires

Seules les colonnes nécessaires sont lues :

3. Évaluation différée

Plusieurs opérations se compilent 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

Points clés

  1. Opérations GroupBy : DataStore jusqu’à 19,93x plus rapide
  2. Pipelines complexes : DataStore 5 à 6x plus rapide (avantage du SQL pushdown)
  3. Opérations de découpage simples : performances comparables - différence négligeable
  4. Meilleur cas d’utilisation : 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 est préférable

Agrégations intensives

Pipelines complexes

Traitement des fichiers volumineux

Opérations sur plusieurs colonnes


Quand pandas tient la comparaison

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

Petits jeux de données (<1 000 lignes)

Opérations de découpage simples

Fonctions lambda Python personnalisées

ImportantMême dans les scénarios où DataStore est “plus lent”, les performances sont 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 plus fin de l’exécution, consultez la page 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 pratiquement gratuit - sans sérialisation ni copie en 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. Activer le mode Performance pour les charges de travail intensives

Pour les charges de travail fortement axées sur l’agrégation, lorsque 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. Utilisez Parquet plutôt que CSV

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

3. Filtrez dès le départ

4. Sélectionnez uniquement les colonnes nécessaires

5. Exploitez les agrégations SQL

6. Utilisez head() au lieu de requêtes complètes

7. Opérations par lots

8. Utilisez explain() pour optimiser


Profilage de votre charge de travail

Activer le profilage

Identifier 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 23 juillet 2026