DEV Community

William Rodriguez
William Rodriguez

Posted on

Alimentando el motor OLAP: Ingesta masiva por lotes con ClickHouseBulkStep.

Alimentando el motor OLAP: Ingesta masiva por lotes con ClickHouseBulkStep.

ClickHouse es una bestia columnar, pero tratarlo como MySQL haciendo inserts fila a fila tumbará tu clúster. ClickHouseBulkStep encapsula la inserción masiva óptima en un paso reutilizable.

Así se utiliza ClickHouseBulkStep & OLAP Pipelines en un pipeline de producción con wpipe-steps:

from wpipe import Pipeline
from wpipe_steps.database import ClickHouseBulkStep

pipeline = Pipeline(pipeline_name="telemetry_ingest")

pipeline.set_steps([
    ClickHouseBulkStep.as_step(
        name="insert_telemetry_batch",
        host="clickhouse.production.internal",
        database="analytics",
        table="device_telemetry",
        data_key="telemetry_batch",
        response_key="clickhouse_status"
    )
])

sample_batch = [
    {"sensor_id": f"S-{i}", "temp": 24.5 + i, "timestamp": "2026-09-19 12:00:00"}
    for i in range(10000)
]

result = pipeline.run({"telemetry_batch": sample_batch})
print(f"Inserted {result['clickhouse_status']['count']} records successfully!")
Enter fullscreen mode Exit fullscreen mode

Por qué wpipe-steps marca la diferencia:

  • 196 pasos catalogados que cubren Redis, ClickHouse, MySQL, WAF, S3, Docker e IA local con HuggingFace.
  • Carga perezosa con arranques instantáneos en menos de 100ms.
  • Interfaz factory limpia y consistente con .as_step().

¡Visita el repositorio completo en GitHub!

Top comments (0)