Blog Posts

ClickHouse Series, Part 6: Materialized Views & Operations

Pre-aggregation with materialized views, replication with ReplicatedMergeTree, sharding with Distributed tables, and production monitoring.

ClickHouse Series, Part 5: Query Optimization

Making ClickHouse queries faster — profiling with system.query_log, projections, query patterns, and what actually moves the needle.

ClickHouse Series, Part 4: Internals — Parts, Merges & Indexes

How ClickHouse actually stores data — parts, granules, the sparse primary index, data-skipping indexes, and the background merge process.

ClickHouse Series, Part 3: Data Ingestion

Getting data into ClickHouse efficiently — batch inserts, async inserts, the Kafka table engine, S3 integration, and ingestion best practices.

ClickHouse Series, Part 2: Schema Design

Choosing the right data types, ORDER BY key, partitioning strategy, and TTL — the decisions that determine query performance before a single query runs.

ClickHouse Series, Part 1: MergeTree Engines

The storage engine family at the heart of ClickHouse — MergeTree and its specialized variants for deduplication, aggregation, and updates.

ClickHouse Series, Part 0: Overview

What is ClickHouse, how does columnar storage work, and when should you use it? A roadmap for the series.