News for hackers. Stuff that matters.
Re:Clickhouse Local by atombender on Tuesday March 03, 2020 @04:32PM (#22478905)
Because it's one of the few mature, fast, scalable analytics-oriented databases that is also completely open source.

The closest open source thing that matches its feature set is Presto, but that one is quite different.

Apache Druid is supposed to be very mature, but also very difficult to set up and manage. I've not used it myself.

There's also Vespa, but I don't know how well it performs with large numbers of columns.

A lot of people use Elasticsearch for analytics. Being based on Lucene, it's kind of columnar, and it can perform very well indeed on aggregations.

InfluxDB may be good, but it's not fully open source.

Re:Clickhouse Local by peferron on Wednesday March 04, 2020 @03:02AM (#22481952)
> Apache Druid is supposed to be very mature, but also very difficult to set up and manage

I wouldn't be surprised if this inverted at large scale (say 30+ machines). Druid data servers are rebalanced automatically; if you're on AWS and decide to scale up by adding a new data server, it will automatically load its assigned subset of data from S3. If AWS kills one of your data servers, then other data servers will automatically load from S3 some of the data that server used to carry, in order to reach the desired replication factor again.

Last time I checked ClickHouse had no automatic rebalancing at all, which sounds horrendous unless you're running at very small scale or willing to have people babysit it. I haven't operated ClickHouse at large scale though, so if I'm wrong I'd be happy to hear how people manage ordinary tasks like scaling up and down, replacing dead instances, changing instance types to adjust CPU/mem/disk, etc... with let's say a 100 TB compressed dataset.

Another difference is that Druid can index all dimensions. So if you plan to run queries with filters that only match a small fraction of rows, then Druid can be faster than ClickHouse. Conversely, if your queries have filters that match many rows, then ClickHouse will be faster because it has higher raw scan speed. (At least that was the case about a year ago. Since then, Druid has added vectorized aggregation, which I haven't benchmarked, but I'd bet that ClickHouse is still faster at doing full table scans.)

IMO these 2 things are the main elements to think about when choosing between ClickHouse and Druid.

Re:Clickhouse Local by oddtodd on Wednesday March 04, 2020 @04:58PM (#22488601)
I have worked with Druid and ClickHouse extensively in the past year.

I do think rebalancing is a weak point for ClickHouse, although for our use case that would not be so much of an issue, and it feels like it is on the roadmap for ClickHouse this year, but we will see. And if you are on Kubernetes, some of that headache may be handled for you with the ClickHouse Kubernetes operator.

I will say, that Druid indexing comes at a heavy cost in hardware for ingestion.

We find ClickHouse can easily ingest at least 3x the rate of Druid on the same hardware, and since Druid is asymmetric in design, you then have to get even more hardware to handle the queries.

Even with the vectorized aggregation, ClickHouse is beating Druid for full table scans at least, especially high cardinality data. But the vectorized aggregation has some restrictions to get on the fast paths, so that may improve. as those are removed.

Overall, I find ClickHouse much easier to work with and manage compared to Druid. ymmv

Re:Clickhouse Local by wochiquan on Tuesday March 03, 2020 @09:23PM (#22480687)
I know a few companies that use Imply Cloud to set up and manage Druid. I linked it if you want to check it out. https://imply.io/product/imply-cloud
Re:Clickhouse Local by atombender on Wednesday March 04, 2020 @12:48AM (#22481495)
No pricing information. I doubt it's very affordable.
Re:Clickhouse Local by ddorian43 on Wednesday March 04, 2020 @03:49AM (#22482146)
Vespa is inverted-index (many extras inside). Actually their aggregations isn't as optimized as elasticsearch (depends on scenario). To do aggs, the fields must reside in-memory.
Re:Clickhouse Local by lflux on Tuesday March 03, 2020 @04:40PM (#22478966)
What about Greenplum or CitusDB?
Re:Clickhouse Local by atombender on Tuesday March 03, 2020 @05:59PM (#22479544)
CitusDB is not relevant here, I believe, as it still uses Postgres' table storage, so it's not columnar. It might be good for analytical workloads, but I very much doubt it will perform anywhere close to ClickHouse.

Greenplum: I've not used it, but it does support columnar tables, so maybe it's comparable.

Re:Clickhouse Local by justinsaccount on Tuesday March 03, 2020 @11:51PM (#22481297)
Re:Clickhouse Local by quod_2058 on Tuesday March 03, 2020 @04:58PM (#22479112)
Greenplum seems to like a way to throw more hardware at a problem. Queries are too slow with postgres? Shard your data across machines and distribute queries to speed things up by running in parallel. It's using scale as a means to compensate for low efficiency.

On the opposite side of the spectrum you have other open source projects like questDB that have full focus on core performance: constantly optimise to get as much as possible from a single processor core. You can't scale out (at least yet), but given how fast it is on single core, it will be pretty powerful if they chose to go this route.

Re:Clickhouse Local by atombender on Tuesday March 03, 2020 @05:56PM (#22479530)
Note that Greenplum supports column-oriented tables. I haven't used it myself, so I can't comment on whether it's slower than ClickHouse.