Best practice to add a dimension to existing cubes (Board 12)

Options
Fabiano Martino
Fabiano Martino Customer
5 Up Votes First Comment First Anniversary
edited March 2022 in Platform
Hi,

I need to add a new dimension to some existing cubes.
These cubes have a dimension related to delivery customers and the new dimension is relative to invoiced customers.

Is there a best practice for this scenario?

I followed this steps:
- Entities creation (Invoiced customer, city, category, ...).
- Relationship creation for the new entities.
- Data reader for the relationship (SQL Server query).
- Changes to the cubes, adding the invoiced customer as a sparse dimension (the cubes were cleared by this operation).
- Data reader for the cubes (SQL Server query). I removed all the dimensions and the cubes in the data reader and the added back the cubes. The dimensions were automatically added.
- Running of the entire loading procedure (populating the new dimension, the updated cubes and other dimensions and cubes not related to the new dimension).

Is there a different/better procedure you suggest for the same result?

Thanks
Fabiano

------------------------------
Fabiano Martino
Senior Developer
A.F.I.S. G. CLERICI SPA
Italy
------------------------------
Tagged:

Accepted Answer

  • Helmut Heimann
    Helmut Heimann Employee
    March Badge of the Month February Badge of the Month Community Captain April Badge of the Month
    edited May 2022 Answer ✓
    Options
    Hi @Fabiano Martino,

    the steps needed to create the new entities with their relationships and populate them via DataReader will always have to be the way you described them.
    Any changes to a cube's structure will always clear the cube because the system would not be able to connect existing transactions to new dimensions, automatically.
    The cube's DataReader might react dubious if you delete all mappings and add the new ones - this might work or not; in your case, it did; good. I usually create a new DataReader for that purpose and change the nightly load procedure accordingly.
    When you've built up the new relationships and populated them you wouldn't need to load the master again when populating the cube, just make sure the master data will be loaded prior to the transactions in your nightly load.
    That said, no: there's no better way of performing that other than what you did.

    Kind regards
    Helmut

    ------------------------------
    Helmut Heimann
    Senior Consultant
    Board Community
    Germany
    ------------------------------
    -------------------------------------------