ClickHouse is trending.
The open source DBMS currently has over 36K GitHub stars and rising, and it seems like everybody is adopting it for real-time analytics use cases.
There's good reason for the hype. ClickHouse is arguably the fastest OLAP database in the world. Its column-oriented storage format and SQL engine make it tremendously effective as a true DBMS for handling large-scale analytics on streaming and event-driven data architectures.
But.
(There's always a but.)
ClickHouse is known for its complexity. With great power comes great responsibility, and some people simply don't want to be responsible for setting up and maintaining a ClickHouse cluster.
That doesn't mean you shouldn't use ClickHouse. You absolutely should, especially if you are trying to build scalable real-time, user-facing analytics over any kind of time series data.
But unless you intend to hunker down and learn the deep internals of this powerful but mercurial database, you probably want some help, likely in the form of a managed ClickHouse service.
And even if you can learn the ClickHouse deep magic, you still might want a managed service for no other reason than you don't want to maintain infra. That's a perfectly valid reason to choose a managed ClickHouse service over self-hosting.
If managed ClickHouse is what you're after, skip ahead to see some options and how they compare. If you're not convinced that a managed service is for you, keep reading.
Why choose managed ClickHouse over self-hosted ClickHouse?
For the same reason you choose "buy" over "build" in any other case: time and money. Building things takes time and costs money. You buy off the shelf to get the economies afforded by someone who has been there before you.
But let's dig a bit deeper into what you actually need to build and maintain for an effective self-hosted ClickHouse:
- High Availability. High Availability (HA) is critical for production databases. If a cluster fails, you need a backup, and you need to gracefully manage failover. To have a high-availability ClickHouse, you need at minimum 2 ClickHouse instances + a ZooKeeper implementation + a load balancer.
- Upgrades. ClickHouse is frequently upgraded (stable packages are released roughly every month, and long-term support (LTS) packages roughly twice a year). Upgrading the database unlocks new features and is required for security reasons, but it also introduces regressions.
When you upgrade a ClickHouse cluster, you have to consider all running queries, read and write paths, materialized views being populated, etc. This is very non-trivial. - Write/Read Services. ClickHouse is often used in fast-paced, high-scale data applications involving very high ingest throughput and high query concurrency demanding sub-second latency response times.
When using ClickHouse, you have to consider ancillary services to the "left and right" of the database. How will you handle streaming ingestion when ClickHouse prefers to batch writes? How will you expose the query engine to your applications?
These things take time to build and money to host. - Observability. Databases don't exist in a vacuum. They need to be monitored, and ClickHouse is no exception.
There's more here. ClickHouse is complex, the learning curve is steep, and it may take too long to fully harness its power, especially for smaller engineering teams.
Current options for Managed ClickHouse
Fortunately for those who don't want the headaches of scaling their own ClickHouse cluster, there are a growing number of managed ClickHouse options. You can find an exhaustive list further below, but three of the most popular managed ClickHouse products currently on the market are (in no particular order):
- ClickHouse Cloud
- Altinity
- Tinybird
Below you'll find a quick comparison of each of the three in terms of use cases, developer experience, cost, and critical features.
ClickHouse Cloud
The "official" managed ClickHouse, created by ClickHouse, Inc., the maintainers of the OSS ClickHouse project.
Highlights
- Available on AWS, GCP, and Azure
- Automated scaling on prescribed compute range
- Automated replication and backups
- Automatic service idling when inactive
- Low data storage costs backed by cloud-native architecture and object storage
- Interactive SQL Console on the Web UI
- Visualize any query result as a chart
- Terraform provider for automating infrastructure management
- Direct access to the ClickHouse database
- ClickPipes for managed ingestion from a handful of streaming sources
- Several clients for common languages to build your backend over ClickHouse
- SOC 2 Type II compliant
Cost
Pricing for ClickHouse Cloud is based on your chosen plan and compute size.
Development plans are pinned at 16GiB 2vCPU and range from $1 to $193 per month depending on storage ($35/TB compressed) and compute ($0.22/active hour).
Production Plans can include from 24 GiB 6vCPU to 3600GiB 960 vCPU compute. Pricing is based on storage (~$50/TB compressed) and compute ($0.75/compute unit-hr) with costs ranging from ~$500 per month to $100,000 depending on cloud, compute units, and storage.
Dedicated infrastructure is also available at customized prices.
You can check pricing for ClickHouse Cloud and calculate your price based on storage and compute here.
Developer Experience
ClickHouse Cloud is a classic "database-as-a-service", providing a clean interface to a hosted database solution. The developer experience demands a level of ClickHouse expertise, as most of the non-infrastructure database settings are not abstracted. Actions like creating, renaming, or dropping tables, populating materialized views, etc. require knowledge of ClickHouse's flavor of SQL.
ClickHouse Cloud also boasts a solid amount of integrations, both managed and supported through community development. The recent introduction of ClickPipes allows for streaming data ingestion from popular sources like Apache Kafka, Confluent, Postgres + Debezium CDC, and others without setting up additional infrastructure.
For developers keen on building an analytics API service on top of ClickHouse, ClickHouse Cloud recently launched query endpoints in beta. With this feature, you can create static HTTP endpoints from saved queries, however these don't benefit from the same performance characteristics as the underlying database.
Takeaways
ClickHouse Cloud is a flexible and performant way to host a ClickHouse database on managed infrastructure. It provides great tools for directly interfacing with the database itself, with some additional infrastructure features (ClickPipes, endpoints, etc.) that extend beyond the database itself.
Altinity
Altinity.Cloud provides managed ClickHouse deployments on both hosted cloud and VPC. In addition, Altinity offers ClickHouse consulting services and maintains several open source ClickHouse projects such as their Kubernetes Operator for ClickHouse.
Highlights
- Available on AWS, GCP, and Azure or via VPC on your own cloud
- 24/7 ClickHouse expert support services
- 100% open source ClickHouse - no forks or add-ons
- Dedicated Kubernetes environment for every account
- Choose any VM or storage type
- Scale compute capacity up/down and extend storage without downtime
- Add shards and replicas to running clusters
- Built-in availability and backups
- SOC 2 Type II certified
Cost
Unlike ClickHouse Cloud, Altinity does not charge on a usage-based model. Altinity.Cloud is priced based on allocated compute and storage (non-VPC) regardless of usage. Amongst these three, pricing from Altinity.Cloud is the most predictable, as it will only change based on allocation, not usage.
Pricing is based on storage ($220 - $374/TB per month) and allocated compute (instance type + number of clusters) based on activity.
For example, a development instance with 20% usage on a 16GiB 4 vCPU GCP cluster with 100 GB would cost about $110 per month( ~$75/month for compute, $22/month for storage, and ~$15/month for backups).
A production instance (100% active) on a 3-cluster m6i.8xlarge 32 vCPUs 128GB RAM instance in AWS us-west-2 with 1 TB of storage would cost about $8,500 per month (~$7,600 compute, ~$660 storage, ~$260 for backups).
You can get more info on Altinity.Cloud pricing from their pricing calculator.
Developer Experience
Of the three managed ClickHouses explored here, Altinity.Cloud will provide the most "raw" ClickHouse experience. Altinity is certainly for the ClickHouse enthusiast who wants to deeply understand the database and handle most database operations (with support, of course).
You'll get amazing support with dedicated response time SLAs; Altinity's support engineers are known for their ClickHouse expertise and 24/7 support services to help you manage your instance.
Altinity provides 100% open-source ClickHouse, hosted. There are no ancillary services or infrastructure to help manage ingestion, visualization, or application/backend development. This is a pure, hosted ClickHouse.
Takeaways
Altinity.Cloud is great for those who want to learn and own a ClickHouse database - either on managed infrastructure or in VPC - with support from some of the best ClickHouse practitioners in the world. It's not for fast-moving developers who want a ClickHouse abstraction; it's built for enterprise-level engineers who know - or want to commit to learning with support - how to manage this database at scale.
Tinybird
Unlike ClickHouse Cloud and Altinity.Cloud (among other managed ClickHouses) Tinybird isn't a traditional managed ClickHouse. It's not simply hosted storage + compute with a nice web UI for interacting with the underlying database client.
Rather, Tinybird is a developer data platform for building analytics on top of the open source ClickHouse. In addition to providing the things you'd expect from a managed database - hosting, auto-scaling, automatic upgrades, observability, high availability SLAs, etc. - Tinybird provides services to the "left and right" of the database to support data ingestion and application integration.
Perhaps the most well-known benefit of Tinybird is its "instant API" experience. You can instantly publish any SQL query as a dynamic and scalable REST Endpoint complete with OAS3.0 specs. Unlike ClickHouse Cloud's beta endpoints, Tinybird's API Endpoints have been an integral part of the platform since its first public beta, and are well-supported at scale with minimal latency. For those who want to avoid building a backend service on top of ClickHouse, Tinybird can provide a huge advantage.
Highlights
- Same database performance as ClickHouse Cloud and Altinity
- Managed data source connectors for Kafka, BigQuery, Snowflake, S3, DynamoDB, etc.
- A managed HTTP streaming endpoint
- Managed write service for streaming ingestion
- Managed import/export/transform job queues
- A notebook-style query interface to break up complex queries into manageable nodes
- A managed API service
- Slack support community
- Static access tokens for resource management
- Signed JWTs for API Endpoints with customizable scopes and rate limits
- Single-click workflow to publish SQL queries as scalable REST Endpoints with automatically generated OpenAPI specs and dynamic query parameters.
- A built-in charting library
- Automatically generated observability tables that log every write, read, and job
- A plain text file format to define data projects as code
- A full-featured CLI and git integration to manage data projects in production with CI/CD
- Workspaces to group resources and enable role-based collaboration
- SOC 2 Type II Compliant
- BYOC Waitlist
Cost
Tinybird has a "free forever" plan, with nearly full-featured access to the service with 10 GB of included storage (compressed) and 1,000 daily requests to published API Endpoints included.
Tinybird's Pro Plan is priced based purely on usage. Rather than selecting desired compute sizes, you simply pay $0.34/GB (compressed) per month and $0.07/GB of processed data. The infrastructure scales transparently to meet demand.
Tinybird offers Enterprise plans with volume discounts, infrastructure-based credits, optional dedicated infrastructure, and support/availability SLAs.
More info is available on Tinybird's public pricing page and billing docs.
Developer Experience
Of all the managed services for ClickHouse, Tinybird provides the highest level of abstraction designed to reduce developer friction.
It exposes certain ClickHouse features, like the SQL language and the definition of table schemas, but it does not provide direct access to the underlying ClickHouse database. For those who want a pure ClickHouse experience, this may be a turnoff. But it also means that it's much harder to brick your database with Tinybird.
Tinybird is well known for its incredible developer experience. The core Tinybird experience - from ingesting data to integrating a real-time API into your production app, can be accomplished in just a few minutes.
For those who want access to the performance of ClickHouse without having to learn how to manage the database itself, Tinybird is a boon. There's still some need to learn elements of ClickHouse, for example its SQL syntax and how materialized views work on the database, but most of the database management is abstracted into UI, CLI, and API.
Perhaps the biggest differentiator for Tinybird in its developer experience is the services it provides outside of the database, namely API hosting, managed job queues, its HTTP streaming endpoint, managed ingestion connectors and infrastructure, and its git integration for automated CI/CD workflows.
These features remove the burden of setting up additional infrastructure on top of the database. This results in a great serverless experience for those who want a scalable analytics backend without worrying about infrastructure, compute sizes, etc.
Takeaways
Put simply, Tinybird is for those who want the performance of ClickHouse without having to learn and scale another database. It's made for developers who want to ship use cases that benefit from ClickHouse's speed without needing to spin up the ingestion pipelines, the database cluster, and the backend to support an analytics API.
You can learn more about the distinctions between Tinybird and ClickHouse here.
A list of managed ClickHouse services
Last updated August 2024
- Tinybird
- ClickHouse Cloud
- Altinity
- DoubleCloud ClickHouse as a Service
- Aiven Managed ClickHouse
- Yandex Cloud Managed Service for ClickHouse
- Elestio Managed ClickHouse
- Nebius ClickHouse Cluster
- Propel Data
How to choose a managed ClickHouse service
Choosing the right managed ClickHouse depends on your appetite for learning ClickHouse and how much abstraction you want. Every managed ClickHouse mentioned here will provide a comparable level of performance when properly configured. The difference will be in the features provided, the pricing structure, and the level of abstraction on top of the database.
Feature | ClickHouse | Altinity | Tinybird |
---|---|---|---|
Multi-cloud availability | ✔ | ✔ | ✔ |
Bring Your Own Cloud | Waitilist | ✔ | Waitlist |
Usage-based Pricing | ✔ | Limited | ✔ |
Infrastructure-based Pricing | ✔ | ✔ | ✔ |
Free Trial | 30 days | 30 days | Unlimited |
Self-Service Startup | ✔ | X | ✔ |
High-Availability | ✔ | ✔ | ✔ |
Automatic Backups | ✔ | ✔ | ✔ |
Automatic Database Upgrades | ✔ | X | ✔ |
Collaborative Workspaces | X | X | ✔ |
IP White/Blacklisting | ✔ | ✔ | X |
Managed Streaming Connectors | ✔ | Limited | ✔ |
Managed Batch Connectors | X | X | ✔ |
Web UI and SQL Console | ✔ | ✔ | ✔ |
CLI | X | X | ✔ |
API | ✔ | ✔ | ✔ |
Connect to ClickHouse Client | ✔ | ✔ | X |
Managed HTTP Streaming | X | X | ✔ |
Managed Import/Export Queues | X | X | ✔ |
Terraform Provider | ✔ | ✔ | X |
Hosted API Endpoints | Beta | X | ✔ |
Endpoint Token Management | Beta | X | ✔ |
Support for Custom JWTs | X | X | ✔ |
Native Charting Library | X | X | ✔ |
Git integration | X | X | ✔ |
SOC 2 Type II Certified | ✔ | ✔ | ✔ |
Services such as Altinity.Cloud provide a very pure ClickHouse experience on hosted infrastructure. Some value this flexibility and are willing to spend time understanding the database itself.
ClickHouse Cloud can provide a nice middle ground for developers who want slightly more abstraction but still want full access to the underlying database. ClickHouse Cloud is great - for example - in conjunction with business intelligence tools that can directly access the database client and run queries for visualization. But, if your goal is to build an app backend on top of ClickHouse, you'll still have to manage that yourself.
Tinybird is for developers who want to ship user-facing analytics features to production, faster. It comes with a higher level of abstraction that limits direct database access, but in doing so it reduces speed to market when building on top of ClickHouse. Tinybird offers additional infrastructure and services that other managed ClickHouse options do not, extending the functionality beyond the database while still harnessing ClickHouse's performance.
What you get from a managed DBMS
Query Language + Engine
Tinybird is powered by ClickHouse, and uses ClickHouse SQL as its query language
Storage Format
Tinybird uses a columnar storage format for fast filters and aggregates in real-time
Database Upgrades
Tinybird automatically performs database upgrades as new ClickHouse versions are released
Hosted Storage and Compute
Tinybird boasts great performance out of the box, and scales to manage demand
High Availability
Tinybird maintains 99.9%+ uptime across all shared infra, even more on dedicated clusters
Multi-Cloud Deployments
Tinybird is available on AWS, GCP, and Azure
Collaborative Workspaces
Invite team members to build real-time data products with role-based access policies
Single-Click API Generation
Publish any SQL query as a scalable, hosted, dynamic REST API
Custom JWTs
Use custom, hashed JWTs to control access to APIs, with built-in rate limiting and row-level security
API Hosting
Instand backend. Tinybird hosts and scales your analytics API.
Templating Functions
Augment your SQL with advanced logic, custom error messages, and dynamic query params.
API Documentation
Automatically-generated OpenAPI specs for your published endpoints
Native Charts Library
Build interactive visuals with auto-generated snippets for React or iframe
Token Management
Control access to resources with support for row-level security
HTTP Streaming Endpoint
Use the Events API to stream 1,000+ EPS to Tinybird with a simple POST request
Managed Data Warehouse Connectors
Integrate with BigQuery and Snowflake using native, managed connectors
Ingestion Load Balancing
Tinybird handles write throughout so you don't have to worry about bursty or unstable traffic
Git Integration
Automate deployments with CI/CD and deploy to prod with confidence
Version Control
Easily manage breaking and non-breaking changes in code using CI/CD
CLI
Interact with Tinybird via UI, API, or CLI. It's your environment, work how you want
Managed Kafka Consumer
Instantly connect Kafka topics and write them to your database with zero extra code
Managed Data Sinks
Send the results of any query to Amazon S3 or Kafka on demand or on a schedule
Data Branching
Need to test? Deploy a branch of data to a test environment
Observability Logs
Free queries on service tables plus built-in observability charts
What you also get from Tinybird
To get started with Tinybird, you can sign up for free and start building.