Feature Request: Union and Union All Functionality for Combining Multiple Cubes
- Dominant language
- Rust
- Stars
- 20.8k
- Forks
- 2.1k
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 181
Description
### Feature Request
**Summary**
Introduce a `union` and `union_all` key in the Cube configuration to allow for intuitive data blending across multiple cubes.
**Motivation**
Currently, combining data from multiple cubes requires custom query orchestration and application-layer code, which can be complex and time-consuming. By introducing a built-in `union` and `union_all` functionality, Cube can furthermore provide a more user-friendly approach to data blending, making it accessible to a wider range of users.
**Detailed Explanation**
The proposed feature would enable users to specify a list of cubes that should be combined using a new key in the Cube configuration file. Alongside this, users can define the dimensions that are common across these cubes, which are necessary for the union operation.
Here's an example of how the configuration might look:
```yaml
union_all:
- cube_list:
- SalesCube
- InventoryCube
- ShippingCube
union_dimensions:
- date
- product_id
```
In this configuration:
- `cube_list` contains the names of the cubes to be combined.
- `union_dimensions` lists the common dimensions to align the data from these cubes.
**Benefits**
- Simplifies the process of combining data from multiple cubes.
- Reduces the need for complex custom code in the application layer.
- Makes data blending more accessible to non-technical users.
**Considerations**
- The feature would need to handle the underlying data models and relationships between cubes carefully.
- Performance implications of combining large datasets should be taken into account.
**Potential Challenges**
- Ensuring the feature is flexible enough to handle various data modeling scenarios.
- Maintaining the performance and efficiency of data retrieval and analysis.
I believe this feature would be a valuable addition to Cube, streamlining the data blending process and enhancing the overall user experience. I look forward to the community's thoughts on this proposal.
Contributor guide
Assessment
This issue has not been assessed yet.