Cube.js vs. BigQuery BI Engine

Following the announcement of Cube Store, I was asked on Reddit how Cube.js and Cube Store compare to BigQuery BI Engine. That’s a great question, so I think I will re-post my answer here so other community members familiar with BigQuery BI Engine might have the chance to follow up!

First, I would say that it’s fairer to compare Cube.js + Cube Store with BigQuery BI Engine since Cube Store is a part of Cube.js. However, it’s just a subtle nuance. (I won’t also mention that

Second, I would say that BigQuery BI Engine and Cube.js might be used in the same scenarios, however, the first one is more a BigQuery-focused tool while the second one is more a general-purpose solution. The most prominent difference is that Cube.js works with any data source (and multiple data sources at once as well) while, obviously, BigQuery BI Engine works with BigQuery only. Also, Cube.js doesn’t have these limitations of BigQuery BI Engine (namely, the limit on the amount of data processed and the restriction on the types of queries being optimized). Also, Cube.js might be a more cost-effective solution since pre-aggregations are stored outside the source data, and queries won’t require fetching BigQuery (or any other data storage billed on the amount of data processed). And last but not the least, Cube.js provides an out-of-the-box API and a semantic layer (which is a fancy way to say that you’re able to query your data in a domain- or business-specific way rather than with lengthy ad-hoc SQL queries and also reuse the SQL behind these domain-specific entities).

However, if BigQuery is the only data source used, there’s no app being build on top of it (so an API is not required), and you’re planning to use ad-hoc queries for reporting or something like Looker for dashboards, and costs are not in question, BigQuery BI Engine will certainly be the right choice.

Hope this makes sense :slight_smile: