Cube Core version 1.2 is the latest release to date. It includes features such as:
- Data access policies for access control.
- Hierarchies and folders in the data model.
- New features in Playground.
- Apache Pinot and Vertica as supported data sources.
- Performance optimizations in Cube Store and APIs.
This release has no breaking changes. You should be able to upgrade without any changes to your existing data models or configurations.
Data access policies
With data access policies, you can define member-level and row-level access control rules in data model files and assign them to user roles, allowing for an organized and maintainable approach to security.
Here is an example of how a data access policy is defined in a cube:
Watch this demo to see data access policies in action:
Read more in the announcement and check out the documentation.
Hierarchies and folders
With hierarchies, you can organize related dimensions and assign them to certain levels of granularity. With folders, you can group members of a view into logical folders to make it easier to navigate and understand the data model.
These entities can be leveraged by visualization tools that support them. Except for Playground, these are currently Cube Cloud-only integrations with Tableau, Microsoft Excel, and Microsoft Power BI.
Example hierarchy definition:
Example folder definition:
Once you've defined hierarchies and (or) folders in your data model, you can use Playground to explore them visually:
Read more in the announcement. Check the documentation: hierarchies, folders.
New in Playground
Except for the support for hierarchies and folders, Playground has got the support for custom time dimension granularities, boolean logical filters composition, and options to set limit/offset or request the count of all rows in the result set as if there's no limit.
Take a quick look at the improvements to Playground:
Oh, and you can now close all tabs at once!
New in data source support
Cube has got the support for a couple of new data sources: Apache Pinot and Vertica, both contributed by members of the Cube community.
We have also transitioned ClickHouse support to the official @clickhouse/client
package, which brought a number of improvements and optimizations.
Finally, DuckDB users can now specify extensions to be loaded via the CUBEJS_DB_DUCKDB_EXTENSIONS
environment variable.
New in configuration
The scheduled_refresh_time_zones
configuration option can now be implemented as a function that accepts a security context as an argument:
In multitenancy scenarios, this allows you to build pre-aggregations for different tenants in their respective time zones only. This can substantially reduce the number of pre-aggregation partitions that need to be built.
New in CLI
The deploy
command of the CLI tool now supports the --replace-env
flag. If you deploy with CLI, you can use this flag to upload and replace environment variables every time.
New in the client library
The JavaScript client library now supports the fillWithValue
pivot configuration option. It will use the provided value to fill the measure values for missing dates in the result set.
Performance optimizations
When Cube Store executes queries against pre-aggregations, the results need to be transformed into the format that the SQL API or the REST API expect. We have optimized this process by moving the transformation logic to the native code, written in Rust, and performing the transformation asynchronously, so that the Node.js event loop is not blocked.
This brings a tangible performance improvement to Cube deployments running heavy queries that include dozens of dimensions and measures. On average, this speeds up the transformation process by 40-50% or by hundreds of milliseconds per query (if it has from 50 to 100 members).
Before the optimization:
After the optimization:
What's next?
As this is a release without breaking changes, we encourage you to upgrade and give it a try. You can also do that for free in Cube Cloud.
We can't wait to hear your feedback and thoughts in the Slack community, both about the updates above and the features from the Cube Core public roadmap.
Enjoy the new features and happy Cube-ing!