> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# DataStore : API compatible pandas avec optimisation SQL

> DataStore fournit une API compatible pandas avec optimisation SQL pour l'analyse de données hautes performances

export const Image = ({img, alt, size = "lg", background}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  const backgroundColor = background === "white" ? "white" : background === "black" ? "rgb(31 31 28)" : undefined;
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} style={{
    backgroundColor
  }} />
      </Frame>
    </div>;
};

DataStore est l’API compatible avec pandas de chDB. Elle associe l’interface familière des DataFrame pandas à la puissance de l’optimisation des requêtes SQL et vous permet d’écrire du code dans le style de pandas tout en bénéficiant des performances de ClickHouse.

<div id="key-features">
  ## Fonctionnalités clés
</div>

* **Compatibilité avec pandas** : 209 méthodes de DataFrame pandas, 56 méthodes `.str`, plus de 42 méthodes `.dt`
* **Optimisation SQL** : les opérations sont automatiquement compilées en requêtes SQL optimisées
* **Évaluation paresseuse** : les opérations sont différées jusqu’à ce que les résultats soient nécessaires
* **630+ méthodes d’API** : une API complète pour la manipulation des données
* **Extensions ClickHouse** : des accesseurs supplémentaires (`.arr`, `.json`, `.url`, `.ip`, `.geo`) indisponibles dans pandas

<div id="architecture">
  ## Architecture
</div>

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/j4TqNPW6aWoq7zwy/images/chdb/datastore_architecture.png?fit=max&auto=format&n=j4TqNPW6aWoq7zwy&q=85&s=5a31fa11856ca3d3d11ca349306b310b" alt="Architecture de DataStore" width="2816" height="1536" data-path="images/chdb/datastore_architecture.png" />

DataStore utilise une **évaluation paresseuse** avec une **exécution sur deux moteurs** :

1. **Chaîne d'opérations différées** : les opérations sont enregistrées, et non exécutées immédiatement
2. **Sélection intelligente du moteur** : QueryPlanner oriente chaque segment vers le moteur le plus adapté (chDB pour SQL, Pandas pour les opérations complexes)
3. **Mise en cache intermédiaire** : les résultats sont mis en cache à chaque étape pour accélérer l'exploration itérative

