macrostack

Layer 3 · self-hosting reality check

What it actually takes to self-host ClickHouse

The docs say 4 GB. In practice you want 16 GB. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.

Usually reached from Snowflake alternatives, where ClickHouse is one of the picks.

Wondering whether you need to at all? Is Snowflake free? — what the free tier actually allows, and where the wall is.

RAM — documented minimum4 GB
RAM — what it really needs16 GB
CPU8 vCPU — it is genuinely CPU-hungry on scan-heavy queries
DiskRaw data ÷ 5 to ÷ 15 after compression. Compression here is exceptional and it changes the sizing maths.
Monthly cost$80–150/mo for a single node handling tens of billions of rows, against thousands on Snowflake for comparable workloads
Setup timeHalf a day for a single node; a real cluster is a project
How you install itofficial packages or container; single-node is legitimate far longer than people expect
Ongoing maintenanceModerate. Schema and ORDER BY decisions are close to permanent, merges need disk headroom, and upgrades want testing.
Where it stops scalingA single well-specified node handles volumes that surprise people — tens of billions of rows. Clustering is for availability and concurrency more often than raw size.

The thing that catches people out

The ORDER BY clause on a MergeTree table is the primary index, and it is effectively irreversible on a large table — changing it means rewriting the data. Get it wrong and queries that should take milliseconds take minutes. Decide your ORDER BY from your actual query patterns before loading anything, not after.

When not to self-host ClickHouse

Your workload is transactional. ClickHouse is an analytical database — updates and deletes are expensive and awkward by design. It is not a Postgres replacement.

Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.

Other Layer 3 self-hosting guides

Common questions

How much RAM does ClickHouse actually need?
16 GB in practice. The documented minimum is 4 GB, which is the figure at which the process starts rather than the figure at which it works under real use. 8 vCPU — it is genuinely CPU-hungry on scan-heavy queries alongside it.
What does self-hosting ClickHouse cost per month?
$80–150/mo for a single node handling tens of billions of rows, against thousands on Snowflake for comparable workloads This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for moderate. Schema and ORDER BY decisions are close to permanent, merges need disk headroom, and upgrades want testing.
How long does it take to set up ClickHouse?
Half a day for a single node; a real cluster is a project, via official packages or container; single-node is legitimate far longer than people expect.
When should I NOT self-host ClickHouse?
Your workload is transactional. ClickHouse is an analytical database — updates and deletes are expensive and awkward by design. It is not a Postgres replacement.
What is the most common mistake when self-hosting ClickHouse?
The ORDER BY clause on a MergeTree table is the primary index, and it is effectively irreversible on a large table — changing it means rewriting the data. Get it wrong and queries that should take milliseconds take minutes. Decide your ORDER BY from your actual query patterns before loading anything, not after.
The Macrostack brief

New swaps, worth your inbox.

A short, occasional email when we add a high-intent alternative or ship a new head-to-head. No spam, no selling your address — unsubscribe in one click.