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

# DataStore : API compatible avec pandas, avec optimisation SQL

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

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

DataStore est l’API compatible avec pandas de chDB qui associe l’interface familière des pandas DataFrame à 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 leurs résultats soient nécessaires
* **630+ méthodes d’API** : une API complète pour la manipulation des données
* **Extensions ClickHouse** : accesseurs supplémentaires (`.arr`, `.json`, `.url`, `.ip`, `.geo`) non disponibles dans pandas

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

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/Sr_JUhB6DLeeNQJ0/images/chdb/datastore_architecture.png?fit=max&auto=format&n=Sr_JUhB6DLeeNQJ0&q=85&s=0726168ff23fdb2e7e615ad58d79a4fa" alt="Architecture de DataStore" width="2816" height="1536" data-path="images/chdb/datastore_architecture.png" />

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

1. **Chaîne d’opérations différées** : les opérations sont enregistrées, sans être exécutées immédiatement
2. **Sélection intelligente du moteur** : QueryPlanner dirige 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/products/chdb/datastore/execution-model) pour plus de détails.

<div id="migration">
  ## Migration en une ligne à partir de 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 | Gain de vitesse |
| ----------------- | ------- | --------- | --------------- |
| GroupBy count     | 347ms   | 17ms      | **19.93x**      |
| Pipeline complexe | 2,047ms | 380ms     | **5.39x**       |
| Filter+Sort+Head  | 1,537ms | 350ms     | **4.40x**       |
| GroupBy agg       | 406ms   | 141ms     | **2.88x**       |

*Benchmark sur 10 M de 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/products/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 de groupby
* Vous interrogez des données depuis des fichiers, des bases de données ou un stockage cloud
* Vous créez des pipelines de données complexes
* Vous souhaitez profiter de l'API pandas avec de meilleures performances

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

* Vous préférez écrire du SQL directement
* Vous avez besoin d'un contrôle précis sur l'exécution des requêtes
* Vous utilisez des fonctionnalités propres à ClickHouse qui ne sont pas exposées dans l'API pandas

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

| Fonctionnalité                     | Pandas | Polars    | DuckDB | DataStore        |
| ---------------------------------- | ------ | --------- | ------ | ---------------- |
| Compatibilité avec l'API Pandas    | -      | Partielle | Non    | **Totale**       |
| É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 cloud  | Non    | Limitée   | Oui    | **Oui**          |

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

| Catégorie                       | Nombre   | Couverture                                          |
| ------------------------------- | -------- | --------------------------------------------------- |
| Méthodes DataFrame              | 209      | 100 % de pandas                                     |
| Accesseur Series.str            | 56       | 100 % de pandas                                     |
| Accesseur Series.dt             | 42+      | 100 %+ (inclut des extensions propres à 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/products/chdb/datastore/quickstart) - Installation et utilisation de base
* [Migration depuis Pandas](/fr/products/chdb/guides/migration-from-pandas) - Guide de migration pas à pas

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

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

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

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

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

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

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

* [Livre de recettes Pandas](/fr/products/chdb/guides/pandas-cookbook) - Cas d’usage courants
* [Principales différences](/fr/products/chdb/guides/pandas-differences) - Différences importantes par rapport à pandas
* [Guide des performances](/fr/products/chdb/guides/pandas-performance) - Conseils d’optimisation
* [SQL pour les utilisateurs de Pandas](/fr/products/chdb/guides/pandas-to-sql) - Comprendre le SQL sous-jacent aux opérations 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ébutez avec DataStore ?** Commencez par le [guide de démarrage rapide](/fr/products/chdb/datastore/quickstart)
* **Vous utilisez déjà pandas ?** Consultez le [guide de migration](/fr/products/chdb/guides/migration-from-pandas)
* **Vous voulez en savoir plus ?** Consultez la [référence de l’API](/fr/products/chdb/datastore/class-reference)
