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

# DataStore: API compatible con pandas con optimización de SQL

> DataStore ofrece una API compatible con pandas con optimización de SQL para el análisis de datos de alto rendimiento

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

DataStore es la API compatible con pandas de chDB que combina la conocida interfaz de pandas DataFrame con la potencia de la optimización de consultas SQL y le permite escribir código al estilo de pandas mientras obtiene el rendimiento de ClickHouse.

<div id="key-features">
  ## Características principales
</div>

* **Compatibilidad con pandas**: 209 métodos de DataFrame de pandas, 56 métodos `.str`, 42+ métodos `.dt`
* **Optimización de SQL**: Las operaciones se convierten automáticamente en consultas SQL optimizadas
* **Evaluación diferida**: Las operaciones se posponen hasta que se necesitan los resultados
* **Más de 630 métodos de API**: Una API completa para la manipulación de datos
* **Extensiones de ClickHouse**: Accesores adicionales (`.arr`, `.json`, `.url`, `.ip`, `.geo`) no disponibles en pandas

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

<Image size="md" img="https://mintcdn.com/private-7c7dfe99-home-button/iOJBcv5hu2da8lsi/images/chdb/datastore_architecture.png?fit=max&auto=format&n=iOJBcv5hu2da8lsi&q=85&s=e7c3409dd7781cd6ad0b6028ca3d7d79" alt="Arquitectura de DataStore" width="2816" height="1536" data-path="images/chdb/datastore_architecture.png" />

DataStore usa **evaluación diferida** con **ejecución con doble motor**:

1. **Cadena de operaciones diferidas**: las operaciones se registran; no se ejecutan de inmediato
2. **Selección inteligente del motor**: QueryPlanner dirige cada segmento al motor óptimo (chDB para SQL, Pandas para operaciones complejas)
3. **Almacenamiento en caché intermedio**: los resultados se almacenan en caché en cada paso para agilizar la exploración iterativa

Consulta [modelo de ejecución](/es/products/chdb/datastore/execution-model) para más detalles.

<div id="migration">
  ## Migración desde Pandas en una sola línea
</div>

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

