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 ?
Les opérations sont exécutées au niveau de la source de données :
Seules les colonnes nécessaires sont lues :
Plusieurs opérations sont compilées en une seule requête :
Benchmark : DataStore vs pandas
- Données : 10 millions de lignes
- Matériel : ordinateur portable standard
- Format de fichier : CSV
- Opérations GroupBy : DataStore jusqu’à 19,93x plus rapide
- Pipelines complexes : DataStore 5 à 6x plus rapide (grâce au pushdown SQL)
- Opérations de découpage simples : performances comparables - différence négligeable
- Meilleur cas d’usage : opérations en plusieurs étapes avec GroupBy/agrégation
- Zero-copy :
to_df() n’entraîne aucun surcoût de conversion des données
Quand DataStore a l’avantage
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
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
8. Utilisez explain() pour optimiser
Profilage de votre charge de travail
Repérer les goulots d’étranglement
Comparaison des approches
Résumé des bonnes pratiques
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