Essbase 11.1.2 New Features review
In my last post I gave a brief overview of some of the new features in EPM 11.1.2, specifically from an installation and environment point of view. Today I want to focus specifically on Essbase, and what is good, great and maybe unfortunate in the new release. This is by no means a comprehensive overview of all the new features, but rather my take on some of the more interesting aspects.
EPM security link – Essbase apparently does not store user details in the .SEC file, if running in EPM security mode. This means there is no need to synchronize security between Shared Services and Essbase any more. This is very good news, as this synchronization added an extra step which could be forgotten and meant security issues all the time.
Allocations on ASO cubes – You can now perform allocations on ASO cubes, previously this could only be done in BSO. One more reason to go ASO rather than BSO as a default? If that is not all, the next feature might convince you…
Custom Calculations on ASO – Basically this means you can now write calc scripts for ASO cubes. Not as fully featured yet as for BSO, for example you can only target level 0 cells, but a step in making ASO on par with BSO in terms of calculation capability. Will BSO eventually fall away…?
New @XWRITE function – the inverse of the @XREF function. During calculation you can write to data blocks in the same or other remote cubes (whereas @XREF pulls data from remote cubes). Very useful if you have distributed cube environment with data dependencies, as from a central calculation you can update all dependent cubes, rather than pulling data from calcs in each cube.
32 alias tables – Instead of 10 you can now have up to 32 alias tables. I guess this is good for some applications, I must be honest in all my years of using Essbase I have never used more than 6 alias tables in a single cube, and that was an extreme case.
IPv6 support – As all the other modules in EPM 11.1.2, Essbase also supports the new IPv6 internet protocol, which aims to allow many more addressable internet addresses.
OCI support – Essbase can now use OCI to connect directly to Oracle sources in load rules, rather than ODBC. It helps that Oracle is now the boss…
Monitor progress of data loads and dim builds – While data loads or dim builds are in progress, you can now query the progress, to get info such as which stage of the process is taking place, number of records processed and rejected, etc. This can be done if you kick off an asynchronous data load or dim build only. Very useful to track progress, something you previously couldn’t really do, short of continually refreshing the log file to get some idea of what is happening.
Error handling in Calc Scripts – Using the new @RETURN function you can exit a calc script with a custom error code based on results of an IF..THEN statement. This means you can add a lot more logic to error handling in calc scripts, and return meaningful codes.
MaxL Error Handling improved – You have an IfError in the MaXL Shell that can detect errors like syntax and no permission errors. You can therefore directly in the MaxL shell test for more complicated errors and exit with a return code, or continue processing. This should make error trapping and processing in MaxL scripts a little better than currently possible.
Export metadata to XML files – Another addition to the sorely lacking metadata export in Essbase has been added. You can now export metadata to an XML file, using a MaxL command (EXPORT OUTLINE). These XML files can then be used by other proceses where you need outline information, or to compare outlines. I assume at a later stage you will be able to import from these XML files?
Failover support – You could do failover for Essbase with High Availability Services, but they now made it possible through using Oracle Process Manager and Notification Server (OPMN). This offers comprehensive failoverand clustering support for Essbase.
This is some of the more important new features, there are more, if you want to read about these yourself you can access the EPM documentation at the following link:
How best to export Essbase outline information
Quite a few people have asked me recently how to export Essbase outline information from an existing Essbase cube. This might seem like a trivial exercise, but in reality is not.People want to export this information either to document outlines, or to make use of the Essbase metadata in other systems, so it is a valid request.
One reason why this export can be problematic is that Essbase does not store its metadata in a relational database, unlike some other OLAP systems. Instead the metadata is stored in a .OTL file which is not readable by text editors. The Essbase outline editor in Administration Services makes it very easy to view and maintain the outline, but for some or other reason Hyperion (and now Oracle) just never got around to including proper outline export functionality for Essbase.
There are a couple of ways to get outline data out of Essbase. The best approach really depends on exactly what information is required – do you need just the outline hierarchy with member names, or do you need extra information such as consolidation symbols, UDA’s and Attributes, formulas etc.
If you need just the outline hierarchies, I would recommend using the Essbase Excel add-in (or Smartview). Set the options to turn of navigating with no data and to drill to bottom level, put the dimension you want to export in the row dimension, and drill. You will now have all the members in hierarchical order. One issue is that the different levels are not placed in seperate columns, but all in one column with indents to indicate generations. If you want seperate columns, it is relatively easy to write an Excel formula which parses the number of open spaces and places each member in the right column.
If you need a more detailed outline export, the best way is to make use of a third-party tool, freely available, called the Essbase Outline Extractor (see URL below to download it). This tool has been around for a long time, and thankfully the people at Applied OLAP, who develops the brilliant Dodeca Essbase front-end, has taken ownership of this tool and keeps it up to date with the latest Essbase versions, which still making it available as a freeware download.
The Outline Extractor gives you the option to set exactly what you want to export, including items such as UDA’s, formulas, aliases etc., and then exports this to a text file. You can also automate this using a script file using command line functionality. You can get the Outline Extractor at the link below:
http://www.appliedolap.com/free-tools/outline-extractor
So until Oracle decides to include a proper outline extraction tool with Essbase, or makes the .OTL file readable (anyone heard of XML???), your best best is the third-party Outline Extractor, or doing something manual in Excel.
Intellient is the performance management and business intelligence company to connect with.
Why does every financial department need Financial Data Quality Management?
If I had a dollar for every time a finance professional asked me this question I’d be a very rich man! Luckily the answer is easy to explain since every organisation has the same problem with data, managing it productively and easily comes at a price and is not as simple as 1-2-3.
In general data quality is a must have. The value of consolidation, reporting, planning and analytical applications is eliminated if the data that comes in is “Bad Data”. Companies must avoid the garbage in garbage out trap by eliminating manual data handling wherever possible and providing error identification and notification along with a vehicle to investigate and correct errors. Any ETL or Integration tool can put data into a waiting application, but quality issues arise when there are problems with the data and errors need to be addressed. FDM helps companies deliver the best process for achieving data quality reporting by delivering:
I. Data Quality
· Mapping Validation- provides immediate mapping error identification and notification as well as a vehicle for quick and easy mapping correction.
· User Defined Data Quality Checking- applies rules and restrictions to the load file ensuring corporate receives the highest level of quality.
II. Data Accuracy
· Read any ledger report, file or even some ERPs in any format eliminating the need for manual data manipulation and data keying thus improving accuracy and shortening the data collection process.
· FDM delivers easy reconciliation from the ledger via dynamic drill-back to source, whether it’s a file, spreadsheet or ERP system.
III. Data Consistency
· FDM can provide visibility to mapping consistency across all locations.
· Drill into any target account and see every source account from every location.
IV. Audit Trail/Log and 100% Process Transparency
· FDM delivers a vehicle to investigate any material discrepancy with 100% transparency to the data translation and mapping and a log of all new, changed or deleted map entries giving finance the tools needed to find the needle in the haystack quickly and painlessly.
Process Improvements
Flexible GL importing – Because of FDM’s powerful importing capabilities, you can read in any source system or trial balance report that is printed to a file. Alternatively you may load spreadsheets or even connect to a growing list of ERP systems direct. FDM will simultaneously improve throughput and accuracy by reading your GL file in a pure format. Bottlenecks are reduced and hard IT costs are eliminated.
ERP Integration – As from 2009 FDM users can now also connect FDM direct to their ERP, including Oracle E-Business Suite GL, PeopleSoft GL and SAP Financials. This allows for adapter-based data transfer and mapping, with drill-back to source from the WorkSpace, Financial Reports and SmartView for Excel as standard.
Powerful Mapping – Power and flexibility to handle the most complex mapping rules such as ranges, globals, wildcards, conditional mapping and double sided wildcards. FDM allows end users to easily map new accounts on the fly eliminating bottlenecks and opportunities for errors.
Data Validation and Error Prevention– FDM is best practice for loading data that reduces bottlenecks in the closing process while eliminating chances for errors. FDM forces end-users to validate files prior to loading into the Hyperion target application.
Meta data Management– With the release of the FDM ERP Integration module FDM users may also load meta data from their source ERPs (Oracle E-Business Suite GL, PeopleSoft GL) to Financial Close and Planning applications.
Data Check Reports–Force end-users to view and pass data validation rules that corporate has enforced to improve the quality of data provided by the locations.
Supplemental Journal Entries and Multi-Period Budget Data Loading – FDM can read and interpret supplemental information or budget templates produced in Excel. IFRS Adjustments, PP&E Roll forwards, Headcount, and Multi-period Budget/Plan information can be loaded quickly and easily with the same audit trail accountability. Standard templates can be used month after month and load in seconds. All supplemental data is subject to process visibility and a complete audit trail.
External Auditor Time Savings- Initial data from auditors suggest FDM can eliminate multiple weeks of external auditing time due to electronic linkage of source trial balance data to Hyperion. Support for all auditing questions from end-users to administrators is stored centrally in FDM and is easily accessible with standard reports.
Flexible Acquisition Tool – FDM has flexibility and adaptability to change as your business changes. New requirements and new business rules can easily be accommodated. Acquisitions can be converted into Hyperion in hours rather than weeks. The scripting capabilities allow FDM to adapt to any changing requirements that may arise.
The elimination of manual manipulation, ease of use, audit trail, data validation, consistency of mapping, and 100% transparency achieved with FDM is necessary for companies to simultaneously shorten the close cycle and achieve data integrity.
If you’re not already using Financial Data Management to manage your Hyperion data, what are you waiting for?
Intellient is the performance management and business intelligence company to connect with.
How to make Essbase Aggregate Storage member formulas faster
Ever since the Aggregate Storage option in Essbase (hereafter referred to ASO for brevity (and my sanity) sake), I have been using it quite extensively. Except when really serious calculations are required, I find ASO cubes handles everything faster, from data loads to calculations and retrievals, I can build cubes with much wider dimensionality and more members, and it has a lot less optimization complexity than block storage.
However one drawback with ASO is that in some of the more complex ASO cubes I found that retrievals could be quite slow. This is because members with formulas are always handled as dynamically calculated in ASO, unlike BSO where you can specify a calculated member to be stored. Usually this is not a problem, but if you have a very large cube, and a relatively complex piece of MDX code as a member formula, and you do a large retrieval, performance can be quite bad.
Because ASO does not offer many option for optimization, I have usually found workarounds for these cases, either by making the formulas less complex, or using much more focused retrievals. However recently a colleague of mine alerted me to a MDX function which can, in the right cases, make these type of retrievals much, much faster. So thanks to Johan Hammes, all the credit for this goes to him for alerting me to his functionality.
So what am I talking about? Two functions in MDX called NONEMPTYMEMBER and NONEMPTYTUPLE. And yes, they do appear in the Essbase help files (look in the Technical Reference under MDX Optimization properties), so I must admit I broke my own rule about first consulting the manuals.
So how do they work? Basically you put them as the first line in a member formula (of course you can use them in MDX scripts as well, but in this post I will focus on member formulas). As an argument you specify either a single member or member list (for NONEMPTYMEMBER), or a cross-dimensional member specification (for NONEMPTYTUPLE). This basically acts as a filter, which checks the specified member or member combination, and if it is empty, it stops execution of the rest of the member formula. So is almost acts like an IF statement where you test a member and just do nothing if it is empty, however it seems to speed up things a lot more than using a IF. An example of how this function looks is as follows, assume all the quoted text is a member formula:
NONEMPTYMEMBER([Sales])
SUM(Children([Entity].CurrentMember),[Sales])
So if Sales is empty, the SUM is not executed.The challenge with these functions is to choose the right member(s) for the filter, but it could make a huge difference. In one case where this was used, a large retrieval which took 10 minutes now takes 2 minutes, with the only difference being the usage of the NONEMPTYMEMBER function.
Intellient is the performance management and business intelligence company to connect with.
How to best do YTD calculations in Essbase
As we all know, Essbase is unmatched when it comes to performing complex calculations. I sometimes think the problem when doing member formulas or calculation scripts is not so much whether Essbase can actually do some horrendously difficult calculation, but rather choosing one of the various ways Essbase can do the task.
One example of this is something conceptually extremely simple, namely doing YTD calculations in Essbase. Before I go any further, I have to state that the built-in dynamic time series functionality in Essbase has never really done it for me. I prefer to create specific YTD members in Essbase, as I find that makes the usage in reports and analysis much easier.
So if we focus on YTD members, the question now becomes where do we put them? As these are related to the time aspect of your cube, it seems logical to plonk them into the time dimension. This is the route some of my colleagues prefer, I however do not like this, as I prefer to minimize maintenance of formulas. Assuming you have Month as your most granular time dimension level, then if you put YTD members in your time dimension, you have to create 12 new members with a member formula for each of them. And assuming you don’t make use of a separate Year dimension, but have all years in one time dimension, then you have to create a duplicate of all your months, each with their own YTD formula.
This approach obviously does not lessen maintenance. What it does offer though are easier formulas, because you specifically write a formula for each month, so you know exactly the logic for that month. In essence you hard-code the YTD logic for each. This is something else I don’t like, anything leaning towards hard-coding in Essbase probably means you are missing a more elegant, simpler solution.
The approach I like to take with YTD is to create a new dimension, let’s call it Periodicity for arguments sake. Assume for this example that years and months are in 2 separate dimensions, as you will see this approach will work even if they are not. Also assume the input data is monthly, and Essbase needs to calculate the YTD values. Then the Periodicity dimension will have only 2 members, Monthly and YTD. Monthly will be the default input member and will be stored, while YTD will be a dynamically calculated member (it could be stored as well for query performance sake, but to prove this approach we will make it YTD for now). The Periodicity member itself will be Label Only. This means the new dimension has only one stored member, and therefore will not increase the size of the cube. In addition you probably want to make it a dense dimension, especially if Time is a dense dimension.
So the issue now becomes what should the formula for YTD be? Do we have to test for each month in an IF statement and hard-code the formula per month? Definitely not, remember hard-coding is preferably to be avoided. If possible the same formula should be used across all months, irrespective of where in the year.
Luckily Essbase has some fancy built-in formulas which will make this easy, in this case specifically @CURRMBRRANGE provides the magic key to do this easily, in conjunction with @SUMRANGE. Assuming the Time dimension is called Periods, the months are at level 0, and the year dimension is called Years, the formula is:
@SUMRANGE(“Monthly”,@CURRMBRRANGE(“Periods”,LEV,0,,0));
This will always calculate the sum of months starting with the first month in your time dimension, and ending with the current month being calculated. This works because of the startoffset and endoffset settings for @CURRMBRRANGE. The ” (null value) for startoffset means start the range at the first member in the list, and the ’0′ for endoffset means stop at the current member being calculated.
The main benefit of doing YTD in a separate dimension, apart from the easy maintenance of just one formula, is that it makes it extremely easy for an end user to switch between YTD and Monthly, or do a YTD vs Monthly comparison. The user does not need to select specific YTD month members, they only need to select YTD or Monthly from the Periodicity dimension.
What are my competitors using Essbase for (or: why do they know more faster)?
Essbase has a reputation of being an excellent platform for financial analytical applications, but not much else. In some part this perception is created by competitive vendors who benefits from pigeon-holing Essbase, so that their tools can rather be used. Also Hyperion were traditionally strong selling into finance departments, and neglected IT in the pure BI applications arena. While it is certainly true that certain types of financial uses hit the sweet spot for Essbase, it can definitely be used for a large number of other analytical applications beyond the financial arena.
Essbase offers a OLAP platform for the construction of basically any kind of analytical application. With the addition of aggregate storage functionality the possible uses for Essbase expanded exponentially. While very strong in complex calculations and financial-type functionality, Essbase suffered badly from multidimensional explosion if the number of dimensions or number of members in dimensions increased to very large numbers (more than 10 dimensions, more than million member dimensions). Aggregate storage addressed these issues and it is now possible to create cubes with large numbers of dimensions, and multi-million members in dimensions. All this while not loosing the intuitive and responsive end-user experience Essbase offers.
In this blog I would like to share some of the Essbase applications I have experience of beyond just pure finance. Hopefully this will provide a reference of other uses for Essbase to help people trying to sell Essbase, as well as people already using Essbase and thinking of ways to expand its usage. Note this is just a selection of some of the applications I have personal experience with, please feel free to comment on any other non-financial uses of Essbase you might have come across.
Telecommunications industry
- Customer usage analysis – a cube based on the call detail records (CDR’s) which allows analysis of subscriber usage by minute, region, package customer demographic. Helps to understand usage of packages and customer segments and plan for better focused products.
- Customer demographic analysis – analyze the customers by all demographic information, such as age, gender, income, region etc. Helps to understand the customer base and better target products.
- Customer profitability – understand which customer segments are the most profitable, and maybe more importantly which are not, and who to target for better structured packages.
- Network quality – a cube which get loaded with hourly raw data from base stations, and which then calculates a large number of key statistics. which allows for better analysis of the quality of the network, where problem areas are, and helps plan expansions an network reconfigurations.
Motor vehicle manufacturing industry
- Market share analysis – use publicly available data to build a cube which shows all car manufacturers market share, by all vehicle attributes. Helps to determine where strong and weak points are, and support marketing efforts.
- Car flow planning – plan the flow of vehicle construction from parts to vehicle stock yard, based on demand forecast. Handles complex issues like ensuring optimum stock levels, planning for enough raw parts to meet demand, and the flow tempo through each segment of vehicle construction.
- Sales analysis and planning – analyze the vehicle sales by region, dealer and vehicle type, as well as customer demographic, to better understand the market and plan distribution to the dealer network.
Banking industry
- Customer Profitability analysis – understand profitability per individual customer (in the millions, this is an aggregate storage cube) to see which offerings actually make money, and across which customer segments.
- Market Share analysis – use publicly available data from banking regulators to understand market share in a large number of banking instruments, such as loans, mortgages, deposits etc. Helps to quickly identify growth areas as well as areas with declining share, and to plan better products.
- Risk Scoring models – use Essbase to calculate the risk for corporate customers based on quantitative (financial statements) as well as qualitative (perception of the company, market strength) factors. Essbase calculates key ratios, scores, and risk ratings based on a complex set of rating business rules.
- Exposure analysis – understand the exposure the bank has across various instruments and clients, to help early identification of risks and better plan investment activity.
- Funds Transfer Pricing modeling – perform complex FTP modeling in Essbase, where the flow of cash within the bank based on complex rules is calculated.
- Cash flow forecasting – model cash flow on a daily basis based on surplus and shortfalls, using treasury rules to determine investment options and movements of cash.
Energy utility
- Demand forecasting – use Essbase to forecast energy production and usage demand based on various factors such as seasonality, historical usage, expected growth factors etc. Use as a basis for revenue planning, as well as production plans.
- Environmental analysis – understand the environmental impact of energy generation based on models in Essbase. Track emissions and pollution factors per generating unit over time, and serve as early warning system.
- Production/generation analysis – cube which houses production of energy per generating unit to serves as basis for dashboards used at board meetings to discuss generation issues and forecasts.
Insurance industry
- Broker performance – a cube which provides daily updates of each broker’s performance compared to their peer group, based on sales per product, region, demographic. Used as a basis for broker commission calculations, and to run broker competitions to award top-performing individuals.
- Customer profitability – understand profitability per customer and customer segment across all types of insurance products.
So as you can see, the usage of Essbase spans way beyond the pure financial reporting and analysis applications most companies use it for. If you would like details on any of the applications above feel free to contact me, details below.
To read more on Hyperion Essbase go to the following URLs:
http://www.intellient.co.za/live/content.php?Item_ID=1157
http://www.oracle.com/appserver/business-intelligence/essbase.html
Financial Data Integration made easy with Oracle Hyperion FDM
Finance organizations need to enhance the quality of internal controls and reporting processes. To meet these goals, you need a source-to-report view of financial data. Oracle Hyperion Financial Data Quality Management allows business analysts to develop standardized financial data management processes and validate data from any source system—all while reducing costs and complexity. Fully integrated with Oracle enterprise performance management, Oracle Hyperion FDM is the only enterprise-class system of its kind for managing the quality of financial data and drill-through to detail.
Specially designed source adapters make it easy to load data from any data file (text or spreadsheet), or connect and drill back directly to a variety of transaction systems, including
• Oracle E-Business Suite Financials
• PeopleSoft Financials
• SAP Financials
• Any ODBC data source
For more information go to www.oracle.com/epm, or view video demo’s at www.oracle.com/demos. Look for Record-to-Report (Consolidation) and Planning with Oracle E-Business Suite.
The dark art of Essbase optimization
I have been involved with Essbase in one way or another for the last 14 years. This involved doing Essbase development, implementations at clients in various industries, running implementation teams, project management, proof of concepts and sales demonstrations, product shootouts, support and quality control, in short just about anything you can do with Essbase. However I would say that easily half this time, if not more, was spent doing optimization of Essbase cubes.
I think one of the reasons Essbase optimization can be somewhat tricky, to put it mildly, is because Essbase cube performance is almost directly linked to the design of the cube, i.e. the dimensions, hierarchies and members in each dimension, stored vs. dynamic members, etc. This is unlike other (relational) systems where there are general technical items to check for optimization, which has nothing to do with the data in the system (except maybe for the amount of data). In Essbase the data dictates the cube structure, and the way the cube storage works in blocks and indexes, and therefore every cube is different and has different performance implications. Also Essbase is unique in that just increasing hardware specifications (specifically memory and CPU power), while causing some improvements as a matter of course, will not cause as dramatic performance improvement as changing the cube design to be optimal for the data set used.
This means that is can be difficult to apply the same process to optimize every Essbase cube you encounter. I think this is also why Essbase optimization is sometimes seen as something of a dark art, with mysterious figures cackling manically while tweaking dense and sparse settings randomly. While getting optimal performance per cube can certainly sometimes be more luck than anything else, in my experience with Essbase optimization there are certain common elements which should be checked first, and which will insure optimal performance in most cases. I will discuss some of these below, and please note this is applicable to block storage cubes, I will blog about ASO optimization in another post.
The Essbase optimization main items checklist (for block storage cubes)
- Block size
- Large block size means bigger chunks of data to be pulled into memory with each read, but might also mean more of the data you need is in memory IF your operations are done mainly in-block. Generally I prefer smaller block sizes, but there is not a specific guide. In the Essbase Admin Guide they say blocks should be between 1-100Kb in size, but nowadays with more memory on servers this can be larger. My experience is to make blocks below 50Kb but not less the 1-2Kb, but this is all dependent on the actual data density in the cube. Do not be afraid to experiment with dense and sparse settings to get to the optimal block size, I have done numerous cubes with just one dimension as dense (typically a large account dimension), and cubes where neither the account nor time dimension is dense. You will know you have good block size selection by looking at the next point, block density.
- Block density
- This gives an indication of the average percentage of each block which contains data. In general data is sparse, therefore a value over 1% is actually quite good. If your block density is over 5%, then your dense/sparse setting is generally spot-on. Look at this whenever you change dense and sparse settings in conjunction with block size to see if you settings are optimal. A large block with high density is OK, but large blocks with very low density (< 1%) not.
- Cache settings
- Never ever leave a cube with the default cache settings. Often a client complains about Essbase performance, and sure enough when I look at the cache settings it is the default settings. This is never enough (except for a very basic cube). Rule of thumb here is to see if you can get the entire index file into the cache, and make the data cache 3 times index cache, or at least some significant size. Also check your cube statistics to see the hit ratio on index and data cache, this gives an indication what % of time the data being searched is found in memory. For index cache this should be as close to 1 as possible, for data cache as high as possible.
- Outline dimension order
- Remember the hourglass principle. This means order the dimensions in your outline as follows – first put the largest (in number of members) dense dimension, then the next largest dense dimension, and continue until the smallest dense dimension. Now put the smallest sparse dimension, then next smallest, and continue until the largest sparse dimension. Because of the way the Essbase calculator works, this arrangement optimizes number of passes through a cube. A variation of this which also seems to work well is the hourglass on a stick, where you put all non-aggregating sparse dimensions (i.e. years,, scenario) beneath the largest sparse dimension.
- Commit Block settings
- This controls how often blocks in memory are written to disk while busy loading or calculating a cube. You want to minimize disk writes, as this takes up a lot of processing time, so set this to be quite high. The default setting is 3000 blocks, if your block size is relatively small (< 10KB) make this much higher, 20000 to 50000. This setting alone can cause dramatic performance improvements specifically on Calc All operations and cube loads.
- Use of FIX..ENDFIX in calc scripts
- One of the most misunderstood and common mistakes in calc scripts is the usage of FIX..ENDFIX. Always FIX first on sparse dimensions only, and then within this FIX again on dense members, or use dense members in IF statements within the FIX statements. The reason for this is that if you FIX only on sparse members first, it filters on just specific blocks, which is faster than trying to fix within blocks (i.e. dense members).
- Optimizing data loads
- The best technique to make large data loads faster is to have the optimal order of dimensions in your source file, and to sort this optimally. Do do this, order the fields in your source file (or SQL statement) by having as your first field your largest sparse dimension, your next field your next largest sparse dimension, and so on. So if you are using the hourglass dimension order, you data file should have dimensions listed from the bottom dimension upwards. Your dense dimensions should always be last, and if you have multiple data columns these should be dense dimension members. Then you should sort the data file in the same order, i.e. by largest sparse dimension, next largest sparse dimension, etc. This will cause blocks to be created and filled with data in sequence, making the data load faster and the cube less fragmented.
These are just the initial general optimization points which can cause huge performance improvements without too much effort, in a next post I will look at more advanced optimization techniques, but generally these ones should handle 70% of your optimization issues.
So what does Essbase stand for?
Introduction
Before I answer the titular question, maybe a brief introduction as to why I feel myself qualified to blog on Essbase and everything related to this product. I am an IT professional working in the BI field since 1992, and with Essbase specifically since 1995. In this time I have done it all, from being a lowly BI developer on Commander EIS, to running consulting teams and trying to sell BI software. My main focus area is still Essbase (can we still use the Hyperion name?), and all related technologies.
A brief history of Essbase
Essbase is the granddaddy of OLAP (On-Line Analytical Processing) databases. As was stated in a ComputerWorld article entitled “The Top 10 IT innovations of the last decade” written a couple of years ago, Essbase was recognized as the OLAP technology which put OLAP databases on the BI map. It was introduced to the market around 1993, and has been responsible for thousands of cubes and eons of man-hours in development since then.
So what is this OLAP thing?
Essbase is an OLAP technology. The term “OLAP” was first coined by E.F. Codd in 1993 who defined the 12 laws of OLAP . This defined an entire industry. The core principle of OLAP technologies is multidimensionality, and how to quickly answer multidimensional queries. Essbase is a multidimensional database, which creates a physical cube of data, unlike relational OLAP technologies which depend on a relational database.
Essbase stands for…
To come back to the original question, Essbase stands for Extended Spreadsheet Database. The idea was to simulate thousands of spreadsheets linked by multidimensional relationships in a easy-to-access database.
This blog is the first of ,hopefully, many more on the topic of Essbase, Hyperion, Enterprise Performance Management, and general BI subjects. Let me know if you want me to cover specific topics – what I cannot answer I am sure my Intellient colleagues will be able to handle.