# Después (DataStore) - ¡solo cambia el import!
from chdb import datastore as pd
df = pd.read_csv("data.csv")
result = df[df['age'] > 25].groupby('city')['salary'].mean()
```

Tu código actual de pandas funciona sin cambios, pero ahora se ejecuta sobre el ClickHouse engine.

<div id="performance">
  ## Comparación de rendimiento
</div>

DataStore ofrece mejoras significativas de rendimiento frente a pandas, especialmente en la agregación y en las canalizaciones complejas:

| Operación              | Pandas  | DataStore | Mejora     |
| ---------------------- | ------- | --------- | ---------- |
| Recuento con GroupBy   | 347ms   | 17ms      | **19.93x** |
| Pipeline complejo      | 2,047ms | 380ms     | **5.39x**  |
| Filter+Sort+Head       | 1,537ms | 350ms     | **4.40x**  |
| Agregación con GroupBy | 406ms   | 141ms     | **2.88x**  |

*Benchmark con 10 M de filas. Consulta el [script de benchmark](https://github.com/chdb-io/chdb/blob/main/refs/benchmark_datastore_vs_pandas.py) y la [guía de rendimiento](/es/products/chdb/guides/pandas-performance) para obtener más información.*

<div id="when-to-use">
  ## Cuándo usar DataStore
</div>

**Usa DataStore cuando:**

* Trabajas con conjuntos de datos grandes (millones de filas)
* Realizas agregaciones y operaciones de agrupación (`groupby`)
* Consultas datos desde archivos, bases de datos o almacenamiento en la nube
* Creas canalizaciones de datos complejas
* Quieres la API de pandas con mejor rendimiento

**Usa la API de SQL directo cuando:**

* Prefieres escribir SQL directamente
* Necesitas un control detallado sobre la ejecución de consultas
* Trabajas con funcionalidades específicas de ClickHouse que no están expuestas en la API de pandas

<div id="comparison">
  ## Comparación de funcionalidades
</div>

| Característica                               | Pandas | Polars   | DuckDB | DataStore       |
| -------------------------------------------- | ------ | -------- | ------ | --------------- |
| Compatible con la API de Pandas              | -      | Parcial  | No     | **Completa**    |
| Evaluación diferida                          | No     | Sí       | Sí     | **Sí**          |
| Compatibilidad con consultas SQL             | No     | Sí       | Sí     | **Sí**          |
| Funciones de ClickHouse                      | No     | No       | No     | **Sí**          |
| Accesores de String/DateTime                 | Sí     | Sí       | No     | **Sí + extras** |
| Array/JSON/URL/IP/Geo                        | No     | Parcial  | No     | **Sí**          |
| Consultas directas sobre archivos            | No     | Sí       | Sí     | **Sí**          |
| Compatibilidad con almacenamiento en la nube | No     | Limitado | Sí     | **Sí**          |

<div id="api-stats">
  ## Estadísticas de la API
</div>

| Categoría                      | Cantidad | Cobertura                                           |
| ------------------------------ | -------- | --------------------------------------------------- |
| Métodos de DataFrame           | 209      | 100% de pandas                                      |
| Accesor `str` de Series        | 56       | 100% de pandas                                      |
| Accesor `dt` de Series         | 42+      | 100%+ (incluye funciones adicionales de ClickHouse) |
| Accesor `arr` de Series        | 37       | específico de ClickHouse                            |
| Accesor `json` de Series       | 13       | específico de ClickHouse                            |
| Accesor `url` de Series        | 15       | específico de ClickHouse                            |
| Accesor `ip` de Series         | 9        | específico de ClickHouse                            |
| Accesor `geo` de Series        | 14       | específico de ClickHouse                            |
| **Total de métodos de la API** | **630+** | -                                                   |

<div id="navigation">
  ## Navegación de la documentación
</div>

<div id="getting-started">
  ### Primeros pasos
</div>

* [Inicio rápido](/es/products/chdb/datastore/quickstart) - Instalación y uso básico
* [Migración desde Pandas](/es/products/chdb/guides/migration-from-pandas) - Guía de migración paso a paso

<div id="api-reference">
  ### Referencia de la API
</div>

* [Métodos de fábrica](/es/products/chdb/datastore/factory-methods) - Crear DataStore a partir de diversas fuentes
* [Construcción de consultas](/es/products/chdb/datastore/query-building) - Operaciones de consulta de estilo SQL
* [Compatibilidad con pandas](/es/products/chdb/datastore/pandas-compat) - Los 209 métodos compatibles con pandas
* [Accesores](/es/products/chdb/datastore/accessors) - Accesores de String, DateTime, Array, JSON, URL, IP y Geo
* [Agregación](/es/products/chdb/datastore/aggregation) - Funciones de agregación y de ventana
* [Operaciones de E/S](/es/products/chdb/datastore/io) - Lectura y escritura de datos

<div id="advanced-topics">
  ### Temas avanzados
</div>

* [Modelo de ejecución](/es/products/chdb/datastore/execution-model) - Evaluación diferida y almacenamiento en caché
* [Referencia de clases](/es/products/chdb/datastore/class-reference) - Referencia completa de la API

<div id="configuration-debugging">
  ### Configuración y depuración
</div>

* [Configuración](/es/products/chdb/configuration) - Todas las opciones de configuración
* [Modo de rendimiento](/es/products/chdb/configuration/performance-mode) - Modo centrado en SQL para un rendimiento máximo
* [Depuración](/es/products/chdb/debugging) - Explain, profiling y logging

<div id="pandas-user-guides">
  ### Guías de usuario de Pandas
</div>

* [Pandas Cookbook](/es/products/chdb/guides/pandas-cookbook) - Patrones comunes
* [Diferencias clave](/es/products/chdb/guides/pandas-differences) - Diferencias importantes respecto a pandas
* [Guía de rendimiento](/es/products/chdb/guides/pandas-performance) - Consejos de optimización
* [SQL para usuarios de Pandas](/es/products/chdb/guides/pandas-to-sql) - Comprender el SQL detrás de las operaciones de pandas

<div id="quick-example">
  ## Ejemplo rápido
</div>

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

# Leer datos de varias fuentes
ds = pd.read_csv("sales.csv")
# o: ds = pd.DataStore.uri("s3://bucket/sales.parquet")
# o: ds = pd.DataStore.from_mysql("mysql://user:pass@host/db/table")

# Operaciones familiares de pandas - optimizadas automáticamente a 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
)

# Ver el SQL generado
print(result.to_sql())

# Ejecutar y obtener resultados
df = result.to_df()  # Devuelve un DataFrame de pandas
```

<div id="next-steps">
  ## Siguientes pasos
</div>

* **¿Es la primera vez que usas DataStore?** Empieza con la [Guía de inicio rápido](/es/products/chdb/datastore/quickstart)
* **¿Vienes de pandas?** Lee la [Guía de migración](/es/products/chdb/guides/migration-from-pandas)
* **¿Quieres saber más?** Consulta la [Referencia de la API](/es/products/chdb/datastore/class-reference)
