Why I created a blog

Its been many years since I first created this blog. It has remained true to Essbase and related information over those years. Hopefully it has answered questions and given you insight over those years. I will continue to provide my observations and comments on the ever changing world of EPM. Don't be surprised if the scope of the blog changes and brings in other Hyperion topics.


Tuesday, June 15, 2021

Load rule improvments in Essbse 21.2 (part 1 Dimension Builds)

 While others are touting the Federated Partitions as the best thing in the recent Essbase 21.2 patch, it should be noted that it is only applicable to OCI Cloud marketplace installations. While I think it is a worthwhile feature, I'm holding judgement until some enhancements are made to it. I'm sure I'll blog about it at some point.  To me, the best thing in the latest patch that is available to both Essbase independent and Essbase Marketplace is the improvements to the Rule editor. Don't get me wrong, There were things I really liked about the rules editor before. Index based load rules, not having to go to a separate screen to set properties, and more, but there things I did not like, for example, not being able to change the delimiter without starting over and only being able to preview data for flat files and datasources. Being so new, there is little written about it in the documentation, so you can use this blog as your introduction to the changes. 

We will start with Dimension build rules although the data connection changes are applicable to both Dimension and data load rules. (I won't repeat it when I discuss the data load changes)

To begin, when you create or open a dimension build rule, you now get a screen to select your source. I know you will tell me you got that before, but this is an expanded selection screen and more importantly if you skip it, you can still access data later. I'll get to that.  But with the new screen there is more to select. Of course you have to give the rule a name but that is the only required information

If you drop down the Source type, you will get a lot more options  

 

Based on what you select, the screen will change. For example I want to connect to a SQL Server DB, so I selected ODBC (DSN-less). When I do, the screen changes to the following:

 

It has a nice hint when you are on the Server input to show you the syntax you need for different sources. Note, you need to input the whole string including sqlserver  

I entered my connection information and the query I wanted to execute


 

I'm using a data source that will build Sample Basic. I would typically not do a select * and explicitly list the columns, but got lazy for the example.  I entered in the other pieces on information like the user, password and rows to preview. Note, the ID and password are not saved and if I needed to refresh the data, I had to reenter them every time.

When I previewed the data , I got:

If I did not like what I got, I could click to go back, I just clicked Proceed. 

This brought my sample data into the editor where I could do the typical things to set up the dimension build rule

There is a difference from before. If I select Source properties, I can go to the SQL tab and change my data source and refresh the data.

Note,as I said before the ID and password are not  saved, to refresh the data, I had to reenter them and kept forgetting to do so.  Also note, If you just click OK and not preview data it will save any changes you made, but not refresh the data on the screen.

I changed my query to add make the parents Dynamic calc (and specify the column names)

select
       [FAMILY]
      ,[FAMILY_ALIAS]
      ,[CONSOLIDATION]
      ,'X' as Data_Storage
      ,[SKU]
      ,[SKU_ALIAS]
 from ProductDim

I then clicked on preview data and the screen changed to 

If you compare the output to the older preview picture, you will notice it added the new column, but my last column is now gone. The editor did not automagically adjust the number of columns it shows. In order to get the last column back, I had to click on Filed 5 and then add a regular column

Once I did that, the column reappeared. 

For completeness, I went ahead and filled in the columns and verified the rule 


  

This post is probably too long already. I do another post on the changes to data load rules. Hopefully you have found this to be helpful...


Thursday, April 8, 2021

I sql you - Drill through Sql details

 Just a short post today. I was helping a fellow consultant yesterday who was having issues with a Drill Through not working in Essbase 21c Marketplace. If he selected a single member from the cube, he got his data back, but if he was at the top of the dimension (14K members) nothing returned. We knew we should only get back about 72 rows.  We tried a few things and some worked and some didn't. As a work around, I suggested two reports. The first one if you were within the dimension and the selection was smaller. The second ignored the dimension in the where if you were at the top of the dimension. We named the queries almost exactly the same thing so the users would think it was the same drill through. 

But that was not enough for me. I wanted to see what the query that failed was generating.  But where to find it? I know I had information on where the log was so I started looking though notes I keep. an there it was. I had to SSH (Well I got someone one to SSH )onto the Essbase server and pull the file 

 

/u01/config/domains/essbase_domain/servers/ess_server1/logs/essbase/platform.log

 

Looking though this, I could see all of the generated SQL.  I pulled the failing SQL and saw it created a massive in clause with all 14K members in it. I had the consultant run the SQL against SQL Server (The RDBMS he was going against) and it did not return anything.  He decided to play a little and move the members he was really interested in. So he moved them to the beginning of the in clause rather than near the end where they were. amazingly He got the data bask he needed. So it appears to be a limitation in SQL Server. The query does not fail, it just did not return anything. 

 

In the end, we used my work around, but he log really was handy to debug the issue