Skip to content

Optimizing Cube.js Latency with ClickHouse for High-Concurrency Use Cases #9933

@CleverFool77

Description

@CleverFool77

Problem

Hi Cube.js Community, 👋

We're planning to use Cube.js with ClickHouse as our primary data warehouse, and we're very impressed with ClickHouse's low-latency and high-concurrency capabilities.

Our primary goal is to provide a fast analytical API for a real-time dashboard. Given that ClickHouse is already so performant, we want to ensure that introducing Cube.js doesn't add unnecessary latency. We're concerned about the overhead of the semantic layer.

My question is: what are the key architectural and configuration best practices for minimizing latency and ensuring Cube.js doesn't become a bottleneck when sitting on top of a highly concurrent and low-latency database like ClickHouse?

Specifically, we'd appreciate any insights on:

  • How to properly tune concurrency settings (CUBEJS_CONCURRENCY) to match ClickHouse's capabilities.
  • Strategies for designing pre-aggregations that maximize query performance without creating an unmanageable number of materialized views.
  • When is it best to use Cube Store for pre-aggregations versus using ClickHouse itself? As clickhouse also provides pre-aggregations and cache which is much faster.
  • Any other specific ClickHouse-related configurations within Cube.js that we should consider.

Thank you in advance for your help!

Metadata

Metadata

Assignees

Labels

questionThe issue is a question. Please use Stack Overflow for questions.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions