Serverless ClickHouse, in early preview

ClickHouse that sleeps when you do.

Connect with the client you already have. ClickHamlet starts your servers on the first query, splits reads from writes, and stops everything when you are done.

$ clickhouse client --host cloud.clickhamlet.com \
    --user acme --password ••••••
Warnings:
 * Tenant created with name: acme
 * Open your dashboard to keep this tenant:
   https://cloud.clickhamlet.com/dashboard/iRnD…

:) CREATE TABLE events (id UInt64, at DateTime)
   ENGINE = MergeTree ORDER BY id                 writer
:) INSERT INTO events
   SELECT number, now() FROM numbers(1000000)     writer
:) SELECT count() FROM events                     reader

1000000
How it works

One connection. Servers only while you use them.

A router in front of your tenant reads every query and sends it where it belongs. A controller starts the servers it needs and stops them once they are idle.

  1. 01

    Connect

    Point any ClickHouse client at cloud.clickhamlet.com with a name and a password. An unknown name becomes your tenant, protected by that password. No sign-up form.

  2. 02

    Query

    Your first query starts your backends. Writes, DDL and metadata go to the writer; reads go to a reader that mounts the same tables straight from storage.

  3. 03

    Walk away

    Backends that see no queries stop on their own. Writers drain merges and inserts first, so nothing is lost. The next query starts them again.

Features

Everything you like about ClickHouse, minus the servers.

Real ClickHouse

Your queries run on ClickHouse servers, unmodified, over the native protocol. The tools and drivers you already use keep working.

Scales to zero

Readers and writers stop after a few idle minutes. An idle database runs no servers at all.

Reads apart from writes

Heavy dashboards do not compete with ingestion: readers and the writer are separate servers, routed per query.

Shared storage, no copies

Readers attach the writer's tables from storage on demand. New data shows up in seconds, without replication.

A house of your own

Each tenant gets its own backends and its own storage. Tables can only live there, enforced by ClickHouse's own grants.

Your settings, your dashboard

Choose how long backends stay idle, keep a writer warm, or send reads to the writer. Changes apply within seconds.

Get started

Pick a name. Pick a password. Connect.

There is no form to fill in. The first connection with a new name creates your tenant, and the password you use becomes its password.

clickhouse client --host cloud.clickhamlet.com --user <name> --password <password>
  1. Install the client if you do not have it: curl https://clickhouse.com/ | sh
  2. Run the command above with a name and a password of your own.
  3. Open the dashboard link the client prints, within 2 days, to keep your tenant.
FAQ

Questions

Is it really ClickHouse?

Yes. ClickHamlet is a router in front of ordinary ClickHouse servers. It is built on ClickHouse's own code to parse your queries and speak its protocol, then relays each query to your backends untouched.

How long does the first query take?

A few seconds when your backends are stopped, while a server starts. After that, queries run at ClickHouse speed. If you need the writer always ready, keep it running from your dashboard.

What happens if I never open the dashboard link?

Every login shows your dashboard link. Opening it once claims the tenant. Tenants nobody claims within 2 days are deleted, with their data, and the name becomes free again.

What is not supported yet?

Each tenant has a single user, so users, roles and grants are managed for you. Temporary tables, transactions and SYSTEM statements are not available, and tables use the MergeTree family.

Is it ready for production?

ClickHamlet is in early preview. Try it, break it, and tell us what you need.