Converting DataStore objects and InfoCubes into advanced DataStore objects
The DataStore object (advanced) has been available since Business Warehouse 7.4, SP8 (with SAP Note 2070577), and you are probably eager to use it for new data models and also for existing data flows. We plan to offer a conversion tool for this. But in the meantime, until this tool is available, I would like to explain how to convert existing DataStore objects and InfoCubes into advanced DataStore objects.
The idea is as follows: you take an existing DataStore object or InfoCube and model an advanced DataStore object as a copy with exactly the same InfoObjects, structure and properties. We offer a feature, which makes it easy to copy and convert the metadata. The DataStore object (advanced) can be created using existing InfoProviders as templates, which I will now describe in more detail.
Converting an existing DataStore object
Open the BW Modeling Tools in Eclipse and create a new DataStore object (advanced). In the Wizard, choose the DataStore object you want to copy under “Create from Template”.
If you would like to compare your existing DataStore object with the one you are going to create, then you can also open the DataStore object (classic) you want to copy in the Data Warehousing Workbench.
The modeling properties are automatically set according to the type of the existing DataStore object.
Groups ensure that the DataStore object (advanced) has a similar structure to your existing DataStore object. You will have the groups Key (for the InfoObjects of the semantic key), Data (for the InfoObjects of the data fields), and Key Figures (for the key figures, which were part of the data fields). Be aware that the InfoObjects of the semantic key are not marked as key fields of the DataStore object (advanced). The grouping of the DataStore object (advanced) is a semantic grouping, which can be expanded and also changed.
The navigation attributes are not defined at this level of modeling, as the DataStore object (advanced) is focused on the data persistency. To switch on navigation attributes, you need to define a CompositeProvider on top of the DataStore object (advanced). Here, you can define such query-related properties as navigation attributes. You can switch on the navigation attributes via the context menu on a CompositeProvider characteristic in the Output tab.
The following properties are automatically preserved:
- The “SID Generation” option is automatically set the same as in your existing DataStore object for all the InfoObjects. If you like, you can now adjust this, as in your DataStore object (advanced) this option can be set individually or each characteristic.
- If your existing DataStore object has indexes, these indexes will also be created for your DataStore object (advanced).
- If your existing DataStore object is write-optimized, and the property “allow duplicate records“ is not set, then an additional unique-index is created for your DataStore object (advanced), which contains all characteristics (minus the technical characteristics).
Converting an existing InfoCube
Now we do the same for an InfoCube. Open the BW Modeling Tools and create a new DataStore object (advanced). In the Wizard, choose the InfoCube you want to copy under “Create from Template”.
The modeling properties are automatically set according to your InfoCube type.
The “Activate/Compress” property means in this case a compression. However, you don’t need to compress data to report on it. It is possible to execute a query right after loading the data.
As we have seen with the conversion of a DataStore object, groups are used to model the dimensions.
The InfoProvider properties are not stored with the DataStore object (advanced) as these properties are related to queries. Such properties as read mode and cache mode of queries are now directly modeled in the query itself.
As we have seen before, navigation attributes are not switched on in the DataStore object but in the CompositeProvider on top of the DataStore object (advanced).
Converting a MultiProvider
If your DataStore object/InfoCube had a MultiProvider on top, then you can use a tool to convert this MultiProvider into a CompositeProvider – with the option to also copy the queries. The SAP Note 2080851 explains this procedure in detail. After the MultiProvider is converted, you need to exchange the InfoProviders the CompositeProvider is composed of with the new DataStore objects (advanced).
Some tips for converting the dataflow
Now that you have copied old InfoProviders into new DataStore objects (advanced), you need to consider your dataflow. I won’t go into every detail, but I would like to give you some tips.
In the Data Warehousing Workbench, you can first copy the transformation from your old InfoCube/DataStore object and enter the name of the new DataStore object (advanced) as a target or source. Then you can copy the relevant Data transfer process (DTP). In some cases, the DTP can’t be copied and you need to create a new DTP with the DataStore object (advanced) as a target.
This graphic shows you an example of the original data flow on the left and the new dataflow with its new InfoProviders on the right:
You can even leave out the 2nd level of DataStore objects according to the LSA++ architecture, if the InfoCube was only used to allow faster query access and has a 1:1 relationship to the 1st level DataStore object.
For process chains, the same processes are used as for the DataStore object (classic). Simply create a copy of the process chain, maintain the process chain variants, and use the newly created DataStore objects.
Now I have given you a few ideas on how to convert your existing InfoCubes/DataStore objects into DataStore objects (advanced), and hopefully, this will help you to get started!
Related blog post: The “advanced” DataStore Object – renovating BWs persistency layer