Tag Archives: Oracle BI Suite EE
Exalytics X3-4 Now Available, 2TB RAM + SSD and Supports OBIEE 11.1.1.7
It’s been on the Oracle Tech Price list for a while now, but Oracle Exalytics In-Memory Machine X3-4 was officially launched this week, with headline new features of 2TB of RAM (up from 1TB in the earlier, X2-4 version), and 2.4TB of SSD flash disk. This new version has a higher price due to the additional RAM and SSD (Ed Roske gives a good explanation for the price increase, and your options if you bought the earlier version), so the old version is still available for purchase at the original price but most customers will no doubt go for the new, uprated version, because overall the cost of Exalytics hardware is only a small proportion of the overall hardware+software cost. So what’s in this new version, has the Exalytics software changed, and what’s the point of the SSD disk if it’s “in-memory”?
As you’re probably aware from earlier posts on Exalytics, the Exalytics software is just regular OBIEE, Essbase and TimesTen, but with optimisations for running on this in-memory platform. As such, it’s the new Patchset 3 for Exalytics 1.0 that gives you any new features, and this patchset also applies to people like us with the earlier release. So Exalytics Release 1 Patchset 3 primarily gives us OBIEE 11.1.1.7 (which is big news in itself), new drivers for SSD disks, and a bunch of new Exalytics admin and configuration utilities as detailed in this update to the product docs. OBIEE 11.1.1.7 is a major new release of the product and gives us an updated look and feel, new visualisations, SmartView and so on, and also an integrated install of Essbase though you’ll need to do a fresh OBIEE install to get this. Within the new scripts there’s also some interesting new “capacity on demand” features that allows the admin to turn-off, or turn-on, capacity within the server, but this is aimed at Oracle’s IaaS (Infrastructure as a Service) offering an not something you or I would do. Of course you can license and provision smaller segments of the Exalytics server through OVM, Enterprise Manager and sub-capacity licensing, but this looks like something that could be tweaked on a month-by-month basis as demand for capacity rises and falls.
As well as updates to OBIEE, there’s also new certifications for Endeca Information Discovery 3.0, Oracle BI Apps 11.1.1.7.1, EPM Suite 11.2.3 and Hyperion Planning 11.1.2.1, all of which also apply to the earlier, X2-4 version as well.
From a hardware perspective though, it’s the 2TB of RAM and the SSD disks that are the most exciting new features. With the RAM upgrade, this means you can typically take TimesTen database sizes up to and in excess of 1TB, given that you’ll need to allocate a similar amount of RAM for temp space, but it’s the SSD disks that are most interesting. Something we’re finding from customer engagements on Exalytics is that Essbase ASO storage, rather than TimesTen, is becoming the predominant way we’re storing detail-level sparse datasets when they get beyond a certain size, and having SSD disks available to store the ASO databases means their data retrieval times drops more or less to zero. This is particularly important when you consider that, even if you could somehow store all of the ASO database in-memory (using a RAM disk, for example), there’s actually more bandwidth between the SSD disks and the CPU than between RAM and CPU, so the more SSD the better even when there’s RAM to spare. More on this phenomenon at a later date, but as Ed Roske pointed out a while ago, this is a major plus point for Essbase users on Exalytics.
Full details on Oracle Exalytics In-Memory Machine X3-4 are on this Oracle data sheet, and you can read more about the platform in-general on our Rittman Mead Oracle Exalytics homepage (including details of our free Exalytics test-drives and PoCs) and on Robin and my articles on the Rittman Mead blog.
The Rittman Mead scripts github repository
Here at RittmanMead we’re big fans of working smarter, not harder. One of the ways we do this is not re-inventing the wheel. There’s only so many ways that products such as OBI and ODI can be implemented, and we’ve probably seen most of them. The corollary of this is that we have a large number of useful and reusable scripts that we use on a regular basis .
Another part of working smarter is the use of a good VCS (Version Control System). Stewart has already been preaching the good word over at his git and OBIEE series, and needless to say we use git for looking after our scripts too.
Today we’re opening up our scripts git repository, making several of our scripts available to the OBIEE and ODI community. You can find it on github here, or clone it directly using the URL in your git client, or from the commandline:
git clone git@github.com:RittmanMead/scripts.git
Obviously, we’re holding a few gems back, after all, we’ve all got to eat right? But we’d like to see community participation in the repository, so go ahead and use it, fork it and make improvements, add your own scripts, and submit a pull request to merge them back in to share with the community again. To keep track of what’s going on and when new scripts are added, you can watch it on github.
Boring disclaimer
Hopefully it goes without saying, all the content in the repository is provided without warranty, etc etc, don’t blame us if your OBIEE server spontaneously combusts or starts dancing on one leg. The scripts will have been tested and known to work (usually on Oracle Linux), but may need amending to work on your particular OS. If you can fix scripts to run on your OS, please go ahead and submit a pull request!
Also – the material is available to all, that’s why we’re making it public – but it would be good form if you go on to use the scripts to keep reference back to their origin and not rip them off as your own. Not that anyone would do that.
So what’s in the goodie bag?
A gold-plated OBIEE init.d script
It’s not quite gold-plated, but it certainly has had some polish compared to the usual scripts that I’ve found for this purpose to date.
The script will automagically run OBIEE at startup, shut it down when the server is shutdown, and gives you access to a status
command that probes the status of it to determine whether it’s up or not. It supports multiple installations of OBIEE on a server, and requires minimal configuration.
The difference between this script and others is that instead of just looking for a running service, or polling a log file for a particular string, it looks at the processes, the network ports, each of the opmn-managed processes, and even whether /analytics
is accessible.
The script also handles timeouts for the components, which is important when using it as part of a server shutdown routine. If a process takes too long (quite how long is customisable) shutting down, it will be killed so that the server shutdown doesn’t hang.
The configuration required is minimal; just the FMW_HOME
(where OBIEE is installed), and optionally where you want log files written and under which user to run OBIEE. If you haven’t already, you’ll want to configure boot.properties so that you’re not prompted for credentials each time you start/stop WebLogic.
You’ll find the script in obi/init.d/obiee with full details on how to set it up and use it in the associated README.md
pull_the_trigger.sh – An OBIEE sysadmin testing script
Put your OBIEE sysadmin skills to the test with this nifty little script. Set it up with your FMW_HOME
details (no peeking at the rest of the script!) and then run it. It will take a random action that breaks something on your OBIEE system, and it’s your job to figure out what.
Hopefully it’s not necessary to say, don’t run this on your Production OBIEE server!
Bonus Tip: Use service obiee status
enabled by the script above to make your life easier in diagnosing OBIEE problems!
Various WLST scripts
A hotchpotch of WLST scripts to make the OBIEE sysadmin’s life easier, including:
- Enable/disable BI Server caching
- Add users to the WLS LDAP directory
- Enable Usage Tracking
- Deploy an RPD
- Check the state of Application Deployments
Response files
Response files to use with silent installs and upgrades of OBIEE.
manage_rpd.pl
Last but no means least in this list is a script by Stewart Bryson. Find out more by following the forthcoming posts in his Git and OBIEE blog series, but I will say this, it looks very useful if you’re doing anything with MDS XML….
Accelerating Hadoop/Hive OBIEE Queries Using Exalytics and the Summary Advisor
A few weeks ago I blogged about the new Hadoop/Hive support in OBIEE 11.1.1.7, and how it enables users to query “big data” sources with no need to know Hadoop or MapReduce. As this feature is currently based around Apache Hive, one of its drawbacks is that it can be a bit slow, at least in terms of latency and initial response time. This is because each call to Hive spins up a Java VM and creates MapReduce jobs on the fly, whereas more recent implementations of SQL-like access over Hadoop (Apache Drill, Cloudera Impala etc) bypass MapReduce and use their own in-memory engines instead.
One workaround thats worth considering though if you’ve got access to an Exalytics Server is to use TimesTen for Exalytics, and the Summary Advisor, to cache aggregations from these Hadoop data sources into memory, giving you the lightning-fast response times you’re used to with Exalytics against this new data source. I’m presenting on OBIEE, Exalytics and Hadoop and next week’s ilOUG Tech Days event in Jerusalem, so I thought I’d knock-up a quick demo as a “proof of concept”.
In this example then, I’ve got an OBIEE 11.1.1.7 repository that’s connecting to a Hadoop source via HiveODBC. OBIEE’s support for Hive access is fairly primitive at this point, so I’m sourcing all the data for my business model from a single Hive table, and modelling it into a simple two-dimensional star schema and subject area, like this:
I can then run a series of queries against this subject area, to create some entries in the S_NQ_ACCT, S_NQ_DB_ACCT and S_NQ_SUMMARY_ADVISOR tables.
Note also the logical dimension I created in the BMM layer, which has levels for all customers, salesperson and customer. The Summary Advisor will need these to be in place in order to make recommendations based on measure aggregation by level.
Response time on queries such as the one above is typically around 20-30 seconds, which generally wouldn’t be acceptable to most users running queries against a BI dashboard. Taking a look at the query in the BI Server query log, I can see the Hive query that the BI Server is sending across to the Hadoop cluster.
select avg(T44678.age) as c1,
T44678.sales_pers as c2,
sum(T44678.age) as c3,
count(T44678.age) as c4
from
dwh_customer T44678
group by T44678.sales_pers
So let’s move over to the Exalytics Summary Advisor, which lets me focus on the Hive-related logical fact table sources for the aggregation recommendations, just like any other data source.
Running through the steps, I eventually end-up with a recommendation for a single aggregate, aggregating the various measures by the salesperson level in the logical dimension.
Running this through nqcmd, the Aggregate Persistence feature within the BI Server creates the TimesTen aggregate tables as expected.
Then, moving back to the Repository, I can see the new in-memory aggregates plugged-into the Hive-related business model.
And, running the query again and checking the query log file shows TimesTen for Exalytics being queried instead, and with data now being returned instantaneously.
select distinct T44969.Total_Age0000AF82 as c1,
T44969.Cust_Count0000AF88 as c2,
T44969.Avg_Age0000AF2C as c3,
T44963.sales_pers0000AF56 as c4
from
EXALYTICS.SA_Salespe0000AF78 T44963,
EXALYTICS.ag_1567321688 T44969
where ( T44963.sales_pers0000AF56 = T44969.sales_pers0000AF56 )
The other thing to bear in mind is that, if I’d been running Hadoop on Oracle’s Big Data Appliance connected to Exalytics via Infiniband, I’d have also benefited from the extra bandwidth between the two boxes, something that might also help with the aggregation-into-TimesTen part too. Not bad and a viable solution to the latency issue with Hive and OBIEE.
Patch OBIEE the quicker way – with OPatch napply
Since 2012, Oracle’s patching strategy for OBIEE has been Bundle Patches released approximately once a month. These bundle patches are usually cumulative ones, applied on top of the .0 version of the product. Patching is done through Oracle’s standard OPatch
tool, which manages the application of patches along with an inventory of them and rollback if necessary.
I’ve previously written about the overall patching process here. OPatch is part and parcel of an OBIEE sysadmin’s life, so I wanted to share this short article to show the quicker way to apply the PSUs. It uses a more direct way than the patch documentation describes, taking advantage of the napply
option of OPatch (documented here). By using this option OPatch
will apply all listed patches in one go, rather than one at a time. As well as this, we can use the silent
flag to stop OPatch
from prompting to apply each patch in turn.
- Download the necessary patches – for 11.1.1.7.1 this is 16569379 and 16556157. In a server environment you can use wget to download the patches as detailed here.
- Validate the checksums for the downloaded files, to make sure they didn’t get corrupted during download. Use the Digest link when downloading to view the checksums. For example, the Linux x86-64 checksums are :
p16556157_111170_Linux-x86-64.zip 2673750617 bytes MD5 D3DDDEC4CB189A53B2681BA6522A0035 p16569379_111170_Linux-x86-64.zip 93617 bytes MD5 2BC0E8B903A10311C5CBE6F0D4871E31
- Unzip the patches. Within the main patch (16556157) there are a series of further zip archives – unzip these too
- Put all the patch folders in a single folder, so it looks something like this:
- Take backups, as described in the patch documentation.
- Set your environment variables, setting
PATCH_FOLDER
to the folder you unzipped the patches to in step 4 above, andORACLE_HOME
to yourFMW_HOME/Oracle_BI1
folder- Windows:
set PATCH_FOLDER=Y:\installers\OBI\11.1.1.7\win-x86-64_11.1.1.7.1 set ORACLE_HOME=c:\oracle\middleware\Oracle_BI1 set JAVA_HOME=%ORACLE_HOME%\jdk set PATH=%ORACLE_HOME%\OPatch;%JAVA_HOME%\bin;%ORACLE_HOME\bin%;%PATH%
- Linux:
export PATCH_FOLDER=/mnt/hgfs/installers/OBI/11.1.1.7/linux-x86-64_11.1.1.7.1 export ORACLE_HOME=/home/oracle/obiee/Oracle_BI1 export JAVA_HOME=$ORACLE_HOME/jdk export PATH=$ORACLE_HOME/OPatch:$JAVA_HOME/bin:$ORACLE_HOME/bin:$PATH
- Windows:
- Shut down OPMN, the Managed Server and the Admin Server
- Apply all the patches in one go, with no prompting:
- Windows:
opatch napply -silent %PATCH_FOLDER% -id 16453010,16842070,16849017,16850553,16869578,16916026,16569379
- Linux:
opatch napply -silent $PATCH_FOLDER -id 16453010,16842070,16849017,16850553,16869578,16916026,16569379
- Windows:
- Validate that they’ve been applied – the following should list all seven patches plus the bugs they fix:
opatch lsinventory
- Per the instructions in the README.html for patch
16453010
for post-patch actions:- Windows:
del
%ORACLE_HOME%\bifoundation\web\catalogmanager\configuration\org.eclipse.osgi
copy %ORACLE_HOME%\clients\bipublisher\repository\Tools\BIPublisherDesktop*.exe %ORACLE_HOME%\..\user_projects\domains\bifoundation_domain\config\bipublisher\repository\Tools copy %ORACLE_HOME%\clients\bipublisher\repository\Admin\DataSource\msmdacc64.dll %ORACLE_HOME%\..\user_projects\domains\bifoundation_domain\config\bipublisher\repository\Admin\DataSource for /d /r %ORACLE_HOME%\..\user_projects\domains\bifoundation_domain\servers\bi_server1\tmp\_WL_user\bipublisher_11.1.1 %d in (jsp_servlet) do @if exist "%d" rd /s/q "%d"del
%ORACLE_HOME%\
bifoundation\web\catalogmanager\configuration\org.eclipse.equinox.app - Linux:
rm -rv $ORACLE_HOME/bifoundation/web/catalogmanager/configuration/org.eclipse.osgi rm -rv
$ORACLE_HOME/
bifoundation/web/catalogmanager/configuration/org.eclipse.equinox.app cp $ORACLE_HOME/clients/bipublisher/repository/Tools/BIPublisherDesktop*.exe $ORACLE_HOME/../user_projects/domains/bifoundation_domain/config/bipublisher/repository/Tools/ cp $ORACLE_HOME/clients/bipublisher/repository/Admin/DataSource/msmdacc64.dll $ORACLE_HOME/../user_projects/domains/bifoundation_domain/config/bipublisher/repository/Admin/DataSource rm -rfv $ORACLE_HOME/../user_projects/domains/bifoundation_domain/servers/bi_server1/tmp/_WL_user/bipublisher_11.1.1/*/jsp_servlet
(NB the
msmdacc64.dll
didn’t exist on either of my installations that I’ve tried this on) - Windows:
- Start up Admin Server, Managed Server, and OPMN. Login to OBIEE and check the new version:
- Don’t forget to check the README.html for patch 16453010 for full instructions on updating the client, customised skins, mapviewer config, etc.