As mentioned in my previous blog, "XOLAP - Virtual Cubes Against a Data Warehouse Part 1", I'll address the following in this installment:
- Completing the Time Hierarchy
- Developing the rest of the standard dimensions
- Developing a measures dimension
- Creating the cube schema
- Deploying the cube
- Querying the data
- Showing real time data updates with XOLAP
When we previously left off we had just finished creating new meta data elements within DimTime. The representation of the "Total Time" hierarchy is exhibited below. Create this hierarchy leveraging the steps used to create the "Total Sales Territory" in Part 1.
Leveraging the hierarchy depicted below, create the "Total Currency" hierarchy
Leveraging the hierarchy depicted below, create the "Measures" hierarchy
Leveraging the hierarchy depicted below, create the "Total Customer" hierarchy
To create the "Total Product" hierarchy, a meta data element, "EnglishProductSubcategoryName" needs to be copied from the DimProductSubCategory table to the DimProduct table.
This can be simply accomplished by right clicking on "EnglishProductSubcategoryName" element within the Metadata Navigator window within Essbase Studio and selecting "Copy".
Pasting this element is as equally simple, highlight the DimProduct table, right click and select Paste.
You are now ready to create the "Total Product" hierarchy as shown below.
Create the "Total Promotion" hierarchy as shown below
You are now ready to create the cube schema.
Access the "Cube Schema Wizard" hotlink from the Essbase Studio "Welcome Page."
The "Cube Schema Wizard" should be displayed as shown below.
Within the "Choose Measures and Hierarchies" dialog window specify a name for the cube schema and then select each of the newly created hierarchies from the left panel and move them to the appropriate panel on the right hand side.
After clicking "Next", the "Cube Schema Options" dialog box should be displayed.
Toggle on the "Create Essbase Model" radial button and provide a name for the model.
In this case I have named my model "XOLAP Adventure WorksModel."
After clicking "Next" the Cube Schema Model should be displayed as depicted below
You are now ready to deploy the cube to Essbase.
Access the "Cube Deployment Wizard" hotlink from the Essbase Studio "Welcome Page."
The "Essbase Server Information" dialog box should now be displayed.
Leverage the previously created withing Part 1 of this blog and select this connection name within the Essbase Server Connection drop down box.
Now specify and Essbase Application Name and Database name. These names are restricted to 8 characters and can not be currently used within your Essbase environment.
Ensure that only the "Build Outline" radial box is the only box toggled on at this point and then select the "Model Properties" button from the lower left of the dialog box.
The "View, edit, and save properties" should now be displayed.
With the "XOLAP Adventure WorksModel" highlighted, select the "General" tab and activate the "XOLAP Model" radial button.
With "Total Time" highlighted, select the "Info" tab and set the dimension type to "Time" and dimension storage to "Dense"
With "Measures" highlighted within the "Info" tab, ensures that measures is set to a dimension type to "Accounts" and dimension storage to "Dense"
Select "Close" and then "Finish"
The following image will be displayed while the cube is being deployed
When successfully completed, a notification of successful deployment will be presented.
Navigate to Oracle Essbase Administration Services and review the application and database just created. Your application should look much the image below:
Remember at this point, the outline is the only thing that has been built, no data has been loaded to the application, nor has an calculation been executed.
Leveraging the Hyperion Add-in, connect to the XOLAP database that you have just created, notice data is present and aggregated. Format your query as exhibited, focusing on the following members:
- Customer:Yang, Jon V
- Measure: Unit Price
- Sales Territory: Australia
- Time: Total Time
- Promotion: No Discount
- Currency: Australian Dollar
- Measures: Fenders, Helmets, Jerseys, Mountain Bikes, Tires and Tubes, Touring Bikes
Notice the Unit Price for the data intersection of Mountain Bikes (3399.99)
Now access the underlying relational database, I have leveraged Microsoft SQL Server Management Studio in this instance.
Open the table FactInternetSales and go to row 88, it should agree with the information depicted in the exhibit below:
Update the Unit Cost for row 88 from 3399.9900 to 999999.99 and commit this value to the database
Execute a retrieve against the spreadsheet set up just moments ago.
Notice the data has changed in the underlying relational repository and also through your ad hoc query tool.
While some restrictions do exist in structuring a XOLAP model, which were mentioned in Part 1 of this blog, the robustness of delivering an application of this nature is pretty self evident.
When asked previously by customers, "Can I do ad hoc, real time analysis against transactional data in my data warehouse?" I often struggled to provide an answer that really meet each of those criteria. Now with XOLAP a definitive approach can certainly be presented to the customer.