In my ongoing effort to clean up some of my past creations and make them available to anyone that wants to use them, I am releasing Hyperion Rejected Record Summary. RRS is a small Java library/command-line program that analyzes one or multiple rejected record files (from a Hyperion data load) and provides stats on them.
I have used something similar in the past as part of an automation process that summarized anything that didn’t load to a cube and emailed it to me for further analysis. That’s exactly what this does.
Further, while this can be used as-is on the command-line, it is also fashioned into a tight Java library with a clean API and no dependencies that can be embedded into your own programs or a servlet. You could even call this from ODI to summarize a reject data file as part of an automation process.
For example let’s say that you have the following data that doesn’t load:
\\ Member Ac.0170001 Not Found In Database 09 0170001 900 11 .00 \\ Member Ac.0170001 Not Found In Database 09 0170001 904 11 .00 \\ Member Ac.0170010 Not Found In Database 09 0170001 905 11 .00 \\ Member Ac.0170012 Not Found In Database 09 0170001 906 11 .00
Then in total you have 2 records rejected because of Ac.0170001 and 1 record rejected for each of Ac.0170010 and Ac.0170012. The rejected record summary/class will tell you that there were 4 total rejected records, 3 members causing this, that 50% of your records were rejected because of the top 1 most rejected record, and a host of other stats.
The summary class acts as a DSL (domain specific language) custom to Essbase that can analyze these stats and report them in a meaningful fashion. Additionally, not just files can be analyzed — anything you can get into a Reader or InputStream is fair game, in case you happen to store your data in something besides a file or pull it down via other means.
As always, this software is free and open source (Apache 2) and available on Github. See the RRS page for more info and a link.