-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
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!