Día 05 de la serie técnica WClickHouse Open Source.
Jamás uses df.iterrows() para insertar datos en una base de datos analítica. WClickHouse insert_dataframe() carga DataFrames a velocidad de red.
Los Problemas Reales
- Científicos de datos usando df.iterrows() tardando 20 minutos en cargar datos
- Incompatibilidades de tipo entre float64/NaN de Pandas y Nullable de ClickHouse
- Crashes en Jupyter Notebooks al exportar datasets experimentales pesados
La Implementación
import pandas as pd
from wclickhouse import WClickHouse
# Real-world Pandas DataFrame from ETL or model training
df = pd.DataFrame({
"user_id": range(100000),
"feature_score": [0.85] * 100000,
"timestamp": pd.date_range("2026-01-01", periods=100000, freq="s")
})
db = WClickHouse(FeatureModel, db_config)
db.insert_dataframe(df) # Vectorized native ingestion!
Por qué esta arquitectura gana
- insert_dataframe(): Inserción en una sola línea usando backend vectorizado.
- Ingestión Sub-Segundo: Ingesta 100.000 filas de DataFrame en menos de 0,6 segundos.
- Alineación de Tipos: Mapea dtypes de Pandas al esquema de ClickHouse limpiamente.
Verificación y Estado
Probado y verificado contra instancias reales de ClickHouse con más de 95% de cobertura de tests. Desarrollado para Python 3.9 a 3.14 con Apache Arrow y Pydantic v2.
Top comments (0)