InterSystems IRIS BI: Getting Started with Selective Build
What is Selective Build?
Selective Build is a BI feature in InterSystems IRIS (introduced in version 2020.1). Selective Build allows you to build specific elements of your cube while keeping your cube online.
What is special about Selective Build?
Before getting into the details of Selective Build, a brief recap of the different phases during a regular cube build is important. Here are the phases in a regular cube build:
1) Delete existing data in cube
2) Populate cube with full set of data
3) Build all indices in the cube
Now that we are familiar with how a normal build works, we can understand the benefits of Selective Build. During a regular build, the cube must be offline since the first step is to delete the existing cube data and then populate the full cube again. This is not the case with Selective Build. Selective build takes only the specified cube elements offline and updates the data for these specific elements. This means that existing data is not deleted. Since existing data is not deleted, the cube does not need to be offline. The elements being built will be offline, which means if a user tries to query against these offline elements, they will see an error message.
When should this be used?
Selective Build is a great way to deploy updates to a cube model without needing to take the cube offline for extended periods of time. Depending on the size of the cube, it can take hours or even days to fully build the cube. Having the cube offline for an extended period of time to add a new dimension does not encourage frequent updates to the model.
How is it used?
In Architect, any modified elements will automatically be kept track of. When you try and build your cube from the UI, the dialog box will give you the option to use Selective Build by default. This default selection also has any modified elements automatically selected. If you prefer to build the entire cube by using a regular build, this option can be selected.
Build Cube API
A new parameter was added to the Build Cube API. This new parameter is described as follows from the documentation: "pFactList is a list of specific Property names in the cube's fact class. If pFactList is supplied, the build will only update the columns listed in that fact list. This list can have either comma-delimited or $LB format. The specific facts being updated will be individually marked as unavailable for queries and queries referencing dimensions based on those facts will throw an error on prepare."
I expect that the UI is used while actively developing modifications to a cube and the API is used while deploying changes to a different system.
To learn more about Selective Build, please see the documentation.