Kyvos supports creating and working with partially materialized or HOLAP cubes. A HOLAP cube is a hybrid cube that combines features of MOLAP and ROLAP cubes and allows you to keep some dimensions or measures non-materialized. See MOLAP, ROLAP, and HOLAP for the distinction between the different cube types.
When you use HOLAP cubes, and a query asks for a materialized dimension or measure it is delegated to Kyvos query engines but when a query asks for a non-materialized dimension or measure, it is delegated it to an external SQL engine (PRESTO, Spark, Hive, or Snowflake). To learn more about non-materialized or raw data, see Working with non-materialized or raw data cubes.
You can filter based on the Materialize property value to see all items that are set to Yes or No.
Consider using partially materialized cubes when:
- When some dimensions or measures have high cardinality and pre-aggregating the data is unlikely to improve performance
- All underlying data is based on a register file using Table or SQL
- If the source dataset uses transformations, they must be materialized.
(A cube can not have non-materialized dimension or measure columns if the source dataset uses any transformations.)
- You are not using MDX-enabled BI tools (such as MicroStrategy)
- You are not using Santry or Ranger external column level security tools
There are certain limitations of using a partially materialized cube:
- Browsing a HOLAP cube will not work with external tools that use MDX connectors (like, MicroStrategy) and such cubes are not listed.
- There may be a mismatch of data if the underlying data has changed since the cube was last built.
- You cannot browse MDX-based calculated measures created in the cube.
- A partition cannot be created on any level of a hierarchy of a dimension that is non-materialized. (This means the sliding window is not supported.)
- You can not add new materialized columns in between incremental builds.
- HOLAP-enabled browsing is only supported for a single file, star schemas, snowflake schemas, and multi fact schemas.
- Crosstab visualization cannot be viewed in worksheets built on a partially materialized cube.
- Due to the floating-point precision issue, the aggregations done by Kyvos may not match exactly with the aggregation done by PRESTO or Hive.
- FirstChild and LastChild semi-additive measures are not supported.
To create a partially materialized cube
- From the Toolbox, click Cubes.
- Click the Action menu ( ⋮ ) at the top of the Cubes column and choose Add Cube.
- Enter a name for the cube.
- Select a Relationship from the list and click Add.
- Use a Kyvos register file created using Table or SQL as the source.
- Don't use transformations in the source dataset unless they are materialized first.
- Do one of the following:
- Right-click to add dimensions or measures.
- Drag fields to the cube design worksheet to the areas for measures and dimensions. Use Ctrl+click to select multiple fields.
To learn more about each field type, refer to the other topics in this guide.
- Click the plus buttons in the Dimension or Measure columns to add additional dimensions or measures, or select candidate measures or dimensions from the candidate lists on the left.
- In the Properties pane, set Raw Data Querying to Enable.
- Select the desired dimension, or measure to not materialize, and set the Materialize property to No.
If you set the materialize property for a hierarchy level, the lower levels are automatically included.
- Click Save.
If you don't see the option Raw Data Querying in the Properties pane, you need to create a connection to the raw data. See Configuring the connection setting for raw data.