<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rittman Mead Consulting</title>
	<atom:link href="http://www.rittmanmead.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rittmanmead.com</link>
	<description>Delivering Oracle Business Intelligence</description>
	<lastBuildDate>Sun, 29 Jan 2012 15:30:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Interview with Kevin McGinley, BI Content Lead for Kscope 12</title>
		<link>http://www.rittmanmead.com/2012/01/kevin-mcginley-kscope12/</link>
		<comments>http://www.rittmanmead.com/2012/01/kevin-mcginley-kscope12/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 15:13:53 +0000</pubDate>
		<dc:creator>Stewart Bryson</dc:creator>
				<category><![CDATA[BI (General)]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[User Groups & Conferences]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=10104</guid>
		<description><![CDATA[Recently, I sat down (virtually) with Kevin McGinley of Accenture to discuss the upcoming ODTUG Kscope 12. I was on the content selection committee, and immediately recognized how lucky ODTUG was to have Kevin coordinating this process. We had tough choices to make around content &#8212; this is always the case, as I&#8217;ve participated in [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://odtug.files.wordpress.com/2012/01/kevin_206x211.jpg?w=144&amp;h=148" alt="" width="144" height="147" /></p>
<p>Recently, I sat down (virtually) with Kevin McGinley of Accenture to discuss the upcoming ODTUG Kscope 12. I was on the content selection committee, and immediately recognized how lucky ODTUG was to have Kevin coordinating this process. We had tough choices to make around content &#8212; this is always the case, as I&#8217;ve participated in this capacity before in the past. But Kevin always took us in the right direction, and after the process was over, I knew I wanted to have a discussion with him on the blog so our readers could see what awaits them at Kscope 12.</p>
<p>Kevin recently <a title="Looking forward to BI at Kscope 12!" href="http://odtug.wordpress.com/2012/01/26/looking-forward-to-bi-at-kscope-12/" target="_blank">blogged about Kscope 12 on the ODTUG Blog</a>, so perhaps that is a nice introduction to our interview here. I&#8217;d like to thank Kevin for taking a little time to do this interview, and I&#8217;d also like to thank Accenture for allowing him to appear here.</p>
<p><strong>[Stewart Bryson]</strong> This is only your second Kscope, but already you are a winner of the Editor&#8217;s Choice award for your whitepaper at Kscope 11, and now, are the BI content lead for Kscope 12. What do you think it is about ODTUG and Kscope that you have connected with?</p>
<p><strong>[<strong>Kevin </strong>McGinley] </strong>I was amazed by three things at Kscope 11.  First, the ODTUG community is a very warm, welcoming community of people who were very easy to engage with, both on a professional and personal level.  Second, I was pleased with the type of content presented at Kscope versus a larger conference like Open World.  The sessions feel very real, the presenters are very approachable, and the level of discussion/interaction is much higher.  Lastly, I was very impressed with the level of organization at Kscope.  The conference flowed very smoothly, there were a lot of interesting activities outside the core sessions, and the entertainment was top-notch.</p>
<p><strong>[Stewart Bryson] </strong>For those folks who have never attended Kscope before, how would you describe the event, perhaps drawing comparisons or differences with other conferences?</p>
<p><strong><strong>[<strong>Kevin </strong>McGinley]</strong> </strong>As I alluded to above, Kscope is much more communal than a larger conference like Open World.  Open World is a mad dash against 40,000+ strangers to get from place to place.  You are exhausted by the end of the week, and the practical knowledge you take away can be limited.  Kscope is a more manageable pace, the practical knowledge you gain from the sessions is much higher, and there is greater emphasis on interaction and discussion.</p>
<p><strong>[Stewart Bryson] </strong>Thinking specifically about the BI Stream, what would you say to Kscope Alumni about the BI Stream this year that might encourage them to give the conference another try?</p>
<p><strong><strong><strong>[<strong>Kevin </strong>McGinley]</strong></strong> </strong>I would say two things to this.  First, BI keeps growing at Kscope – we have about 50% more sessions than we did last year!  This is great because you get to offer more variety in the content and you also get to balance the “intro” audiences against the “technical” audiences – satisfying both.  Second, Kscope has a tremendous EPM presence – quite possibly the biggest EPM conference around – and with BI and EPM converging the way they are, this offers attendees a tremendous opportunity to start looking at how to maximize their Oracle investments in these two areas and expand the value they provide to their businesses.</p>
<p><strong>[Stewart Bryson] </strong>What can you tell us about the content selection process? Did you have a particular focus or goal in mind when selecting and scheduling the presentations?</p>
<p><strong><strong><strong>[<strong>Kevin </strong>McGinley]</strong></strong> </strong>Because OBIEE 11g was introduced before Kscope 11, it had a very strong presence that year due to the sheer magnitude of the release.  It was necessary to insure that the ODTUG community was well informed about OBIEE 11g.  Now that OBIEE 11g has settled in the marketplace, we can explore/return to other areas like the packaged BI Applications, data integration with ODI and Golden Gate, EPM integration, more BI Publisher, and the recently announced Exalytics.  We tried to make sure we still covered relevant areas of OBIEE, but left room to cover more of the Oracle offerings around OBIEE, since it’s rarely used by itself in a vacuum.</p>
<p><strong>[Stewart Bryson] </strong>Any particular BI sessions that you are looking forward to?</p>
<p><strong><strong><strong>[<strong>Kevin </strong>McGinley]</strong></strong> </strong>I see what you’re trying to do here, Stewart – you’re looking for me to plug your two presentations! In all seriousness, there are a lot of great sessions that I’m excited about.  I also love that we have a great balance between customer speakers, boutique consulting companies, large consulting companies, independents, and Oracle ACEs.  I think that’s important.  To answer your question, though, I’m really excited to hear from customers like JC Penny, Eaton Vance, General Dynamics, and Clark Construction covering topics like OBI/EPM integration, rolling-out mobility to executives, and project testing strategies.</p>
<p><strong>[Stewart Bryson] </strong>Being involved with content selection can be very time-consuming. How supportive has Accenture been with your dedication to Kscope?</p>
<p><strong><strong><strong>[<strong>Kevin </strong>McGinley] </strong></strong></strong>Accenture has been great.  I think no matter where you work, you’re often pretty busy, so it helps to have an employer who is supportive with the extra time required to make sure Kscope is a great experience for everyone.  Accenture really recognizes the value of a smaller, more intimate conference like Kscope – we host a similar conference for our Oracle customers – and encourages its employees to engage in the industry community where possible.</p>
<p><strong>[Stewart Bryson] </strong>Personally, I think Kscope provides a great opportunity to step outside my usual focus on BI and see some sessions in other streams. Last year I attended sessions on Exadata, PL/SQL development, and APEX. Has anything outside of the BI stream caught your eye?</p>
<p><strong><strong><strong>[<strong>Kevin </strong>McGinley]</strong></strong> </strong>The great thing about BI is that it complements other tracks nicely.  You can’t get very far in BI without a data store of some sort, so both the Database track and the Essbase track offer sessions that would be attractive to BI attendees.  Both data stores require optimization for BI to perform, and each track has very practical sessions on how to accomplish this.  I’m excited about that.  Another track I find interesting is the EPM Business Content, a new track this year.  Geared more towards a director or senior manager, this track can really help a BI person understand how EPM can fit into their environment and drive additional value.</p>
<p>As you can see, Business Intelligence is in good hands at Kscope 12. Hopefully, we&#8217;ll see you there!</p>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2012/01/kevin-mcginley-kscope12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Data Warehousing with Exadata and OBIEE: ETL Iteration</title>
		<link>http://www.rittmanmead.com/2012/01/agile-exadata-obiee-etl/</link>
		<comments>http://www.rittmanmead.com/2012/01/agile-exadata-obiee-etl/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 04:22:31 +0000</pubDate>
		<dc:creator>Stewart Bryson</dc:creator>
				<category><![CDATA[BI (General)]]></category>
		<category><![CDATA[BI 2.0]]></category>
		<category><![CDATA[Data Warehousing]]></category>
		<category><![CDATA[Dimensional Modelling]]></category>
		<category><![CDATA[Exadata]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=9954</guid>
		<description><![CDATA[This is the fourth entry in my series on Agile Data Warehousing with Exadata and OBIEE. To see all the previous posts, check the introductory posting which I have updated with all the entries in the series. In the last post, I describe what I call the Model-Driven iteration, where we take thin requirements from the [...]]]></description>
			<content:encoded><![CDATA[<p>This is the fourth entry in my series on Agile Data Warehousing with Exadata and OBIEE. To see all the previous posts, check the <a title="Agile Data Warehousing with Exadata and OBIEE: Introduction" href="http://www.rittmanmead.com/2011/12/agile-data-warehousing-with-exadata-and-obiee-introduction/">introductory posting</a> which I have updated with all the entries in the series.</p>
<p>In the last post, I describe what I call the Model-Driven iteration, where we take thin requirements from the end-user in the form of a user story and generate the access and performance layer, or our star schema, logically using the OBIEE semantic model. Our first several iterations will likely be Model-Driven as we work with the end user to fine-tune the content he or she wants to see on the OBIEE dashboards. As user stories are opened, completed and validated throughout the project, end users are prioritizing them for the development team to work on. Eventually, there will come a time when an end user opens a story that is difficult to model in the semantic layer. Processes to correct data quality issues are a good example, and despite having the power of Exadata at our disposal, we may find ourselves in a performance hole that even the Database Machine can&#8217;t dig us out of. In these situations, we reflect on our overall solution and consider the maxim of Agile methodology: &#8220;refactoring&#8221;, or &#8220;rework&#8221;.</p>
<p>For Extreme BI, the main form of refactoring is ETL. The pessimist might say: &#8220;Well, now we have to do ETL development, what a waste of time all that RPD modeling was.&#8221; But is that the case? First off&#8230; think about our users. They have been running dashboards for some time now with at least a portion of the content they need to get their jobs done. As the die-hard Agile proponent will tell you&#8230; some is better than none. But also&#8230; the process of doing the Model-Driven iteration puts our data modelers and our ETL developers in a favorable position. We&#8217;ve eliminated the exhaustive data modeling process, because we already have our logical model in the Business Model and Mapping layer (BMM).</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Full-Logical-Model.png"><img class="alignnone size-large wp-image-9976" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Full-Logical-Model-1024x559.png" alt="" width="614" height="335" /></a></p>
<p>But we have more than that. We also have our source-to-target information documented in the semantic metadata layer. We can see that information using the Admin Tool, as depicted below, or we can also use the &#8220;Repository Documentation&#8221; option to generate some documented source-to-target mappings.</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Model-Driven-Map-Dimension.png"><img class="size-full wp-image-9883  alignnone" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Model-Driven-Map-Dimension.png" alt="" width="671" height="219" /></a></p>
<p>When embarking on ETL development, it&#8217;s common to do SQL prototyping before starting the actual mappings to make sure we understand the particulars of granularity. However, we already have these SQL prototypes in the nqquery.log file&#8230; all we have to do is look at it. The combination of the source-to-target-mapping and the SQL prototypes provide all the artifacts necessary to get started with the ETL.</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Query-Log.png"><img class="alignnone size-large wp-image-9982" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Query-Log-1024x598.png" alt="" width="645" height="377" /></a></p>
<p>When using ETL processing to &#8220;instantiate&#8221; our logical model into the physical world, we can&#8217;t abandon our Agile imperatives: we must still deliver the new content, and corresponding rework, within a single iteration. So whether the end user is opening the user story because the data quality is abysmal, or because the performance is just not good enough, we must vow to deliver the ETL Iteration time-boxed, in exactly the same manner that we delivered the Model-Driven Iteration. So, if we imagine that our user opens a story about data quality in our Customer and Product dimensions, and we decide that all we have time for in this iteration are those two dimension tables, does it make sense for us to deliver those items in a vacuum? With the image below depicting the process flow for an entire subject area, can we deliver it piecemeal instead of all at once?</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Piecemeal-Process-Flow.png"><img class="alignnone size-full wp-image-9968" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Piecemeal-Process-Flow.png" alt="" width="636" height="348" /></a></p>
<p>The answer, of course, is that we can. We&#8217;ll develop the model and ETL exactly as we would if our goal was to plug the dimensions into a complete subject area. We use surrogate keys as the primary key for each dimension table, facilitating joining our dimension tables to completed fact tables. But we don&#8217;t have completed fact tables at this point in our project&#8230; instead we have a series of transaction tables that work together to form the basis of a logical fact table. How can we use a dimension table with a surrogate key to join to our transactional &#8220;fact&#8221; table that doesn&#8217;t yet have these surrogate keys?</p>
<p>We fake it. Along with surrogate keys, the long-standing best practice of dimension table delivery has been to include the source system natural key, as well as effective dates, in all our dimension tables. These attributes are usually included to facilitate slowly-changing dimension (SCD) processing, but we&#8217;ll exploit them for our Agile piecemeal approach as well. So in our example below, we have a properly formed Customer dimension that we want to join to our logical fact table, as depicted below:</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Partial-Hybrid-Model-e1327470743307.png"><img class="alignnone size-full wp-image-9995" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Partial-Hybrid-Model-e1327470743307.png" alt="" width="596" height="200" /></a></p>
<p>We start by creating aliases to our transactional &#8220;fact&#8221; tables (called POS_TRANS_HYBRID and POS_TRANS_HEADER_HYBRID in the example above), because we don&#8217;t want to upset the logical table source (LTS) that we are already using for the pure transactional version of the logical fact table. We create a complex join between the customer source system natural key and transaction date in our hybrid alias, and the natural key and effective dates in the dimension table. We use the effective dates as well to make sure we grab the correct version of the customer entity in question in situations where we have enabled Type 2 SCD&#8217;s (the usual standard) in our dimension table.</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Surrogate-Pipeline.png"><img class="alignnone size-large wp-image-10007" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Surrogate-Pipeline-1024x869.png" alt="" width="574" height="486" /></a></p>
<p>This complex logic of using the natural key and effective dates is identical to the logic we would use in what Ralph Kimball calls the &#8220;surrogate pipeline&#8221;: the ETL processing used to replace natural keys with surrogate keys when loading a proper fact table. Using Customer and Sales attributes in an analysis, we can see the actual SQL that&#8217;s generated:</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Surrogate-Pipeline-SQL.png"><img class="alignnone size-large wp-image-10025" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Surrogate-Pipeline-SQL-1024x510.png" alt="" width="645" height="321" /></a></p>
<p>We can view this hybrid approach as an intermediate step, but there is also nothing wrong with this as a long-term approach if the users are happy and Exadata makes our queries scream. If you think about it&#8230; a surrogate key is an easy was of representing the natural key of the table, which is the source system natural key plus the unique effective dates for the entity. A surrogate key makes this relationship much easier to envision, and certainly code using SQL, but when we are insulated from the ugliness of the join with Extreme Metadata, do we really care? If our end users ever open a story asking for rework of the fact table, we may consider manifesting that table physically as well. Once complete, we would need to create another LTS for the Customer dimension (using an alias to keep it separate from the table that joins to the transactional tables). This alias would be configured to join directly to the new Sales fact table across the surrogate key&#8230; exactly how we would expect a traditional data warehouse to be modeled in the BMM. The physical model will look nearly identical to our logical model, and the generated SQL will be less interesting:</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Fact-LTS.png"><img class="alignnone size-full wp-image-10033" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Fact-LTS.png" alt="" width="221" height="226" /></a></p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Star-Schema-SQL.png"><img class="alignnone size-large wp-image-10029" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Star-Schema-SQL-1024x420.png" alt="" width="645" height="265" /></a></p>
<p>Now that I&#8217;ve described the Model-Driven and ETL Iterations, it&#8217;s time to discuss what I call the Combined Iteration, which is likely what most of the iterations will look like when the project has achieved some maturity. In Combined Iterations, we work on adding new or refactored RPD content alongside new or refactored ETL content in the same iteration. Now the project really makes sense to the end user. We allow the user community&#8211;those who are actually consuming the content&#8211;to dictate to the developers with user stories what they want the developers to work on in the next iteration. The users will constantly open new stories, some asking for new content, and others requesting modifications to existing content. All Agile methodologies put the burden of prioritizing user stories squarely on the shoulders of the user community. Why should IT dictate to the user community where priorities lie? If we have delivered fabulous content sourced with the Model-Driven paradigm, and Exadata provides the performance necessary to make this &#8220;real&#8221; content, then there is no reason for the implementors to dictate to the users the need to manifest that model physically with ETL when they haven&#8217;t asked for it. If whole portions of our data warehouse are never implemented physically with ETL&#8230; do we care? The users are happy with what they have, and they think performance is fine&#8230; do we still force a &#8220;best practice&#8221; of a physical star schema on users who clearly don&#8217;t want it?</p>
<p>So that&#8217;s it for the Extreme BI methodology. At the onset of this series&#8230; I thought it would require five blog posts to make the case, but I was able to do it in four instead. So even when delivering blog posts, I can&#8217;t help but rework as I go along. Long live Agile!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2012/01/agile-exadata-obiee-etl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hyperion Profitability &amp; Cost Management &#8211; Overview</title>
		<link>http://www.rittmanmead.com/2012/01/hyperion-profitability-cost-management-overview/</link>
		<comments>http://www.rittmanmead.com/2012/01/hyperion-profitability-cost-management-overview/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 09:13:18 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Hyperion]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=10040</guid>
		<description><![CDATA[Recently i have been doing lot more work on the Oracle EPM stack than on the Oracle BI stack. So, i will be writing more on the various Oracle EPM products like HFM, Planning, FDQM etc in the forthcoming weeks. To sort of kick start the series of postings, i thought i will begin an [...]]]></description>
			<content:encoded><![CDATA[<p>Recently i have been doing lot more work on the Oracle EPM stack than on the Oracle BI stack. So, i will be writing more on the various Oracle EPM products like HFM, Planning, FDQM etc in the forthcoming weeks. To sort of kick start the series of postings, i thought i will begin an article on Hyperion Profitability &amp; Cost Management also popularly known as HPCM. It is one of those products that is often overlooked, due to the overlap of features it has with other products like Essbase &amp; Planning. It is sort of a targeted product with a solid technical foundation and uses Hyperion Essbase as its backend. On the outset, HPCM primarily provides Functional Users with the ability to automatically allocate Costs &amp; Revenue to various departments, accounts thereby giving the ability to do proper &amp; complete profitability reporting.</p>
<p>HPCM primarily has 3 main sweet spots</p>
<p>1. Every company will have indirect costs. For example, a Consulting company where Revenue is obtained through driving projects will have a lot of indirect costs like HR Costs, Admin Costs etc. HPCM provides an ability to allocate the costs back to the projects so that proper project profitability is derived. How the costs are allocated will be defined through HPCM itself. For example, if a company is running say 3 consulting projects with 20, 30 &amp; 40 resources each, then the indirect costs are allocated back to the project based on the number of people(or time logged etc) in each project.</p>
<p>2. Every company will be storing the incoming Revenue &amp; Costs in a Ledger. Due to various reasons, even the direct costs &amp; revenue might not actually be tied back to a project (Consulting company example above). So, there might be a need to allocate the project based Direct Costs &amp; Revenue as well to the Projects (allocation possibly by head count etc).</p>
<p>3. Allocation of Costs is pretty dynamic in nature depending on the type of business. It can vary quite frequently. So, the key is to ensure that the allocation logic can be changed frequently and easily. In addition, one more key point is to find the lineage back to the source on how the costs are obtained.</p>
<p>HPCM provides all the 3 above. If you are an Essbase or a Planning person, you could argue that we can do the same thing using these 2 products itself. Though true, in many cases Cost &amp; Revenue allocation rules are defined by Functional Users. So, it is not possible for Functional users to create Business Rules/Calculation Scripts every time there is a change. In addition though Essbase is very good, it is very difficult to do a data lineage from a calculation script, to find out how the costs are allocated. Thats the main reason why, HPCM is a solution positioned primarily at Business/Functional users for providing that cost &amp; Revenue Breakdown.</p>
<p>Though i have mentioned that HPCM is a functional tool, its underlying technology is very interesting. It has a relational metadata that stores the metadata related to HPCM. In addition each HPCM application will have 2 Essbase databases. One is Block Storage cube which will be used for the allocation &amp; calculations. The other is a reporting Aggregate Storage cube which will be used for reporting. Data push from BSO and ASO is automatically available out of the box from HPCM. Also, one important point to note, change to dimensions, change to metadata, pushing data from BSO to ASO are all achieved within HPCM without writing any external code/scripts. Everything is done out of the box. This architecture is shown below.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10041" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic0.png" alt="" width="481" height="415" /></p>
<p>In addition, the most interesting aspect of HPCM is the way it handles dimensions. This is what we will be covering in this article today. HPCM uses EPMA for managing its dimensions &amp; attributes. HPCM as an application has 3 types of dimensions</p>
<p>1. System Dimensions &#8211; There are 2 System Dimensions &#8211; Measures &amp; AllocationType. Generally while creating a HPCM application through the Wizard we can pre-create these 2 dimensions. AllocationType is used by HPCM internally for doing allocations. It is generally not needed to make any changes to this dimension. But Measures dimension is the most important dimension that HPCM uses for pushing costs &amp; allocating them. We can create custom members in the Measure dimension if needed.</p>
<p>2. POV Dimensions &#8211; HPCM supports upto 4 point of view dimensions. These dimensions are generally for storing Year, Period, Scenario &amp; Version. True to their names, they generally are used as POVs and are not used directly in any allocation (the POVs are always fixed in the calculation scripts).</p>
<p>3. Business Dimensions &#8211; Business Dimensions are those dimensions where allocations happen. These dimensions drive the allocation logic.</p>
<p>In addition HPCM also supports alias and attribute dimensions. For this article, i will use a simple case of demonstrating how to go about allocating HR Costs in a Consulting Company recognising its revenue through Projects. Lets make an assumption that on a monthly basis we record the HR Costs (including Salary paid to HR, other misc costs) etc. Lets also assume that we have 3 projects running in the company with the following break-up</p>
<p>a. Project A &#8211; 300 people full time<br />
b. Project B &#8211; 500 people full time<br />
c. Proejct C &#8211; 200 people full time</p>
<p>We will start off with creating the application through the Application Wizard (pre-create System Dimensions) and then we shall define the necessary dimensions.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10066" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic1.png" alt="" width="460" height="254" /></p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10065" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic2.png" alt="" width="472" height="383" /></p>
<p>We basically have 2 business dimensions &#8211; one for Accounts which will hold the HR Costs. Then we have the Project dimension which will record the revenue and costs specific to the project.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10064" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic31.png" alt="" width="229" height="283" /></p>
<p style="text-align: center">&nbsp;</p>
<p>Lets deploy this application and then login to the application through Workspace.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10063" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic4.png" alt="" width="482" height="375" /></p>
<p>In HPCM all allocation happens through stages. Stages is where allocation happen. HPCM supports uppto 9 stages. Each stage also supports intra stage allocation. Lets try to understand what this means from a Multi-Dimensional Essbase database Standpoint. In our example, we will have 2 stages. The first stage will have just the Accounts dimension &#8211; basically HRCosts in Accounts dimension will flow from Stage 1 to Stage 2 and will get allocated in Stage 2. So, Stage 2 will contain both the Accounts and Project dimensions.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10062" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic51.png" alt="" width="460" height="135" /></p>
<p>After creating these 2 stages(ensure you also have a POV defined) lets go ahead and deploy this to Essbase from the Manage Database screen(both Calculation &amp; Reporting Database). What you will notice is 3 things</p>
<p>1. There will be 2 essbase databases one suffixed with letter C and the other suffixed with letter R. C database is the Block Storage database that is used for allocation. R database is the Aggregated Storage database that will be used for reporting.</p>
<p>2. You will notice that for each stage there will be a corresponding set of dimensions prefixed by the Stage prefix given at the time of creation. So effectively, if there are 2 stages with 2 dimensions each, then Essbase will have 4 dimensions (though the 2 dimensions might be the same in EPMA).</p>
<p>3. You will also notice that each dimension will have a dummy member called NoMember. This is one of the most important members that controls the grain of the data. This member is the key in loading multi-grain data for allocation into HPCM.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10061" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic61.png" alt="" width="478" height="319" /></p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10060" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic71.png" alt="" width="282" height="274" /><br />
<img class="aligncenter size-full wp-image-10059" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic81.png" alt="" width="382" height="450" /></p>
<p>Now that we have the Essbase cubes deployed as well, lets try to understand how the allocation logic works. To begin with lets assume for the month of Jan 2011, the HR Costs for the Consulting Company is say 1000 USD as shown below</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10058" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic91.png" alt="" width="496" height="91" /></p>
<p>This is the input data into Stage 1. So to load this in we will have be creating a text file and load it directly into Essbase. There are 3 options to load data into HPCM</p>
<p>1. Manual Data Entry &#8211; HPCM provides a screen where we can update data manually.</p>
<p>2. Staging Tables &#8211; We can load the data temporarily into a set of staging tables, and then from within HPCM we can push the data from Staging tables into Essbase.</p>
<p>3. Directly loading data into Essbase</p>
<p>In our case, we will load the data directly into Essbase as that will give more clarity on how HPCM works. For doing data load for Stage 1, remember we have a total of 9 dimensions in Essbase (Measures,AllocationType,Year, Scenario, Period, Version, ACAccount,PRAccount,PRProject). But our input data of HRCosts comes at a grain of only 7 dimensions (Measures,AllocationType,Year, Scenario, Period, Version, ACAccount). So, load this in we will have use the NoMember intersection of the remaining 2 dimensions (PRAccount &amp; PRProject). The input data file to Essbase is shown below</p>
<p>CostInput,DirectAllocation,2011,Jan,Actual,Working,HRCosts,[PRAccounts].[NoMember],[PRProgram].[NoMember],1000<br />
Our idea is to allocate the 1000 USD down to the 3 projects for the January Month. So, our end result should look like this</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10057" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic101.png" alt="" width="500" height="100" /></p>
<p>If you notice, the 1000 USD is split across the 3 projects based on the overall number of resources(Resource Count for each project/Total Resources*HRCost) in each project. So basically for the allocation to happen, we need to load the Resource Count data. Resource Count data for all projects and the individual projects have to be loaded as shown below</p>
<p>FixedDriverValue,DirectAllocation,2011,Jan,Working,Actual,HRCosts,HRCosts,Project A,300<br />
FixedDriverValue,DirectAllocation,2011,Jan,Working,Actual,HRCosts,HRCosts,Project B,500<br />
FixedDriverValue,DirectAllocation,2011,Jan,Working,Actual,HRCosts,HRCosts,Project C,200<br />
Weight,DirectAllocation,2011,Jan,Working,Actual,HRCosts,[PRAccounts].[NoMember],[PRProgram].[NoMember],1000</p>
<p>In the above data file there are 2 things we can notice</p>
<p>1. We have used a measure called FixedDriverValue and Weight. We will see their significance a little bit later. For now think of them as intersections that will hold the Resource Count Data.</p>
<p>2. The first 3 records above have HRCosts repeated twice to load into both the Accounts dimension we have in the Essbase Cube. Again we will see the significance of why we are doing this below.</p>
<p>So far we have loaded all the necessary data into the Essbase Cubes and have also setup the stages. The next step is in defining the Allocation Logic. This is done through a concept called Drivers. From the Perspective of HPCM, drivers define how the allocation values get pushed from source to target. HPCM supports different allocations like Activity Based Costing etc through the concept of Drivers. In our case, the Driver for allocation is the Resource Count. Just to recap, within Essbase now we have dimensions catering to two stages &#8211; Stage 1 and Stage 2. This is illustrated below. So basically we have 3 separate sub-cubes each having its own intersection.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10056" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic111.png" alt="" width="469" height="238" /></p>
<p>In the above diagram, whenever we want to do allocation there can be different ways of doing it. The 3 most common ways are</p>
<p>1. Allocation Based on Source &#8211; Here all the driver values are obtained from the source stage and data from source stage is then assigned to the Destination Stage based on the Source driver values.</p>
<p>2. Allocation Based on Destination &#8211; Here all the driver values are obtained from Destination stage and data from source stage is then assigned to the Destination Stage based on the Destination driver values.</p>
<p>3. Allocation Based on Source &amp; Destination &#8211; Also known as Assignments &#8211; Here all the driver values are obtained from the intersection of Source &amp; Destination and data from source stage is then assigned to the Destination Stage based on the Assignment driver values.</p>
<p>If you look at our Driver data above (3 records containing FixedDriverValue &amp; 1 containing Weight), you can see that our driver (Resource Count) is loaded in 2 ways. First the FixedDriverValue is loaded at the intersection of Source &amp; Destination stages. The second driver Weight is loaded at the Source Stage intersection. We have chosen these 2 measures (FixedDriverValue &amp; Weight). We could have chosen any other measure like Rate, Volume etc. But each measure has a logical meaning and it is better to stick to the ones we think is logically close to what we are trying to do. If we are not able to use the existing measures and if they don&#8217;t relate to our driver names then we can create custom measures. So, this allocation handling through drivers is defined through the Driver Definition screen in HPCM.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10055" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic121.png" alt="" width="461" height="340" /></p>
<p>As you see in our formula we are basically doing a division of each Resource Count from Stage 2 by the Total Resource Count in Stage 1. HPCM will automatically multiply the resulting values of the driver to the CostInput measure (input data) thereby allocating.</p>
<p>Once we have defined the driver the next step is to assign the driver to both the stages. HPCM allows us to have multiple drivers for each stage. And even within a single dimension in a stage we can define exceptions so that multiple drivers can be assigned within the same dimension. This way we can have allocation logic based not only on Resource Count but also on say Clocked Time of a resource in certain cases. Driver assignment is done through the Driver Selection screen in HPCM.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10054" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic13.png" alt="" width="467" height="263" /></p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10053" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic14.png" alt="" width="434" height="259" /></p>
<p>After the assignments, one other important feature of HPCM is its ability to assign allocations on a cell by cell basis. So, what we can do is, for each cell in the Source Stage we can assign the Destination cell(s) in the Destination Stage. That way we can clearly find out what intersections will get affected by what allocation logic. If you had to do them through say Essbase Calculation Scripts alone, it would have been such a laborious task not only while doing the allocations but also in maintaining them. In our example, lets assign the Data intersection of HRCosts in Stage 1 to the 3 Destination Projects in Stage 2 as shown below</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10052" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic15.png" alt="" width="489" height="226" /></p>
<p>Now lets run the Calculation &amp; then immediately transfer the data to the ASO cube from the Manage Calculation screen.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10051" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic16.png" alt="" width="483" height="263" /></p>
<p>If you now look at the data you can clearly see that each project now will have the corresponding costs allocated.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10050" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic17.png" alt="" width="478" height="283" /></p>
<p>To validate how the costs have flown through the stages, HPCM provides an option to do a stage balancing report. This will show us how the costs have moved from stage to stage. In addition one biggest advantage of HPCM is, if there are any unassigned costs in the source, those will automatically move into Idle Costs (or we can configure it throw an error to ensure all costs are always allocated).</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10049" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic18.png" alt="" width="491" height="153" /></p>
<p>In terms of reporting, the ASO cube that HPCM provides will be more than sufficient. But based on what i have seen, we will have a lot of un-necessary dimensions especially when we are not concerned about the inter-stage essbase dimensions. In such cases, we can build our own ASO cube and extract only the necessary intersections that we need. But for now, i will showcase how BI EE 11g can be used for reporting again the native HPCM ASO cube. I will quickly show the lineage breakup reports as well</p>
<p>We start off with importing the ASO cube into BI EE which is pretty straight-forward as shown below.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10048" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic19.png" alt="" width="265" height="294" /></p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10047" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic20.png" alt="" width="231" height="374" /></p>
<p>Then lets start with building the report just for looking at our Stage 1 data. Remember Stage 1 input HRCosts data is loaded against NoMember intersections of the other dimensions. So we will have to explicitly filter to arrive at the right data.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10046" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic21.png" alt="" width="469" height="227" /></p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10045" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic22.png" alt="" width="479" height="85" /></p>
<p>Similarly to get the final allocated data we will have to apply filters as shown below</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10044" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic23.png" alt="" width="487" height="208" /></p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10043" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic24.png" alt="" width="461" height="149" /></p>
<p>In the same way we can get the driver values directly from the cube using a simple BI EE report. All of these are shown in the form of a dashboard &#8211; showing how the costs from stage to stage using the drivers.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-10042" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic25.png" alt="" width="468" height="171" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2012/01/hyperion-profitability-cost-management-overview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring OBI 11g to use port 80</title>
		<link>http://www.rittmanmead.com/2012/01/configuring-obi-11g-to-use-port-80/</link>
		<comments>http://www.rittmanmead.com/2012/01/configuring-obi-11g-to-use-port-80/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 21:16:54 +0000</pubDate>
		<dc:creator>Robin Moffatt</dc:creator>
				<category><![CDATA[Application Server]]></category>
		<category><![CDATA[FMW]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>
		<category><![CDATA[80]]></category>
		<category><![CDATA[admin server]]></category>
		<category><![CDATA[bi_server1]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[fmw]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[simple]]></category>
		<category><![CDATA[sudo]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=9786</guid>
		<description><![CDATA[Introduction By default, OBI 11g will listen for connections on port 7001 or port 9704 depending on your installation type. There are several reasons you may want to change this, and one of them would be to make it use port 80, the default http port. If you use port 80, then you don&#8217;t have [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>By default, OBI 11g will listen for connections on port 7001 or port 9704 depending on your installation type. There are several reasons you may want to change this, and one of them would be to make it use port 80, the default http port. If you use port 80, then you don&#8217;t have to specify it in the URL, so you can use <em>http://biserver/analytics/</em> as your URL instead of <em>http://biserver<strong>:9704</strong>/analytics/</em>. </p>
<p>The port configuration is a simple change to be made to the Server configuration in Web Logic Console. However, if you want to use port 80 and are running Linux/Unix there is an additional consideration. On Linux/Unix (hereafter, I&#8217;ll just refer to Linux), any port < 1024 is considered privileged and you must run the program binding to it as root. </p>
<p>At this point, if you don't have root access on your box already and are beholden to a sysadmin team, I would suggest validating your reasons for wanting to run on port 80, since you are going to have to go begging for some kind of privileged access. If you're up for that, then read on. If not, then why not stick with 9704, it's a nice number anyway....</p>
<h2>Overview of the change to listen on port 80</h2>
<p>The configuration changes are actually very simple. They are just within Web Logic Server, we don&#8217;t touch the BI components at all.</p>
<p>We change the <b>Listen Port</b> property of the <b>Server</b> to port 80.</p>
<p>Since we are using port 80, we will have to start the server process as root. But, we can get Web Logic to revert back to the OBI user&#038;group once the port has been bound to (since running a process as root is generally a Bad Idea)</p>
<p>To do this, we configure <b>Post-Bind UID</b> in the <b>Machine</b> properties.</p>
<h2>WLS &#8211; Server configuration</h2>
<p>Depending on whether you have a <b>Enterprise</b> or <b>Simple</b> OBI installation, the configuration will differ slightly. See <a href="http://www.rittmanmead.com/2011/10/oow2011-obiee-11g-architecture-internals/">Mark&#8217;s post here</a> for explanation of the difference between the two installation types. In an <b>Enterprise</b> installation, you need to modify the properties of the <b>bi_server1</b> <em>Managed Server</em>, whereas a <b>Simple</b> installation has all the bits within <b>AdminServer</b>.</p>
<p>For both however, you need to login to Web Logic Admin Console, and locate the <b>Servers</b> screen. Click on either <b>AdminServer</b> (Simple installation) or <b>bi_server1</b> (Enterprise installation) to view the Server settings.</p>
<p>Click on <b>Lock &#038; Edit</b><br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/rm-oel02-27.png" alt="" title="rm-oel02-27" width="559" height="267" class="alignnone size-full wp-image-9805" /></p>
<p>Locate <b>Listen Port</b> on the Server configuration (Configuration -> General, if not already displayed). Change this to 80.<br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/rm-oel02-2.png" alt="" title="rm-oel02-2" width="598" height="338" class="alignnone size-full wp-image-9804" /></p>
<p>Click on <b>Save</b>.</p>
<h2>WLS &#8211; Machine configuration</h2>
<p>Still logged into Web Logic Admin Console, with the above Listen Port change pending, click on the <b>Machines</b> link under <b>Environment</b> in the <b>Domain Structure</b> menu. Click on your server name.<br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/skitched-20120104-155829.png" alt="" title="skitched-20120104-155829" width="568" height="347" class="alignnone size-full wp-image-9806" /></p>
<p>Now, tick the two items <b>Enable Post-Bind UID</b> and <b>Enable Post-Bind GID</b>.</p>
<p>To determine your userid and group, login with your normal OBI user, and type <b>id</b></p>
<pre class="brush: bash; highlight: [2]; light: true; title: ; notranslate">
$ id
uid=300(oracle) gid=301(oinstall)
</pre>
<p>Enter these values in <b>Post-Bind UID</b> and <b>Post-Bind GID</b><br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/rm-oel02-6.png" alt="" title="rm-oel02-6" width="443" height="479" class="alignnone size-full wp-image-9807" /></p>
<p>Click on <b>Save</b>.</p>
<h2>Activate the changes</h2>
<p>In Web Logic Admin Console, click on <b>Activate Changes</b>.<br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/rm-oel02-8.png" alt="" title="rm-oel02-8" width="542" height="280" class="alignnone size-full wp-image-9810" /></p>
<p>When this has completed successfully, shutdown the stack and then see below for how to start it back up.</p>
<h2>Starting up the stack to listen on port 80</h2>
<p>You don&#8217;t need to run all of the components with root privilege, only those that are binding to port 80. In addition, in an Enterprise installation you have the <b>Node Manager</b> component which is responsible for invoking Managed Servers, and since we need the Managed Server bi_server1 to be run with root privileges, <b>Node Manager</b> must be too. </p>
<h3>&#8216;Simple&#8217; installation</h3>
<ol>
<li>Start WebLogic, <b>as root</b></li>
<li>Start OPMN and BI Components (not as root)</li>
</ol>
<h3>&#8216;Enterprise&#8217; installation</h3>
<ol>
<li>Start NodeManager, <b>as root</b>
<ul>
<li>If you don&#8217;t start this as root, you won&#8217;t be able to start up the Managed Server bi_server1 from within Web Logic Admin Console</li>
</ul>
</li>
<li>Start WebLogic (AdminServer) (not as root)</li>
<li>Start WebLogic Managed Server (bi_server1), <b>as root</b></li>
<li>Start OPMN and BI Components (not as root)</li>
</ol>
<h2>Validate the changes</h2>
<p>You should now be able to access OBI at port 80, which as the default HTTP port doesn&#8217;t need specifying in your URL. So if previously it was <strong>http://localhost:9704/analytics/</strong> you should now be able to see it at <strong>http://localhost/analytics</strong><br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/rm-oel02-9.png" alt="" title="rm-oel02-9" width="641" height="295" class="alignnone size-full wp-image-9811" /></p>
<p>If you look in the Web Logic server log (AdminServer.log / bi_server1.log respectively), you should see this kind of entry:</p>
<pre class="brush: plain; light: true; title: ; notranslate">
&lt;Notice&gt; &lt;Server&gt; &lt;BEA-002613&gt; &lt;Channel &quot;Default[1]&quot; is now listening on 192.168.69.0:80 for protocols iiop, t3, ldap, snmp, http.&gt;
&lt;Notice&gt; &lt;Server&gt; &lt;BEA-002613&gt; &lt;Channel &quot;Default[2]&quot; is now listening on 127.0.0.1:80 for protocols iiop, t3, ldap, snmp, http.&gt;
</pre>
<p>And <a href="http://en.wikipedia.org/wiki/Netstat">netstat</a> should show something like:</p>
<pre class="brush: bash; light: true; title: ; notranslate">
$ netstat -a|grep LISTEN|grep 80
[…]
biserver01.80             *.*                0      0 49152      0 LISTEN
localhost.80               *.*                0      0 49152      0 LISTEN
[…]
</pre>
<p>or you might see the port named instead of numbered, thus:</p>
<pre class="brush: bash; light: true; title: ; notranslate">
$ netstat -a|grep LISTEN|grep http
tcp        0      0 rm-oel02.localdomain:http   *:*                         LISTEN
tcp        0      0 localhost.localdomain:http  *:*                         LISTEN
</pre>
<h2>Possible errors</h2>
<p>If you don&#8217;t start the process as root, then it will fail to bind to port 80, and you&#8217;ll see this error in the log:</p>
<pre class="brush: plain; title: ; notranslate">
 &lt;Error&gt; &lt;Server&gt; &lt;BEA-002606&gt; &lt;Unable to create a server socket for listening on channel &quot;Default[1]&quot;. The address 127.0.0.1 might be incorrect or another process is using port 80: java.net.BindException: Permission denied.&gt;
</pre>
<h2>sudo</h2>
<p>What is sudo? Well, any chance to quote this xkcd cartoon is a good one: </p>
<p align=center><img src="http://imgs.xkcd.com/comics/sandwich.png" alt="xkcd - sudo make me a sandwich" title="xkcd - sudo make me a sandwich"></p>
<p>What sudo does is let you run a command under root (superuser) privileges, without actually being root. This is very useful in two ways: (1) your sysadmins don&#8217;t have kittens when you ask for root access, because they can give it in a very granular way which is logged every time it is used (2) you&#8217;re not let loose on a server with unfettered root access where a simple slip of the keyboard can serious knacker things up (hence your sysadmin&#8217;s kittens). </p>
<p>sudo can be granted globally for a user, that is, any command the user wants to run as root can be done so. Alternatively, sudo can be allowed for one or many pre-specified commands. This means that in this case your sysadmins can give you the right to run the required WLS processes as root, and absolutely nothing else. </p>
<p>This is an example of such an entry in the sudo configuration file, /etc/sudoers :</p>
<pre class="brush: bash; title: ; notranslate">
Cmnd_Alias BISERVER = /app/fmw11115/user_projects/domains/bifoundation_domain/bin/startManagedWebLogic.sh bi_server1, /app/fmw11115/wlserver_10.3/server/bin/startNodeManager.sh
# This defines a command alias, BISERVER, with the web logic startup script and arguments to call, and the command to start Node Manager
oracle     localhost=NOPASSWD BISERVER
# user oracle, on machine localhost, can run BISERVER command alias, without being re-prompted for their password
</pre>
<p>Whenever you invoke sudo, it&#8217;ll be logged in /var/log/secure, eg: </p>
<pre class="brush: plain; title: ; notranslate">
Jan  3 17:07:19 rm-oel02 sudo:      rnm : TTY=pts/2 ; PWD=/home/rnm ; USER=root ; COMMAND=/app/fmw11115/user_projects/domains/bifoundation_domain/bin/startManagedWebLogic.sh bi_server1
</pre>
<h2>Alternative to running root/sudo</h2>
<p>An interesting alternative is to leave OBI listening on its default port, and configure the server to forward requests on port 80 to it, for example using iptables. I found this suggestion <a href="http://serverfault.com/questions/84360/regular-user-using-ports-below-1024">here</a>, amongst other places. This way you&#8217;d only need a one-time privileged change made on the server, instead of needing privileged rights continually (however limited they may be)</p>
<p>I&#8217;ve not had chance to try it, and in keeping to the <a href="http://en.wikipedia.org/wiki/KISS_principle">KISS principle</a> would probably only consider it if all other options were exhausted. Thinking of someone coming to the server after me, would their first thought around OBI port configuration really be to look at iptables? Whereas <b>Listen Port</b> is a standard configuration item within WLS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2012/01/configuring-obi-11g-to-use-port-80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Data Warehousing with Exadata and OBIEE: Model-Driven Iteration</title>
		<link>http://www.rittmanmead.com/2012/01/agile-exadata-obiee-model-driven/</link>
		<comments>http://www.rittmanmead.com/2012/01/agile-exadata-obiee-model-driven/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 05:32:10 +0000</pubDate>
		<dc:creator>Stewart Bryson</dc:creator>
				<category><![CDATA[BI (General)]]></category>
		<category><![CDATA[BI 2.0]]></category>
		<category><![CDATA[Data Warehousing]]></category>
		<category><![CDATA[Dimensional Modelling]]></category>
		<category><![CDATA[Exadata]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=9825</guid>
		<description><![CDATA[After laying the groundwork with an introduction, and following up with a high-level description of the required puzzle pieces, it&#8217;s time to get down to business and describe how Extreme BI works. At Rittman Mead, we have several projects delivering with this methodology right now, and more in the pipeline. I&#8217;ll gradually introduce the different types of [...]]]></description>
			<content:encoded><![CDATA[<p>After laying the groundwork with an <a title="Agile Data Warehousing with Exadata and OBIEE: Introduction" href="http://www.rittmanmead.com/2011/12/agile-data-warehousing-with-exadata-and-obiee-introduction/" target="_blank">introduction</a>, and following up with a high-level description of the required <a title="Agile Data Warehousing with Exadata and OBIEE: Puzzle Pieces" href="http://www.rittmanmead.com/2011/12/agile-exadata-obiee-puzzle-pieces/" target="_blank">puzzle pieces</a>, it&#8217;s time to get down to business and describe how Extreme BI works. At Rittman Mead, we have several projects delivering with this methodology right now, and more in the pipeline.</p>
<p>I&#8217;ll gradually introduce the different types of generic iterations that we engage in, focusing on what I call the &#8220;model-driven&#8221; iteration for this post. Our first few iterations are always model-driven. We begin when a user opens a user story requesting new content. For any request for new content, we require that all the following elements are including in the story:</p>
<ol>
<li>A narrative about the data they are looking for, and how they want to see it. We are not looking for requirements documents here, but we are looking for the user to give a complete picture of what it is that they need.</li>
<li>An indication of how they report on this content today. In a new data warehouse environment, this would include some sort of report that they are currently running against the source system, and in a perfect world, this would involve the SQL that is used to pull that report.</li>
<li>An indication of data sets that are &#8220;nice to haves&#8221;. This might include data that isn&#8217;t available to them in the current paradigm of the report, or was simply too complicated to pull in that paradigm. After an initial inspection of these nice-to-haves and the complexity involved with including them in this story, the project manager may decide to pull these elements out and put them a separate user story. This, of course, depends on the Agile methodology used, and the individual implementation of that methodology.</li>
</ol>
<p>First we assign the story to an RPD developer, who uses the modeling capabilities in the OBIEE Admin Tool to &#8220;discover&#8221; the logical dimensional model tucked inside the user story, and develop that logical model inside the Business Model and Mapping (BMM) layer. Unlike a &#8220;pure&#8221; dimensional modeling exercise where we focus only on user requirements and pay very little attention to source systems, in model-driven development, we constantly shift between the source of the data, and how best the user story can be solved dimensionally. Instead of working directly against the source system though, we are working against the foundation layer in the Oracle Next-Generation Reference Data Warehouse Architecture. We work from a top-down approach, first creating empty facts and dimensions in the BMM, and mapping them to the foundation layer tables in the physical layer.</p>
<p>To take a simple example, we can see how a series of foundation layer tables developed in 3NF could be mapped to a logical dimension table as our Customer dimension:</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Model-Driven-Dimension-Join.png"><img class="size-full wp-image-9893 alignnone" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Model-Driven-Dimension-Join.png" alt="Model-Driven Development of Dimension Table" width="425" height="208" /></a></p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Model-Driven-Map-Dimension.png"><img class="size-full wp-image-9883 alignnone" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Model-Driven-Map-Dimension.png" alt="" width="671" height="219" /></a></p>
<p>I rearranged the layout from the Admin Tool to provide an &#8220;ETL-friendly&#8221; view of the mapping. All the way to the right, we can see the logical, dimensional version of our Customer table, and how it maps back to the source tables. This mapping could be quite complicated, with perhaps dozens of tables. The important thing to keep in mind is that this complexity is hidden from not only the consumer of the reports, but also from the developers. We can generate a similar example of what our Sales fact table would look like:</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Model-Driven-Fact-Join.png"><img class="size-full wp-image-9896 alignnone" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Model-Driven-Fact-Join.png" alt="" width="426" height="209" /></a></p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Model-Driven-Map-Fact.png"><img class="size-full wp-image-9889 alignnone" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Model-Driven-Map-Fact.png" alt="" width="664" height="276" /></a></p>
<p>Another way of making the same point is to look at the complex, transaction model:</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Physical-Model-Annotated.png"><img class="size-full wp-image-9904 alignnone" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Physical-Model-Annotated.png" alt="" width="441" height="311" /></a></p>
<p>We can then compare this to the simplified, dimensional model:</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Logical-Model-Annotated.png"><img class="size-full wp-image-9905 alignnone" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Logical-Model-Annotated.png" alt="" width="409" height="260" /></a></p>
<p>And finally, when we view the subject area during development of an analyses, all we see are facts and dimensions. The front-end developer can be blissfully ignorant that he or she is developing against a complex transactional schema, because all that is visible is the abstracted logical model:</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Astracted-View-for-Developer.png"><img class="alignnone size-full wp-image-9915" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Astracted-View-for-Developer.png" alt="" width="741" height="395" /></a></p>
<p>When mapping the BMM to complex 3NF schemas, the BI Server is very, very smart, and understands how to do more with less. Using the metadata capabilities of OBIEE is superior to other metadata products, or superior to a &#8220;roll-you-own metadata&#8221; approach using database views, because of the following:</p>
<ol>
<li>The generated SQL usually won&#8217;t involve self-joins, even when tables exists in both the logical fact table, and the logical dimension table.</li>
<li>The BI Server will only include tables that are required to facilitate the intelligent request, either because it has columns mapped to the attributes being requested, or because the table is a required reference table to bring disparate tables together. Any tables not required to facilitate the request will be excluded.</li>
</ol>
<p>Since the entire user story needs to be closed in a single iteration, the user who opened the story needs to be able to see the actual content. This means that the development of the analyses (or report) and the dashboard are also required to complete the story. It&#8217;s important to get something in front of the end user immediately, but it doesn&#8217;t have to be perfect. We should focus on a clear, concise analyses in the first iteration, so it&#8217;s easy for the end user to verify that the data is correct. In future iterations, we can deliver high-impact, eye-catching dashboards. Equally important to closing the story is being able to prove that it&#8217;s complete. In Agile methodologies, this is usually referred to as the &#8220;Validation Step&#8221; or &#8220;Showcase&#8221;. Since we have already produced the content, then it&#8217;s easy to prove to the user that the story is complete. But suppose that we believed we couldn&#8217;t deliver new content in a single iteration. That would imply that we would have an iteration during our project that didn&#8217;t include actual end-user content. How would you go about validating or showcasing that content? How would we go about showcasing a completed ETL mapping, for instance, if we haven&#8217;t delivered any content to consume it?</p>
<p>What we have at the end of the iteration is a completely abstracted view of our model: a complex, transactional, 3NF schema presented as a star schema. We are able to deliver portions of a subject area, which is important for time-boxed iterations. The Extreme Metadata of OBIEE 11g allows us to remove this complexity in a single iteration, but it&#8217;s the performance of the Exadata Database Machine that allows us to build real analyses and dashboards and present it to the general user community.</p>
<p>In the next post, we&#8217;ll examine the ETL Iteration, and explore how we can gradually manifest our logical business model into a physical model over time. As you will see, the ETL iteration is an optional one&#8230; it will be absolutely necessary in some environments, and completely superflous in others.</p>
<p><a href="http://www.rittmanmead.com/wp-content/uploads/2012/01/Physical-Model-Annotated.png"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2012/01/agile-exadata-obiee-model-driven/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>BI EE 11.1.1.5 &#8211; Calling BI EE 11g Agents through Oracle Data Integrator 11g</title>
		<link>http://www.rittmanmead.com/2012/01/bi-ee-11-1-1-5-calling-bi-ee-11g-agents-through-oracle-data-integrator-11g/</link>
		<comments>http://www.rittmanmead.com/2012/01/bi-ee-11-1-1-5-calling-bi-ee-11g-agents-through-oracle-data-integrator-11g/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 19:38:24 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Oracle BI Suite EE]]></category>
		<category><![CDATA[Oracle Data Integrator]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=9861</guid>
		<description><![CDATA[I was asked recently to come out with a way of calling BI EE 11g agents directly from Oracle Data Integrator 11g. There are many ways of accomplishing this. I thought i will write a quick blog post about the various possible solutions and more importantly get back to blogging again!!! Alerting end-users about a [...]]]></description>
			<content:encoded><![CDATA[<p>I was asked recently to come out with a way of calling BI EE 11g agents directly from Oracle Data Integrator 11g. There are many ways of accomplishing this. I thought i will write a quick blog post about the various possible solutions and more importantly get back to blogging again!!!</p>
<p>Alerting end-users about a completed ETL task is a pretty common requirement. ODI 11g (or for that matter any ETL tool) has native routines to send emails directly from within the tool. But in the case of the specific customer case, they wanted to use BI EE 11g Agents for 3 main reasons</p>
<p>1. Use the features of BI EE &#8211; like along with the ETL task completion status they wanted a report or a set of reports to be distributed to the end users</p>
<p>2. They wanted dashboard based alerting for Administration users. Whenever an Admin user logs into the BI EE dashboard, they wanted the ability to pop-up a message denoting the completion status.</p>
<p>3. They have a bunch of BI EE reports built already on top of the ODI metadata which will capture information on number of failed records loaded etc (directly from the E$ and C$ tables).</p>
<p>So, it was pretty clear that using BI EE 11g scheduler is the way to go. But how do we call BI EE agents from ODI. There is no native integration between the two (perhaps a candidate for an enhancement request as i think this will be a pretty common requirement once BI Apps using ODI becomes available for all the modules). So the only option is to build our own integration. There are basically 2 ways of achieving this</p>
<p>1. Use SASCHINVOKE utility available for calling Agents from command line and then call the SASCHINVOKE utility from within ODI &#8211; This requires an ODI Agent to available on the same box as BI EE. A quick overview of the solution is given below</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-9862" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/PIC1.png" alt="" width="286" height="248" /></p>
<p>2. Use BI EE Web Services and call <strong>ExecuteIbotNow</strong> method in the <strong>iBotService</strong> &#8211; This method will be called directly from ODI 11g. The high level architecture diagram is given below</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-9863" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/PIC2.png" alt="" width="444" height="297" /></p>
<p>Lets see each of the above methods in detail now. We will start off with the first method i.e. using SAWSCHED utility.</p>
<p><strong>SASCHINVOKE &amp; Native ODI Agents</strong>:</p>
<p>This method assumes that there is a physical remote ODI agent running on the same box as BI EE 11g. For this to work, we will have to call the SASCHINVOKE utility from within a ODI package. For example, lets say we have an iBot in BI EE that is supposed to deliver a report/dashboard after the ETL job gets completed. First we start off with creating a package in ODI and then use the ODIOSCommand to call the SASCHINVOKE command line utility as shown below</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-9864" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic3.png" alt="" width="496" height="127" /></p>
<p style="text-align: center">&nbsp;</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-9865" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/PIC4.png" alt="" width="477" height="381" /></p>
<p><strong>Very Important: For this to work you need to have SSL enabled. According to note 1331931.1 in MOS, the ability to pass passwords in command line is now disabled(for security reasons). So, we cannot use this option if we do not have SSL enabled.</strong></p>
<p>As you see in the above screenshot, SASCHINVOKE will always prompt for a password. To bypass this, just add an ECHO statement and pipe the output to the SASCHINVOKE command as shown below.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-9866" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic5.png" alt="" width="506" height="254" /></p>
<p><strong>BI EE Web Services &amp; ODI Packages:</strong></p>
<p>In many cases, the first method above will not work because we might not have SSL enabled or we might not prefer passing the username &amp; password in command line. One more drawback with the first one is, we have to host a separate ODI agent on the BI EE Machine. Of course we can work around it by just installing BI EE client on the ODI Agent machine (which will have SASCHINVOKE in the binary &#8211; and it can do remove invocations). But the problem with that is in pure Unix environments, we do not have the option of installing BI EE Client on the ODI Agent machine(only option is to setup a SSH public-private key and enable remote invocation). In such cases, we will have to rely on the Web Service API calls of BI Scheduler. Lets try to quickly understand how that works.</p>
<p>ODI supports native Web Service calls. It can either extract data (Through a Data Service) or can execute a remote service method. But the problem with BI EE web services is the fact that they are multiple-end point in nature. That is, we will have to first make a call to the <strong>SAWSession</strong> web service which will create a <strong>SessionID</strong>. This sessionid then needs to be passed on to other services like <strong>iBotService</strong>. To do that we need to do 3 main things within the ODI framework</p>
<p>1. Using <strong>ODIInvokeWebService</strong>, make a call to the <strong>SAWSession</strong> service. This will give a XML response with the SessionID embedded in the XML.</p>
<p>2. Use a java class (or using <strong>ODIXMLSplit</strong> &amp; <strong>ODIXMLConcat</strong>) to extract the <strong>SessionID</strong> from the response <strong>XML</strong> and then create a <strong>Request XML</strong> with the SessionID and the path of the <strong>iBot</strong> embedded.</p>
<p>3. Using <strong>ODIInvokeWebService</strong>, make a call to the <strong>executeiBotNow</strong> method of the <strong>iBotService</strong> endpoint using the request XML generated above.</p>
<p>So, we start off with creating an ODI Package. We then call the <strong>ODIInvokeWebService</strong> component to make a call to the <strong>SAWSession</strong> service.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-9867" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic6.png" alt="" width="436" height="319" /></p>
<p>On execution of this service, the output response file will get stored in a file with the SessionID.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-9868" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic7.png" alt="" width="507" height="120" /></p>
<p>The next step is to extract the <strong>SessionID</strong> from the SOAP response and then generate a Request XML as shown below</p>
<p style="text-align: center"><img class="aligncenter size-medium wp-image-9869" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic8-300x66.png" alt="" width="300" height="66" /></p>
<p>To do this, i have attached a zip file <a href="http://dl.dropbox.com/u/1441622/odiagentcall.zip">here</a> that contains the code for extracting the <strong>sessionID</strong> and converting it into a SOAP Request. This code basically uses the open source DOM4J API. I prefer Java Code instead of using ODIXMLCONCAT &amp; ODIXMLSPLIT as both of them seem to have some known bugs. The snippet of the main code i have written for this conversion is given below</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-9870" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic9.png" alt="" width="464" height="378" /></p>
<p>The code accepts 3 parameters(basically the <strong>runodiagent.bat</strong> file). Input SOAP Response file from the first Web Service Call. BI EE iBot full path that we intend to call. And the output file that will be generated, which will in turn act as a Request XML to the next Web Service Call. All the parameters will be called through the <strong>ODIOSCommand</strong> component as shown below</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-9871" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic10.png" alt="" width="313" height="251" /></p>
<p>Once this file is generated, then this file is passed as an input to the next <strong>ODIInvokeWebService</strong> call as shown below</p>
<p>The final package will look something like this</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-9872" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic11.png" alt="" width="375" height="153" /></p>
<p>On execution we should start getting the alerts right within the Dashboard (or through emails &#8211; whichever is setup in the iBot) after the ETL-ODI execution</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-9873" src="http://www.rittmanmead.com/wp-content/uploads/2012/01/Pic12.png" alt="" width="495" height="227" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2012/01/bi-ee-11-1-1-5-calling-bi-ee-11g-agents-through-oracle-data-integrator-11g/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rittman Mead BI Forum 2012 Call for Papers Now Open &#8211; Closing Date 31st January 2012</title>
		<link>http://www.rittmanmead.com/2012/01/rittman-mead-bi-forum-2012-call-for-papers-now-open-closing-date-31st-january-2012/</link>
		<comments>http://www.rittmanmead.com/2012/01/rittman-mead-bi-forum-2012-call-for-papers-now-open-closing-date-31st-january-2012/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 12:39:38 +0000</pubDate>
		<dc:creator>Mark Rittman</dc:creator>
				<category><![CDATA[Rittman Mead]]></category>
		<category><![CDATA[User Groups & Conferences]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=9821</guid>
		<description><![CDATA[[re-posted in case you missed it when originally posted before Christmas - MR] I&#8217;m pleased to announce the call for papers for the fourth annual Rittman Mead BI Forum, which like last year is running in Brighton, UK and Atlanta, GA in May 2012. Last year&#8217;s event was the best attended ever, with a mix [...]]]></description>
			<content:encoded><![CDATA[<p><em>[re-posted in case you missed it when originally posted before Christmas - MR]<br />
</em><br />
I&#8217;m pleased to announce the <a href="https://docs.google.com/a/rittmanmead.com/spreadsheet/viewform?formkey=dDlaaExzQU56WTdua2JsV1RkeVZnN2c6MA#gid=0">call for papers</a> for the fourth annual Rittman Mead BI Forum, which like last year is running in Brighton, UK and Atlanta, GA in May 2012.</p>
<p>Last year&#8217;s event was the best attended ever, with a mix of technical and project/methodology talks based around OBIEE (Oracle Business Intelligence Enterprise Edition), and technologies that support it such as ODI, Essbase, Oracle OLAP and Exadata. This year, we&#8217;ll of course be covering the new Exalytics product, and we have last year&#8217;s US Best Presenter winner, Kevin McGinley from Accenture, providing the optional Masterclass on the Wednesday before each event.</p>
<p>This year, we&#8217;re opening up the presentation formats a bit, so that as well as the regular one-hour presentations, we&#8217;ll also be inviting presentations in these additional formats:</p>
<p align="center"><img src="http://www.rittmanmead.com/wp-content/uploads/2011/12/biforum.png" alt="" title="biforum" width="642" height="242" class="aligncenter size-full wp-image-9555" /></p>
<ul>
<li>One hour debates, along the lines led by Stewart and myself last year, along topical and controversial topics where the audience will vote at the end &#8211; for example, &#8220;You probably don&#8217;t need Exalytics&#8221;, &#8220;</li>
<li>Ten-minute &#8220;TED&#8221;-style talks, where no slides are allowed and you can speak on your favourite topic in a short, lightning session, and</li>
<li>Ten-minute &#8220;Ignite&#8221;-style talks, where you have 20 slides, each of which automatically advances every thirty seconds</li>
</ul>
<p>Feedback from previous years indicated that sessions that got the audience involved went down the best, and there were also suggestions for shorter, differently-presented sessions. We will be giving free passes to speakers accepted for the one-hour sessions, and 25% discounts for speakers providing the ten minute sessions.</p>
<p>If you&#8217;re wondering what sorts of topics might be of interest to attendees, here&#8217;s some requests and thoughts from delegates from last year&#8217;s events:</p>
<p><strong>Suggestions for Technology-Focused Sessions</strong></p>
<ul>
<li>Integration between ODI and OBIEE (both ways)</li>
<li>OBIEE Performance Tuning &#8211; including case studies</li>
<li>Search, and Unstructured Data</li>
<li>Golden rules for deployments and multi-developer projects</li>
<li>ODI, Essbase and OBIEE working together</li>
<li>Introduction to Endeca</li>
<li>BI Applications topics</li>
<li>OBIEE and ADF: what are the limits ? When is it a must to use ?</li>
<li>OBIEE 11g security &#8211; what works, what doesn&#8217;t, how does it all fit together?</li>
<li>Mobile BI &#8211; including designing dashboards for delivery via Mobile</li>
<li>Multi-tier performance tuning including web tiers, clustering etc</li>
<li>Mapping &#8220;nuts and bolts&#8221;</li>
<li>Knowing/administering/troubleshooting the 11g Weblogic/EM layer and the complexities surrounding that</li>
<li>Options for using OBIEE for real time or near real time operational reporting</li>
<li>Exalytics &#8211; Understanding installation/configuration; how managing the caching if you have over 1 terabyte of data; go over new features, etc.</li>
</ul>
<p><strong>Planning &#038; Methodology<br />
</strong></p>
<ul>
<li>Strategy Maps and Scorecards &#8211; How and Where to Use Them?</li>
<li>How to present information overload for end-users &#8211; how do you convince someone they don&#8217;t need 45 reports?</li>
<li>How effectively and quickly are people able to implement various Oracle BI Applications in real world scenarios? And how are they structuring the project to do so?</li>
<li>Exalytics &#8211; making the business case. What makes a customer choose Exayltics? As of which customer size/complexity/maturity does it make sense?</li>
<li>Cloud Delivery Models</li>
<li>Data Governance Frameworks</li>
<li>Design principles, with regards regards to design, usability, etc.</li>
</ul>
<p>So what are you waiting for? <a href="https://docs.google.com/a/rittmanmead.com/spreadsheet/viewform?formkey=dDlaaExzQU56WTdua2JsV1RkeVZnN2c6MA#gid=0">The abstract submission form is now online</a>, and will close on January 31st 2012, with speakers notified in early February 2012. Get submitting those session abstracts now, and hopefully we&#8217;ll see you in Brighton or Atlanta in 2012!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2012/01/rittman-mead-bi-forum-2012-call-for-papers-now-open-closing-date-31st-january-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scripted OBI 11g Linux startup/shutdown</title>
		<link>http://www.rittmanmead.com/2012/01/scripted-obi-11g-linux-startupshutdown/</link>
		<comments>http://www.rittmanmead.com/2012/01/scripted-obi-11g-linux-startupshutdown/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 16:27:11 +0000</pubDate>
		<dc:creator>Robin Moffatt</dc:creator>
				<category><![CDATA[Application Server]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[shutdown]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=9569</guid>
		<description><![CDATA[OBI 11g ships with a one-click startup option for Windows installations, but not for Linux (*NIX). Windows users get a big shiny Click Here type button, whereas Linux users have to ferret around in the middleware folders trying to remember the paths for Node Manger, Web Logic, Managed Server and finally OPMN each time you [...]]]></description>
			<content:encoded><![CDATA[<p>OBI 11g ships with a one-click startup option for Windows installations, but not for Linux (*NIX). Windows users get a big shiny Click Here type button, whereas Linux users have to ferret around in the middleware folders trying to remember the paths for Node Manger, Web Logic, Managed Server and finally OPMN each time you want to start the stack up and shut it down.</p>
<p align="center"><img src="http://www.rittmanmead.com/wp-content/uploads/2011/12/rm-win01-server.png" alt="" title="rm-win01 (server)" width="195" height="267" class="alignnone size-full wp-image-9572" /></p>
<p>Other than to reenforce the stereotype of the two OSs being easy/difficult to work with respectively, I don&#8217;t know why Oracle didn&#8217;t provide the same script for Linux. The Windows script uses a platform-agnostic, java-based tool called Ant so can easily be made to run on Linux.</p>
<p>The good thing about it using Ant, an industry-standard tool, is that there&#8217;s plenty of documentation on how to use it, and the code is reusable and extensible. Using this ant-based scripting, it handles dependencies and startup order, as well as graceful exit if there&#8217;s a problem, and proper checking for a service being up. </p>
<p>You should always aim to have as few bespoke scripts as possible, and keeping all your configuration in one place. This script achieves that, by having all the heavy lifting in the XML which is reusable across deployments (e.g. dev/test/prod), and the environment-specific configuration in the calling script.</p>
<p>There is a Linux startup/stop script on t&#8217;internet already, but I believe the option below is preferable for a few reasons:</p>
<ul>
<li>The ant-based script is basically that provided by Oracle for Windows, so is in keeping with the product and easier to adapt in future releases</li>
<li>It checks for actual services listening on ports, rather than fixed sleep periods or entries in log files. Log file entries may change with releases, and the script I&#8217;ve seen doesn&#8217;t time out either (so would hang indefinitely if there were a problem)</li>
<li>Being written in Ant it is easy to extend its functionality using existing building-blocks, it avoids having to rewrite logic like checking for a listening port</li>
</ul>
<h2>The Script</h2>
<p>The script is basically that provided by Oracle (on both Windows and Linux installations, just unused in the latter), which you will find in <strong>Oracle_BI1/bifoundation/install/</strong>. With a few tweaks to make it work on Linux, and a bit of improvement, here is a version of the script that you can use and reuse on all your Linux OBI 11g installations. I have improved it to do the following: </p>
<ul>
<li>Include <strong>NodeManager</strong> in the startup, if not a Simple installation.</li>
<li>Automagically determine NodeManager and OPMN <strong>listening ports</strong></li>
<li>Wait for Answers to become available before launching the web browser
<ul>
<li>This replaces the hardcoded sleep period which is often not enough for the services to have finished starting up, causing a 500 Internal Server error in the browser.</li>
</ul>
</li>
</ul>
<p>There are two files, provided in the zip file here: <a href='http://www.rittmanmead.com/wp-content/uploads/2011/12/StartStopServices.zip'>StartStopServices.zip</a><br />
Unzip the files into somewhere convenient on your server, and then do the following: </p>
<ol>
<li>Make the script executable: </p>
<pre class="brush: bash; light: true; title: ; notranslate">chmod u+x StartStopServices.sh</pre>
</li>
<li>Edit the script StartStopServices.sh to provide your environment details:
<pre class="brush: bash; highlight: [2,3]; light: true; title: ; notranslate">
# Change these as necessary:
export MW_HOME=/put/your/mwhome/path/here
export WLSHOST=yourhostname
export WLSADMINPORT=7001
export WLSMGDPORT=9704
</pre>
<ul>
<li>Set <strong>MW_HOME</strong> to the root of your installation, in which you have the folders like &#8220;instances&#8221;, &#8220;OracleBI1&#8243;, &#8220;user_projects&#8221;, etc.
<p align="center"><img src="http://www.rittmanmead.com/wp-content/uploads/2011/12/MW_HOME-e1323967038476.png" alt="" title="MW_HOME" width="600" height="198" class="aligncenter size-full wp-image-9570" /></p>
</li>
<li>Set <strong>WLSHOSTNAME</strong> to your machine&#8217;s hostname</li>
<li><strong>WLSADMINPORT</strong> and <strong>WLSMGDPORT</strong> only need changing if you are using non-default ports of 7001 and 9704 respectively.</li>
</ul>
<p>Everything else in the script should not need changing, unless you have a non-default installation. You shouldn&#8217;t need to change the XML file at all.</li>
</ol>
<p>Now all you need to do is call the script to <strong>startup</strong>: </p>
<pre class="brush: bash; light: true; title: ; notranslate">
./StartStopServices.sh start_all
</pre>
<p>(the start_all is the default, and optional)</p>
<p>And <strong>shutdown</strong>: </p>
<pre class="brush: bash; light: true; title: ; notranslate">
./StartStopServices.sh stop_all
</pre>
<p>The first time that you start your system this way you will be prompted for the username and password, which are subsequently encrypted and saved in boot.properties file so that you don&#8217;t have to supply them each time. </p>
<p>This script was tested on OEL, so ought to work on that and other RHEL flavours. It might need slight tweaking for other *nix platforms.</p>
<h2>You actually want a button to click?</h2>
<p>I would probably argue that if you&#8217;re admining a linux server, you should be comfortable enough with executing a script, but if you really want a button to click like on Windows, then simply create a <strong>Launcher</strong> (right-click on the Desktop) to call the script :
<p align="center"><img src="http://www.rittmanmead.com/wp-content/uploads/2011/12/rm-oel02-3.png" alt="" title="rm-oel02-3" width="489" height="275" class="alignnone size-full wp-image-9580" /></p>
<p>Lift the icon from a Windows installation and set that too, and you&#8217;ll end up with a nice button like this: </p>
<p align="center"><img src="http://www.rittmanmead.com/wp-content/uploads/2011/12/rm-oel02-2-1.png" alt="" title="rm-oel02-2-1" width="414" height="198" class="alignnone size-full wp-image-9579" /></p>
<p>Watch out that once you close the window, you close all of the spawned processes, i.e. you&#8217;ll shut down OBIEE :-)</p>
<p>(This is on OEL 5, YMMV on other flavours of Linux)</p>
<h2>Additional functionality</h2>
<p>This script can also do things like check for RCU connectivity at startup (and even start the DB, if you want it to), but to keep it installation-independent I have not included that version here.</p>
<p>It could also be easily amended to reuse the service check sections to support a <strong>service_status</strong> call, which would report back on all of the listening ports and BI components. </p>
<h2>Tidbit for Windows users</h2>
<p>If you are on Windows, and you want the <strong>Start BI Services</strong> script to wait until Answers is available (and not give you a 500 Internal Server error at first), then copy <a href='http://www.rittmanmead.com/wp-content/uploads/2011/12/StartStopServices.txt'>this version of StartStopServices.xml</a> (rename it after download to StartStopServices.xml) into the folder <strong>instances\instance1\bifoundation\OracleBIApplication\coreapplication</strong>. Make a backup of the file before you overwrite it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2012/01/scripted-obi-11g-linux-startupshutdown/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Looking Back at 2011, Looking forward to 2012</title>
		<link>http://www.rittmanmead.com/2011/12/looking-back-at-2011-looking-forward-to-2012/</link>
		<comments>http://www.rittmanmead.com/2011/12/looking-back-at-2011-looking-forward-to-2012/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 13:37:20 +0000</pubDate>
		<dc:creator>Mark Rittman</dc:creator>
				<category><![CDATA[Oracle BI Apps]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>
		<category><![CDATA[Oracle Data Integrator]]></category>
		<category><![CDATA[Oracle EPM]]></category>
		<category><![CDATA[Rittman Mead]]></category>
		<category><![CDATA[User Groups & Conferences]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=9772</guid>
		<description><![CDATA[Well it&#8217;s the last working day now before the end of 2011, and so I thought it&#8217;d be interesting to take a look back at the events of 2011, and a bit of think-forward as to what&#8217;s on the horizon for 2012. As usual, it&#8217;s been a very interesting and fast-moving 2011, with some new [...]]]></description>
			<content:encoded><![CDATA[<p>Well it&#8217;s the last working day now before the end of 2011, and so I thought it&#8217;d be interesting to take a look back at the events of 2011, and a bit of think-forward as to what&#8217;s on the horizon for 2012. As usual, it&#8217;s been a very interesting and fast-moving 2011, with some new OBIEE releases, exciting trends in the industry, and lots of events all around the world.</p>
<p>From an OBIEE perspective, we started 2011 with the 11.1.1.3 release on general availability, and the <a href="http://www.rittmanmead.com/2011/05/whats-new-in-obiee-11-1-1-5-ps1/">11.1.1.5 release made available</a> about mid-way through the year. In hindsight, 11.1.1.3 was a bit of an &#8220;early adopter&#8221; release, with all the main functionality working but a few hassles around installation, upgrades and &#8220;fit and finish&#8221; issues. Many of our customers and partners adopted OBIEE 11g at this point, but quite a few held back for 11.1.1.5 which is generally considered a &#8220;fully-working&#8221; version (albeit with the usual bugs, issues etc that you get with any piece of enterprise software). Looking back at 2011, probably the biggest drivers for 11g adoption were Mobile (particularly the iPad client), the new Answers and Dashboards UI, and <a href="http://www.rittmanmead.com/2011/10/oow2011-obiee-11g-systems-management-best-practices/">management via Enterprise Manager and WLST scripting</a>. Without much fanfare, the Action Framework has also been widely adopted, but more for adding &#8220;missing functionality&#8221; such as Essbase writeback rather than integration with web services and workflows. Something I hear is going down well but don&#8217;t see much evidence in the field is Scorecard &#038; Strategy Management, though I would expect to see more of this as Oracle push &#8220;Oracle BI Foundation&#8221; as the base license deal rather than &#8220;Oracle Business Intelligence Enterprise Edition&#8221;, as this will remove the price premium for scorecards (and mobile) and remove one of the hurdles for adoption.</p>
<p>As well as OBIEE 11g releases, we saw the 11.1.1.5 release of Oracle Data Integrator (review <a href="http://www.rittmanmead.com/2011/06/odi-11g-new-mapping-and-interface-features-part-1/">here</a>, <a href="http://www.rittmanmead.com/2011/06/odi-11g-new-mapping-and-interface-features-part-2-load-plans/">here</a> and <a href="http://www.rittmanmead.com/2011/06/odi-11g-new-mapping-and-interface-features-part-3-obiee-lineage/">here</a>), and confirmation that <a href="http://www.rittmanmead.com/2011/10/oracle-warehouse-builder-and-data-integrator/">OWB is now at the end-of-the-line</a>, along with Discoverer, with only maintenance releases coming along in future. Almost every new ETL project I see now is based on ODI (rather than OWB) so in the field, this was a de-facto change anyway, though it&#8217;ll be interesting too see what options emerge for OWB customers looking to migrate to ODI &#8211; keep an eye on this blog as we&#8217;ll be running a seminar in London in February on just this topic.</p>
<p>2011 was also the year we ran our third-ever <a href="http://www.rittmanmead.com/biforum2011/">Rittman Mead BI Forum</a>, running again in <a href="http://www.rittmanmead.com/2011/05/rittman-mead-bi-forum-2011-brighton-atlanta-wrap-up/">Brighton and also this time, in Atlanta</a> in America. I was very pleased to be joined by Tony Heljula for the one-day Masterclass before each event, where we talked about OBIEE 11g topics such as architecture, data modeling, SOA integration and Spatial Integration; Tony&#8217;s a great speaker and it was fun to collaborate on the topics and deliver them together over the two locations. Next year, Kevin McGinley from Accenture is delivering the masterclasses, and he&#8217;ll be known to our US readers as winner of the &#8220;Best Speaker&#8221; award at last year&#8217;s US BI Forum, and &#8220;Best Paper&#8221; award at ODTUG KScope&#8217;11. The call for papers for next year&#8217;s BI Forum is now open, and running until the end of January, so if you want to propose a session for either the UK, US or both events, take a look at the <a href="http://www.rittmanmead.com/2011/12/rittman-mead-bi-forum-2012-brighton-atlanta-may-2012-call-for-papers-now-open/">announcement page now!</a></p>
<p>Rittman Mead were certainly out on our travels in 2011, with our <a href="http://www.rittmanmead.com/2011/03/training-days-20102011-on-the-final-leg/">OBIEE 11g Training Days</a> events running in the first half of the year in Atlanta (twice), Bangalore (Twice), London, Johnannesburg and Brussels, and our team speaking at events such as <a href="http://www.rittmanmead.com/2011/04/rittman-mead-at-collaborate11-orlando-roundup-and-presentations/">Collaborate&#8217;11</a> in Orlando, <a href="http://www.rittmanmead.com/2011/12/ukoug-conference-2011-and-aioug-sangam11-conference-bangalore/">UKOUG 2011</a> in Birmingham, <a href="http://www.rittmanmead.com/2011/06/rittman-mead-at-odtug-kscope-2011/">ODTUG KScope&#8217;11</a> in Long Beach, <a href="http://www.rittmanmead.com/2011/07/a-bi-developers-guide-to-oracle-openworld-2011/">Oracle Open World</a> in San Francisco, <a href="http://www.rittmanmead.com/2011/11/biepm-conference-a-success/">ODTUG BI/EPM Symposium</a> in Sydney, <a href="http://www.rittmanmead.com/2011/12/ukoug-conference-2011-and-aioug-sangam11-conference-bangalore/">AIOUG Sangam&#8217;11</a> in Bangalore, DW Global Leaders&#8217; events in <a href="http://www.rittmanmead.com/2011/06/data-warehouse-global-leaders-forum-athens/">Athens</a>, Rome and San Francisco, and plenty of others I&#8217;ve probably forgotten. </p>
<p align="center"><img src="http://www.rittmanmead.com/wp-content/uploads/2011/03/TD-Collage1-1024x768.jpg" width=550 alt="" /></a></p>
<p>We encourage all of our staff to speak at conferences and our policy is that, if you get a paper accepted anywhere, we&#8217;ll give you the time-off to speak and cover your expenses. Thanks also to the <a href="http://www.oracle.com/technetwork/community/oracle-ace/index.html">Oracle ACE and Oracle ACE Director Program</a> and to Vikki, Lillian and Justin at the Oracle Technology Network, who&#8217;ve funded a lot of my speaking engagements on behalf of the ACE Director program, and who provide complementary Open World attendee passes for <a href="http://apex.oracle.com/pls/otn/f?p=19297:4:3198395476152947::NO:4:P4_ID:30">myself as an ACE Director</a> and our Oracle ACEs, <a href="http://apex.oracle.com/pls/otn/f?p=19297:4:3198395476152947::NO:4:P4_ID:4360">Stewart Bryson</a> and <a href="http://apex.oracle.com/pls/otn/f?p=19297:4:3198395476152947::NO:4:P4_ID:2040">Venkatakrishnan J</a>.</p>
<p>It&#8217;s also been a year where many of our staff have started to gain a name for themselves as specialists in certain areas. Stewart Bryson, for example, has been speaking and writing all year about <a href="http://www.rittmanmead.com/2011/05/real-time-bi-an-introduction/">real-time BI</a>, and the new development paradigm that you can adopt when combining <a href="http://www.rittmanmead.com/2011/12/agile-data-warehousing-with-exadata-and-obiee-introduction/">Exadata, OBIEE and Agile methodologies</a>, whilst Venkat has been building on his reputation as the <a href="http://www.rittmanmead.com/author/venkatakrishnan-j/">&#8220;go-to&#8221; expert for OBIEE and Hyperion Integration</a>. Borkur has spoken at several conferences on <a href="http://www.google.co.uk/url?sa=t&#038;rct=j&#038;q=borkur%20goldengate&#038;source=web&#038;cd=3&#038;ved=0CCoQFjAC&#038;url=http%3A%2F%2Fwww.rittmanmead.com%2Ffiles%2Fukoug2011_borkur_gg.pdf&#038;ei=Ubv9Tq_fJpOv8QPWpsC7AQ&#038;usg=AFQjCNENQNTz16F9Ame4JB7XREQw_2k5Ww">Oracle Golden Gate</a>, whilst Mike Vickers is getting a name for himself as a speaker on <a href="http://www.rittmanmead.com/author/mike-vickers/">BI methodologies</a>. Behind all these experts though is our team of BI, DW and EPM enthusiasts, taking this message and their own particular skill-sets to our customers around the world, sharing what we&#8217;ve learned and hopefully &#8220;raising the bar&#8221; for customer implementations.</p>
<p>For Rittman Mead as a company, it&#8217;s been an exciting year with lots of growth. We&#8217;ve now got offices in the UK, <a href="http://www.rittmanmead.com/america/">US</a>, <a href="http://www.rittmanmead.com/india/">India</a>,  Brussels and <a href="http://www.rittmanmead.com/oceania/">Australia</a>, new training centres in Brighton and Bangalore, and we&#8217;ve been winning awards such as the <a href="http://www.ukoug.org/our-partners/ukoug-pya/2011-winners/">UKOUG BI Partner of the Year award 2011/12</a>. Thanks again to all of our customers, partners and staff, and I&#8217;m looking forward to getting out again and visiting our various country offices in 2012.</p>
<p>So what about 2012? What are we likely to see, both from Oracle, from the industry in general, and from Rittman Mead? Well, from an OBIEE perspective, we&#8217;ll most likely see the 11.1.1.6 release fairly early in 2012, with probably a minor release (11.1.1.6.1?) sometime later in 2012, going on how Oracle do OBIEE releases at the moment (one major, one minor, each year). Going on from 11.1.1.6, there&#8217;s some general themes that Oracle are working to with OBIEE:</p>
<ul>
<li><strong>Making Mobile a first-class client</strong> &#8211; perhaps adding support for Android, re-vamping the UI, maybe making it possible to author reports from mobile, maybe even re-thinking the UI so it&#8217;s not just a dashboard on an iPad, but maybe delivering BI in different ways that are perhaps more suitable to a mobile device</li>
<li><strong>Developer productivity</strong> &#8211; making it simpler/quicker to develop ETL from a logical model, and to process customizations in source systems, plus better support for team working, version control, more granular metadata stored in middleware repositories, and hopefully running end-to-end from ETL through to the front-end reports</li>
<li><strong>Appliances</strong> &#8211; Exalytics will be out in early 2012, combining hardware + software into a &#8220;it just works&#8221; appliance that also harnesses the &#8220;Exa-&#8221; engineered systems approach.</li>
<li><strong>Building out BI innovation</strong> &#8211; 11g so far has been about Fusion Middleware integration, and supporting the Fusion Apps. Hopefully we&#8217;ll see more pure-BI innovation in future releases, to enable OBIEE to take on some of the specialist, niche vendors such as Qlikview and Tibco (Spotfire) whilst providing enterprise features that are Oracle&#8217;s traditional strength</li>
<li><strong>Steady improvement in Hyperion Integration</strong> &#8211; I think it&#8217;s fair to say that Essbase/Hyperion integration for OBIEE is still a &#8220;work in progress&#8221; so we&#8217;re looking forward to seeing improved Essbase integration, metadata access support for Planning, integration of Essbase/HFM with BI Apps, and some replacement solution for integrating the OBIEE dashboard with Hyperion Workspace</li>
</ul>
<p>There are also some general industry trends that we&#8217;re also very excited about for 2012. <a href="http://www.rittmanmead.com/2011/07/real-time-bi-edw-with-a-real-time-component/">Real-Time BI</a> (in it&#8217;s many forms) is becoming more and more &#8220;the expected norm&#8221;, but there are lots of challenges in terms of how we do data movement/ETL, how we present a consistent set of numbers to users, how we may meaningful decisions based on data that&#8217;s come in a few seconds ago, and how do we present what can potentially be large amounts of sensor-driven, machine-captured &#8220;<a href="http://www.oracle.com/us/technologies/big-data/index.html">big data</a>&#8221; to users without them becoming overwhelmed by data?</p>
<p>Unstructured data will most certainly be something Oracle will be talking about a lot in 2012 following the <a href="http://www.oracle.com/us/corporate/press/517791">acquisition of Endeca</a>, with my prediction being that a future version of the OBIEE 11g BI Server will support Endeca as a data source (but how will Endeca&#8217;s data be modelled as a star schema?), and Endeca Latitude front-end features being gradually incorporated into OBIEE 11g&#8217;s front-end, in the same way that Hyperion WebAnalysis and Oracle Discoverer features have made their way into the 11g release. I&#8217;m not sure Endeca / Unstructured data will ever be &#8220;mass market&#8221;, but it&#8217;s an obvious acquisition for Oracle and I&#8217;ll be looking forward to seeing unstructured data features making their way into Oracle&#8217;s BI platform.</p>
<p>Another area we&#8217;ll be focusing on in 2012 will be in-memory BI. <a href="http://www.rittmanmead.com/2011/10/oow2011-oracle-exalytics-intelligence-machine/">Exalytics</a> is just around the corner, and the new version of TimesTen that it&#8217;ll ship with, plus the in-memory version of Essbase, should make split-second, lightning-quick analysis of large sets of data a possibility. The biggest barrier I see to user adoption (well, apart from data quality) is slow queries on dashboards, so Exalytics&#8217;s in-memory databases plus the 1TB of RAM it&#8217;ll ship with will be definitely welcome. But how well will in-memory combine with real-time, and how will the TimesTen in-memory database perform compared to Exadata, OLAP + materialized views, or even the file-based results cache that OBIEE already comes with? Check out our presentations at <a href="http://www.rmoug.org/training.htm">RMOUG Training Days</a> in February, and the <a href="http://www.hotsos.com/sym12.html">Hotsos Symposium</a> in March, for the results of our testing.</p>
<p align="center"><img src="http://www.rittmanmead.com/wp-content/uploads/2011/10/exalytics3.png" alt="" /></p>
<p>The BI Apps is also an area that&#8217;s due for a lot of changes in 2012. BI Apps 11g is already out, but you&#8217;d be forgiven for not noticing, as up until recently it&#8217;s been on controlled release, and it still only covers the Fusion Applications as a data source, with support for Apps Unlimited (EBS, Siebel, PSFT etc) coming in the next 12 months or so. <a href="http://www.rittmanmead.com/2011/10/oow2011-oracle-bi-applications-futures/">We should also start to see some innovation in the product itself</a>, with closer integration with OBIEE in terms of pushing through customizations, integration with Essbase and HFM, and general reduction in the workload in terms of upgrades, data loading and team development. Probably for most existing BI Apps 7.9.x + Informatica customers, not much will be happening in the next 12 months, but keep an eye on product announcements and expect lots of activity in 2013.</p>
<p>Cloud-based BI is a particular interest of the company and in particular Jon Mead who <a href="http://www.rittmanmead.com/files/oow2011_mead_cloud_analytics.pdf">presented on the topic</a> at Open World last September, based on trends towards cloud-based applications in the industry and demand from customers to simplify their systems and reduce their costs. We&#8217;ll be introducing an <a href="http://www.rittmanmead.com/exalytics/">&#8220;Exalytics in the Cloud&#8221;</a> option in 2012, offering customers the ability to access our cloud-based Exalytics machine and replicate, via GoldenGate, their data into our hosted, secure environment and have us manage their BI system. As always, the challenges with BI in the cloud are firstly, replicating large amounts of data securely into the cloud, and secondly, trusting a vendor to manage your data for you, but ETL technology and bandwidth are making the first less of an issue, and for the second, a proper &#8220;best practices&#8221;, always-patched, 24&#215;7 monitored remote system is often more secure and better managed than something in-house. Look out for lots on this from us over the next 12 months.</p>
<p>We&#8217;ll be speaking at lots of events in 2012, including <a href="http://www.rmoug.org/training.htm">RMOUG Training Days</a> in Denver in February, <a href="http://www.hotsos.com/sym12.html">Hotsos Symposium</a> in Dallas in March, <a href="http://collaborate12.com/">Collaborate&#8217;12</a> in Las Vegas in April and <a href="http://kscope12.com/">ODTUG KScope&#8217;12</a> in San Antonio in June. Keep an eye on our <a href="http://www.rittmanmead.com/events/">Events</a> page for dates as they are announced, and also on our <a href="http://www.rittmanmead.com/training/schedule">Public Scheduled Training Events</a> page for details of OBIEE 11g, ODI 11g and BI Apps 7.9.6.3 courses running regularly at our training centres in Brighton, Atlanta, Bangalore and Melbourne.</p>
<p>Finally &#8211; at last, 2012 will be the year that my book is released. I&#8217;ve had some excellent support and co-operation from the Oracle Product Development team over the past few months, and so the book will be bang-up-to-date when it comes out, covering 11.1.1.6.x and Exalytics and including all the new visualizations, team development features, security capabilities, scorecard features, and data source support that&#8217;ll be around in the second half of 2012 when the book comes out. I&#8217;ve now written 12 of the 15 chapters, writing the Answers + Dashboards chapter over Christmas, and I&#8217;ve just got Security, Clustering and High Availability and Scorecards &#038; KPIs to write, plus all of the technical edits from Mike Durran and Venkatakrishnan J to incorporate, plus adding new features introduced in 11.1.1.6 since the original chapters were written against 11.1.1.3 and 11.1.1.5. Expect to see the book on the shelves at the Oracle Open World bookstore, and a return to more regular blogging from me once I&#8217;ve finished the book and all the NDAs are lifted!</p>
<p>So that&#8217;s it from me now &#8211; Happy New Year to you all from Rittman Mead in the UK, Europe, USA, India and Australia, and see you all again hopefully in early 2012.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2011/12/looking-back-at-2011-looking-forward-to-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Data Warehousing with Exadata and OBIEE: Puzzle Pieces</title>
		<link>http://www.rittmanmead.com/2011/12/agile-exadata-obiee-puzzle-pieces/</link>
		<comments>http://www.rittmanmead.com/2011/12/agile-exadata-obiee-puzzle-pieces/#comments</comments>
		<pubDate>Wed, 28 Dec 2011 19:39:56 +0000</pubDate>
		<dc:creator>Stewart Bryson</dc:creator>
				<category><![CDATA[Data Warehousing]]></category>
		<category><![CDATA[Dimensional Modelling]]></category>
		<category><![CDATA[Exadata]]></category>
		<category><![CDATA[Methodology]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=9637</guid>
		<description><![CDATA[In the previous post, I laid the groundwork for describing Extreme BI: a combination of Exadata and OBIEE delivered with an Agile spirit. I discussed that the usual approach to Agile data warehousing is not Agile at all due to the violation of it&#8217;s main principle: working software delivered iteratively. If you haven&#8217;t already deduced [...]]]></description>
			<content:encoded><![CDATA[<p>In the <a title="Agile Data Warehousing with Exadata and OBIEE: Introduction" href="http://www.rittmanmead.com/2011/12/agile-data-warehousing-with-exadata-and-obiee-introduction/" target="_blank">previous post</a>, I laid the groundwork for describing Extreme BI: a combination of Exadata and OBIEE delivered with an Agile spirit. I discussed that the usual approach to Agile data warehousing is not Agile at all due to the violation of it&#8217;s main principle: working software delivered iteratively.</p>
<p>If you haven&#8217;t already deduced from my first post &#8212; or if you haven&#8217;t already seen me speak on this topic &#8212; what I am recommending is bypassing, either temporarily or permanently, the inhibitors specific to data warehousing projects which limit our ability to deliver working software quickly. Specifically, I&#8217;m recommending that we wait to build and populate physical star schemas until a later phase, if at all. Remember the two reasons that we build dimensional models: model simplicity and performance. With our Extreme BI solution, we have tools to counter both of those reasons. We have OBIEE 11g, with a rich metadata layer that presents our underlying data model, even if it is transactional, as a star schema to the end user. This removes our dependency on a simplistic physical model to provide a simplistic logical model to end users. We also have Exadata, which delivers world-class performance against any type of model, and can bridge the performance gap afforded by star schemas. With these tools at our disposal, we can postpone the long process of building dimensional models, at least for the first few iterations. This is the only way to get working software in front of the end user in a single iteration, and, as I will argue, this is the best way to collaborate with an end user and deliver the content they are expecting.</p>
<p>Of the puzzle pieces we need to deliver this model, the first is the <a href="http://www.rittmanmead.com/wp-content/uploads/2011/12/058925.pdf" target="_blank">Oracle Next-Generation Reference DW Architecture</a> (we need an acronym for that), which Mark has already written about in-depth <a title="Drilling Down in the Oracle Next-Generation Reference DW Architecture" href="http://www.rittmanmead.com/2009/07/drilling-down-in-the-oracle-next-generation-reference-dw-architecture/" target="_blank">here</a>. As you browse through this post, pay special attention to his formulation of the foundation layer, which is the most important layer for delivering Extreme BI.</p>
<div id="attachment_9672" class="wp-caption aligncenter" style="width: 673px"><a href="http://www.rittmanmead.com/wp-content/uploads/2011/12/next-gen.png"><img class="size-large wp-image-9672    " src="http://www.rittmanmead.com/wp-content/uploads/2011/12/next-gen-1024x627.png" alt="" width="663" height="407" /></a><p class="wp-caption-text">Oracle Next-Generation Reference DW Architecture</p></div>
<h2>Foundation Layer</h2>
<p>This is our &#8220;process-neutral&#8221; layer, which means simply that it isn&#8217;t imbued with requirements about what users want and how they want it. Instead, the foundation layer has one job and one job only: tracking what happened in our source systems. Typically, the foundation layer logical model looks identical to the source systems, except that we have a few additional metadata columns on each record such as commit timestamps and Oracle Database system change numbers (SCN&#8217;s). There are other, more complex solutions for modeling the foundation layer when the 3NF from the source system or systems is not sufficient, such as <a title="Data Vault Modeling" href="http://en.wikipedia.org/wiki/Data_Vault_Modeling" target="_blank">data vault</a>. Our foundation layer is generally &#8220;insert-only&#8221;, meaning we track all history so that we are insulated from changing user requirements in the near and distant futures.</p>
<p><strong>UPDATE: </strong> Kent Graziano, a major data vault evangelist, has started <a title="Oracle Data Warrior" href="http://kentgraziano.com/" target="_blank">blogging</a>. Perhaps with some pressure from the public, we could &#8220;encourage&#8221; him to blog on what data vault would look like in a standard foundation layer.</p>
<h2>Capturing Change</h2>
<p>Also required for delivering Extreme BI is a process for capturing change from the source systems and rapidly applying it to the foundation layer, which I described briefly in one of my posts on <a title="Real-time BI: An Introduction" href="http://www.rittmanmead.com/2011/05/real-time-bi-an-introduction/" target="_blank">real-time data warehousing</a>. We have a bit of a tug-of-war at this point between Oracle Streams and Oracle GoldenGate. GoldenGate is the stated platform of the future because it’s a simple, flexible, powerful and resilient replication technology. However, it does not yet have powerful change data capture functionality specific to data warehouses, such as easy subscriptions to raw changed data, or support for multiple subscription groups. You can, in general, work around these limitations using the INSERTALLRECORDS parameter and some custom code (perhaps fodder for a future blog post). Regardless of the technology, Extreme BI requires a process for capturing and applying source system changes quickly and efficiently to the foundation layer on the Exadata Database Machine.</p>
<h2>Extreme Performance</h2>
<p>Although I&#8217;ll drill into more detail in the next post, the reason we need Extreme Performance is to offset the performance gains we usually get from star schemas, since we won&#8217;t be building those, at least not in the initial iterations. Although Rittman Mead has deployed a variant of this methodology sans Exadata using a powerful Oracle Database RAC instead, there is no substitute for Exadata. Although the hardware on the Database Machine is superb, it&#8217;s really the software that is a game-changer. The most extraordinary features include <a title="Smart Scans Meet Storage Indexes" href="http://www.oracle.com/technetwork/issue-archive/2011/11-may/o31exadata-354069.html" target="_blank">smart scan and storage indexes</a>, as well as hybrid columnar compression, which Mark talks about <a title="Hybrid Columnar Compression in Oracle Exadata v2" href="http://www.rittmanmead.com/2010/01/hybrid-columnar-compression-in-oracle-exadata-v2/" target="_blank">here</a> and references an article by Arup Nanda found <a title="Compressing Columns" href="http://www.oracle.com/technetwork/issue-archive/2010/10-jan/o10compression-082302.html" target="_blank">here</a>. For years now, with standard Oracle data warehouses, we&#8217;ve pushed the architecture to it&#8217;s limits trying to reduce IO contention at the cost of CPU utilization, using database features such as partitioning, parallel query and basic block compression. But Exadata Storage can eliminate the IO boogeyman using combinations of these standard features plus the Exadata-only features to elevate the query performance against 3NF schemas on par with traditional star schemas and beyond.</p>
<p style="text-align: center"><a href="http://www.rittmanmead.com/wp-content/uploads/2011/12/Terabytes-to-Gigabytes.png"><img class="aligncenter size-full wp-image-9739" src="http://www.rittmanmead.com/wp-content/uploads/2011/12/Terabytes-to-Gigabytes.png" alt="" width="617" height="352" /></a></p>
<h2>Extreme Metadata</h2>
<p>Extreme performance is only half the battle&#8230; we also need Extreme Metadata to provide us the proper level of abstraction so that report and dashboard developers still have a simplistic model to report against. This is what OBIEE 11g brings to the table. We have also delivered a variant of this methodology without OBIEE, using Cognos instead, which has a metadata layer called <a title="Framework Manager" href="http://www.ironsidegroup.com/2010/07/08/best-practices-in-cognos-8-framework-manager-model-design/" target="_blank">Framework Manager</a>. As with Exadata, the BI Server has no equal in the metadata department, so my advice&#8230; don&#8217;t substitute ingredients.</p>
<p>Consider, for a moment, the evolution of dimensional modeling in deploying a data warehouse. Not too long ago, we had to solve most data warehousing issues with the logical model because BI tools were simplistic. Generally&#8230; there was no abstraction of the physical into the logical, unless you categorize the renaming of columns as abstraction. As these tools evolved, we often found ourselves with a choice: solve some user need in the logical model, or solve it with the feature set of the BI tool. The use of aggregation in data warehousing is a perfect example of this evolution. Designing aggregate tables used to be just another part of the logical modeling exercise, and were generally represented in the published data model for the EDW. But now, building aggregates is more of a technical implementation than a logical one, as either the BI Server or the Oracle Database can handle the transparent navigation to aggregate tables.</p>
<p>The metadata that OBIEE provides adds two necessary features for Agile delivery. First, we are able to report against complex transactional schemas, but still expose those schemas as simplified dimensional models. This allows us to bypass the complex ETL process at least initially so that we can get new subject areas into the users hands in a single iteration. But OBIEE&#8217;s capability to map multiple Logical Table Sources (LTS&#8217;s) for the same logical table makes it easy to modify &#8212; or &#8220;remap&#8221; &#8212; the source of our logical tables over time. So, in later iterations, if we decide that it&#8217;s necessary to embark upon complex ETL processes to complete user stories, we can do this in the metadata layer without affecting our reports and dashboards, or changing the logical model that report developers are used to seeing.</p>
<div id="attachment_9754" class="wp-caption aligncenter" style="width: 612px"><a href="http://www.rittmanmead.com/wp-content/uploads/2011/12/semantic-model.031.png"><img class="size-full wp-image-9754 " src="http://www.rittmanmead.com/wp-content/uploads/2011/12/semantic-model.031.png" alt="" width="602" height="378" /></a><p class="wp-caption-text">Flow of Data Through the Three-Layer Semantic Model</p></div>
<h2>More to Come&#8230;</h2>
<p>In the next post, I&#8217;ll describe what I call the Model-Driven Iteration, where we use OBIEE against the foundation layer to expose new subject areas in a single iteration. After that, I&#8217;ll describe ETL Iterations, where we transform a portion of our model iteratively using ETL tools such as ODI, OWB or Informatica. Finally, I&#8217;ll describe what I call Combined Iterations, where both Model-Driven activity and ETL activity are going on at the same time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2011/12/agile-exadata-obiee-puzzle-pieces/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