Voir le [Modèle d'exécution](/fr/chdb/datastore/execution-model) pour plus de détails.

<div id="migration">
  ## Migration en une ligne depuis Pandas
</div>

```python theme={null}
# Before (pandas)
import pandas as pd
df = pd.read_csv("data.csv")
result = df[df['age'] > 25].groupby('city')['salary'].mean()

# After (DataStore) - just change the import!
from chdb import datastore as pd
df = pd.read_csv("data.csv")
result = df[df['age'] > 25].groupby('city')['salary'].mean()
```

Votre code pandas existant fonctionne tel quel, mais s’exécute désormais sur le moteur ClickHouse.

<div id="performance">
  ## Comparaison des performances
</div>

DataStore offre des gains de performances significatifs par rapport à pandas, en particulier pour l’agrégation et les pipelines complexes :

| Opération | Pandas | DataStore | Accélération |
| - | - | - | - |
| Count de GroupBy | 347ms | 17ms | **19.93x** |
| Pipeline complexe | 2,047ms | 380ms | **5.39x** |
| Filter+Sort+Head | 1,537ms | 350ms | **4.40x** |
| Agrégation GroupBy | 406ms | 141ms | **2.88x** |

*Benchmark effectué sur 10M lignes. Voir le [script de benchmark](https://github.com/chdb-io/chdb/blob/main/refs/benchmark_datastore_vs_pandas.py) et le [Guide des performances](/fr/chdb/guides/pandas-performance) pour plus de détails.*

<div id="when-to-use">
  ## Quand utiliser DataStore
</div>

**Utilisez DataStore lorsque :**

* Vous travaillez avec de grands jeux de données (des millions de lignes)
* Vous effectuez des agrégations et des opérations `groupby`
* Vous interrogez des données provenant de fichiers, de bases de données ou du stockage cloud
* Vous construisez des pipelines de données complexes
* Vous souhaitez bénéficier de l'API pandas avec de meilleures performances

**Utilisez l'API SQL brut lorsque :**

* Vous préférez écrire directement en SQL
* Vous avez besoin d'un contrôle fin sur l'exécution des requêtes
* Vous travaillez avec des fonctionnalités spécifiques à ClickHouse qui ne sont pas exposées dans l'API pandas

<div id="comparison">
  ## Comparaison des fonctionnalités
</div>

| Fonctionnalité | Pandas | Polars | DuckDB | DataStore |
| - | - | - | - | - |
| Compatible avec l'API Pandas | - | Partielle | Non | **Complète** |
| Évaluation paresseuse | Non | Oui | Oui | **Oui** |
| Prise en charge des requêtes SQL | Non | Oui | Oui | **Oui** |
| Fonctions ClickHouse | Non | Non | Non | **Oui** |
| Accesseurs String/DateTime | Oui | Oui | Non | **Oui + extras** |
| Array/JSON/URL/IP/Geo | Non | Partielle | Non | **Oui** |
| Requêtes directes sur des fichiers | Non | Oui | Oui | **Oui** |
| Prise en charge du stockage dans le cloud | Non | Limitée | Oui | **Oui** |

<div id="api-stats">
  ## Statistiques de l’API
</div>

| Catégorie | Nombre | Couverture |
| - | - | - |
| Méthodes de DataFrame | 209 | 100 % de pandas |
| Accesseur Series.str | 56 | 100 % de pandas |
| Accesseur Series.dt | 42+ | 100 %+ (inclut des fonctionnalités supplémentaires de ClickHouse) |
| Accesseur Series.arr | 37 | Spécifique à ClickHouse |
| Accesseur Series.json | 13 | Spécifique à ClickHouse |
| Accesseur Series.url | 15 | Spécifique à ClickHouse |
| Accesseur Series.ip | 9 | Spécifique à ClickHouse |
| Accesseur Series.geo | 14 | Spécifique à ClickHouse |
| **Total des méthodes de l’API** | **630+** | - |

<div id="navigation">
  ## Navigation dans la documentation
</div>

<div id="getting-started">
  ### Prise en main
</div>

* [Démarrage rapide](/fr/chdb/datastore/quickstart) - Installation et utilisation de base
* [Migration depuis Pandas](/fr/chdb/guides/migration-from-pandas) - Guide de migration étape par étape

<div id="api-reference">
  ### Référence de l’API
</div>

* [Méthodes de fabrique](/fr/chdb/datastore/factory-methods) - Création de DataStore à partir de diverses sources
* [Construction de requêtes](/fr/chdb/datastore/query-building) - Opérations de requête de style SQL
* [compatibilité avec pandas](/fr/chdb/datastore/pandas-compat) - Les 209 méthodes compatibles avec pandas
* [Accesseurs](/fr/chdb/datastore/accessors) - Accesseurs String, DateTime, Array, JSON, URL, IP et Geo
* [Agrégation](/fr/chdb/datastore/aggregation) - Fonctions d’agrégation et fonctions de fenêtre
* [Opérations d’E/S](/fr/chdb/datastore/io) - Lecture et écriture de données

<div id="advanced-topics">
  ### Sujets avancés
</div>

* [Modèle d'exécution](/fr/chdb/datastore/execution-model) - Évaluation paresseuse et mise en cache
* [Référence de classe](/fr/chdb/datastore/class-reference) - Référence complète de l’API

<div id="configuration-debugging">
  ### Configuration et débogage
</div>

* [Configuration](/fr/chdb/configuration/index) - Toutes les options de configuration
* [Performance Mode](/fr/chdb/configuration/performance-mode) - Mode axé SQL pour un débit maximal
* [Débogage](/fr/chdb/debugging/index) - Explain, profilage et journalisation

<div id="pandas-user-guides">
  ### Guides d’utilisation de Pandas
</div>

* [Recettes Pandas](/fr/chdb/guides/pandas-cookbook) - Cas d’usage courants
* [Principales différences](/fr/chdb/guides/pandas-differences) - Différences importantes avec Pandas
* [guide des performances](/fr/chdb/guides/pandas-performance) - Conseils d’optimisation
* [SQL pour les utilisateurs de Pandas](/fr/chdb/guides/pandas-to-sql) - Comprendre le SQL sous-jacent aux opérations de Pandas

<div id="quick-example">
  ## Exemple rapide
</div>

```python theme={null}
from chdb import datastore as pd

# Read data from various sources
ds = pd.read_csv("sales.csv")
# or: ds = pd.DataStore.uri("s3://bucket/sales.parquet")
# or: ds = pd.DataStore.from_mysql("mysql://user:pass@host/db/table")

# Familiar pandas operations - automatically optimized to SQL
result = (ds
    .filter(ds['amount'] > 1000)           # WHERE amount > 1000
    .groupby('region')                      # GROUP BY region
    .agg({'amount': ['sum', 'mean']})       # SUM(amount), AVG(amount)
    .sort_values('sum', ascending=False)    # ORDER BY sum DESC
    .head(10)                               # LIMIT 10
)

# View the generated SQL
print(result.to_sql())

# Execute and get results
df = result.to_df()  # Returns pandas DataFrame
```

<div id="next-steps">
  ## Étapes suivantes
</div>

* **Vous découvrez DataStore ?** Commencez par le [guide de démarrage rapide](/fr/chdb/datastore/quickstart)
* **Vous venez de pandas ?** Consultez le [guide de migration](/fr/chdb/guides/migration-from-pandas)
* **Vous voulez en savoir plus ?** Consultez la [référence de l’API](/fr/chdb/datastore/class-reference)
