Feeding the OLAP beast: ClickHouse massive bulk ingestion steps.
ClickHouse is a columnar beast, but treating it like MySQL by inserting row-by-row will bring your cluster to its knees. ClickHouseBulkStep packages optimal bulk buffering into a reusable step.
Here is how you use ClickHouseBulkStep & OLAP Pipelines in a production pipeline with 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!")
Why developers love wpipe-steps:
- 196 cataloged steps covering Redis, ClickHouse, MySQL, WAF, S3, Docker, and local HuggingFace AI.
- Lazy-loading imports for instant sub-100ms startup times.
- Clean
.as_step()factory interface.
Check out the full repository on GitHub!
Top comments (1)