Tableau récapitulatif
1. Exécution différée vs immédiate
pandas (Exécution immédiate)
DataStore (différé)
Pourquoi c’est important
- Optimisation des requêtes : plusieurs opérations sont compilées en une seule requête SQL
- Élagage des colonnes : seules les colonnes nécessaires sont lues
- Pushdown des filtres : les filtres sont appliqués à la source
- Utilisation efficace de la mémoire : ne chargez pas les données dont vous n’avez pas besoin
2. Types de retour
pandas
DataStore
Conversion en types pandas
3. Déclencheurs d’exécution
Opérations qui restent en exécution différée
4. Ordre des lignes
pandas
DataStore
rowNumberInAllBlocks()) afin de garantir la cohérence de l’ordre avec pandas.
Lorsque l’ordre est préservé
- Sources de fichiers (CSV, Parquet, JSON, etc.)
- Sources de type pandas DataFrame
- Opérations de filtrage
- Sélection de colonnes
- Après un
sort()ou unsort_values()explicite - Opérations qui définissent l’ordre (
nlargest(),nsmallest(),head(),tail())
Cas où l’ordre peut varier
- Après des agrégations
groupby()(utilisezsort_values()pour garantir un ordre cohérent) - Après
merge()/join()avec certains types de jointure - En mode performance (
config.use_performance_mode()) : l’ordre des lignes n’est pas garanti, quelle que soit l’opération. Voir Mode Performance.
5. Pas de paramètre inplace
pandas
DataStore
inplace=True n’est pas pris en charge. Assignez toujours le résultat :
Pourquoi pas de inplace ?
- La construction de requêtes (évaluation paresseuse)
- La sûreté en environnement multithread
- Un débogage plus facile
- Un code plus clair
6. Prise en charge des index
pandas
DataStore
Le type de source DataStore est important
- Source DataFrame : conserve l’index pandas
- Source File : utilise un index entier simple
7. Comportement des comparaisons
Comparaison avec pandas
Utilisation d’equals()
8. Inférence de type
pandas
DataStore
Conversion de type explicite
9. Modèle mémoire
pandas
DataStore
10. Messages d’erreur
Différentes sources d’erreurs
- erreurs pandas : issues de la bibliothèque pandas
- erreurs DataStore : issues de chDB ou de ClickHouse
Conseils de débogage
Checklist de migration
- Modifier l’instruction d’import
- Supprimer les paramètres
inplace=True - Ajouter un
to_df()explicite lorsqu’un DataFrame pandas est nécessaire - Ajouter un tri si l’ordre des lignes a de l’importance
- Utiliser
to_pandas()pour les tests de comparaison - Tester avec des volumes de données représentatifs