<?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>Applied dimensionality &#187; BI&amp;CPM</title>
	<atom:link href="http://ykud.com/blog/category/bicpm/feed" rel="self" type="application/rss+xml" />
	<link>http://ykud.com/blog</link>
	<description></description>
	<lastBuildDate>Mon, 30 Apr 2012 06:10:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Oracle Essbase and Oracle BI 11</title>
		<link>http://ykud.com/blog/bicpm/oracle/oracle-essbase-and-oracle-bi-11</link>
		<comments>http://ykud.com/blog/bicpm/oracle/oracle-essbase-and-oracle-bi-11#comments</comments>
		<pubDate>Thu, 23 Jun 2011 07:07:57 +0000</pubDate>
		<dc:creator>ykud</dc:creator>
				<category><![CDATA[essbase]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://ykud.com/blog/?p=609</guid>
		<description><![CDATA[Just in case you missed it &#8212; read this two posts by Mark Rittman (OBIEE 11g for Hyperion Users – Are We There Yet?, Incremental Essbase Metadata Imports Now Possible with OBIEE 11g) on the oh-so painful topic of Essbase-BI integration. I participated in some projects with this combination a couple of  years ago (when [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ykud.com/blog/wp-content/uploads/2011/06/sizif.jpg"><img class="alignleft size-thumbnail wp-image-611" title="sizif" src="http://ykud.com/blog/wp-content/uploads/2011/06/sizif-150x150.jpg" alt="" width="150" height="150" /></a>Just in case you missed it &#8212; read this two posts by Mark Rittman (<a href="http://www.rittmanmead.com/2011/06/obiee-11g-for-hyperion-users-are-we-there-yet/">OBIEE 11g for Hyperion Users – Are We There Yet?</a>, <a href="http://www.rittmanmead.com/2011/06/incremental-essbase-metadata-imports-now-possible-with-obiee-11g/">Incremental Essbase Metadata Imports Now Possible with OBIEE 11g</a>) on the oh-so painful topic of Essbase-BI integration. I participated in some projects with this combination a couple of  years ago (when BI 10g was the only option) and this experience left me very confused. Reading Mark&#8217;s cover-up for 11g &#8212; it seems a lot has changed, but still not enough (</p>
<p>Both Oracle BI and Essbase are totally great tools, but this 3 (or even 4) year long integration story gives us a couple interesting points to think about.</p>
<ol>
<li><strong>Efficient MDX-generation is hard</strong>. 50+ MDX queries for a single BI 11g report are a real showstopper, since you can kill even such a mammoth as Essbsase with such load. Moreover, such query patterns (1 query for a couple of cells) negate Essbase caching and calculation efficiency. So almost all Oracle BI reports on Essbase I&#8217;ve encountered are handwritten MDX, tied to BI report by using Evaluate functions. And that&#8217;s a thing everyone should avoid.</li>
<li><strong>Managing OLAP metadata in relational repository is hard</strong>. When you&#8217;re trying to incorporate both conventional table structures and flatten OLAP dimensions in the same wire-model, you get cut by torn strings. Incremental OLAP model updates are very hard, since you have to preserve user changes and yet to &#8221;find out what&#8217;s new&#8221;.</li>
</ol>
<p>So everyone using Oracle BI + Essbase I&#8217;ve talked to end up using scheme like this:</p>
<ul>
<li>Use some tool for rapid OLAP data exploration (Excel Add-In, Visual Explorer)</li>
<li>After some query layout is formally accepted &#8212; molten it in concrete by adding handwritten MDX for Oracle BI report</li>
</ul>
<p>Given that in this OLAP + RDBMS BI scheme there&#8217;s also a problem of security settings synchronization (no built-in integration for this as well), introducing OLAP in BI system is always a big decision.</p>
<p>I may be overly pessimistic, but given the rate of RDBMS adapting for analytic purposes (<a href="http://ykud.com/blog/cognos/aggregate-awareness-and-cognos-bi">aggregate awareness</a>, partitioning, MPP-architecture, compression, columnar storage) and BI tools complexities when working with OLAP, we might witness slow decrease of  OLAP engines usage for reporting (whereas in areas like planning  OLAP is still unbeatable).</p>
<p>To cover both sides of the story I&#8217;m aware of &#8212; I&#8217;ll write about the way Cognos works with OLAP engines in next post.</p>
]]></content:encoded>
			<wfw:commentRss>http://ykud.com/blog/bicpm/oracle/oracle-essbase-and-oracle-bi-11/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BI&amp;DWH Booklist</title>
		<link>http://ykud.com/blog/bicpm/bidwh-booklist</link>
		<comments>http://ykud.com/blog/bicpm/bidwh-booklist#comments</comments>
		<pubDate>Fri, 11 Feb 2011 01:36:27 +0000</pubDate>
		<dc:creator>ykud</dc:creator>
				<category><![CDATA[BI&CPM]]></category>

		<guid isPermaLink="false">http://ykud.com/blog/?p=493</guid>
		<description><![CDATA[More time I spend doing BI\DWH projects, I become more aware that such projects a totally a &#8216;craft&#8216;, as my professor once said. And this &#8216;craft&#8217; has many different aspects in it, each having a number of of very good texts. telling you all you need to know to avoid simple mistakes and deliver predictable [...]]]></description>
			<content:encoded><![CDATA[<div>More time I spend doing BI\DWH projects, I become more aware that such projects a totally a &#8216;<a href="http://feedproxy.google.com/~r/typepad/sethsmainblog/~3/xrFdy-NsB_s/the-new-craftsmanship.html">craft</a>&#8216;, as my professor once said. And this &#8216;craft&#8217; has many different aspects in it, each having a number of of very good texts. telling you all you need to know to avoid simple mistakes and deliver predictable results. But I encounter a very small number people who read even half of these books. Maybe it&#8217;s the ease of &#8216;bicycle invention&#8217;, maybe it&#8217;s boredom of reading about others mistakes, instead of earning your own scars. So it&#8217;s another &#8216;book-list&#8217; of texts that make up a competent BI\DWH professional.</div>
<div>I&#8217;m trying to split it up into section of interest.</div>
<div><div id='toc' class='post-493'><div id='toc_title'></div>
<ul><li><a href="#DWH-Classic-texts">DWH Classic texts</a></li>
<li><a href="#Data-Modeling">Data Modeling.</a></li>
<li><a href="#Achieving-DWH-performance">Achieving DWH performance</a></li>
<li><a href="#Data-Quality">Data Quality</a></li>
<li><a href="#Data-Visualization-amp-Report-Design">Data Visualization &amp; Report Design</a></li>
<li><a href="#Product-documentation">Product documentation</a></li>
</ul>
</div></div>
<h3 id='DWH-Classic-texts'>DWH Classic texts</h3>
<div>There is no way you can do DWH modeling or ETL design, or even reports developing without reading at least some of <a href="http://www.amazon.com/Kimballs-Data-Warehouse-Toolkit-Classics/dp/0470479574/ref=sr_1_2?ie=UTF8&amp;qid=1297261956&amp;sr=8-2">Kimball Classics</a> (Dimensional Modeling, ETL Toolkit, Lifecycle Toolkit). And if you&#8217;re into this for more than one project &#8212; you should start memorizing Lifecycle by heart.</div>
<div>You should read <a href="http://www.amazon.com/Building-Data-Warehouse-W-Inmon/dp/0764599445/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1297262009&amp;sr=1-1">Bill Inmon</a> as well to be aware of 2 different approaches to modeling. Also see Data Modeling section just below.</div>
<h3 id='Data-Modeling'>Data Modeling.</h3>
<div>These books are not DWH-specific and most modeling tricks don&#8217;t apply directly, but you should be aware of typical problems and solutions, since this allows fast source system model examination and profiling &#8212; you can recognize modeling techniques used in developing and potential caveats in data.</div>
<div>There are numerous data modeling books out there, I&#8217;d recommend reading <a href="http://www.amazon.com/Data-Modeling-Made-Simple-Professionals/dp/0977140067/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1297262163&amp;sr=1-1">Hoberman</a> and <a href="http://www.amazon.com/Modeling-Essentials-Third-Graeme-Simsion/dp/0126445516/ref=sr_1_2?s=books&amp;ie=UTF8&amp;qid=1297262163&amp;sr=1-2">Witt&amp;Simsion</a>.</div>
<div>And I insist on reading Data <a href="http://www.amazon.com/Data-Model-Resource-Book-Vol/dp/0470178450/ref=sr_1_2?s=books&amp;ie=UTF8&amp;qid=1297262271&amp;sr=1-2">Model Resource Books</a>. It has 3 volumes and I suggest starting with 3rd one and then picking your business area of interest (HealthCare, Telco, Insurance &#8212; there&#8217;s a lot to choose from) and looking the model in first two volumes.</div>
<h3 id='Achieving-DWH-performance'>Achieving DWH performance</h3>
<div>If you&#8217;re interested in getting it all faster, take a look at <a href="http://www.amazon.com/Mastering-Data-Warehouse-Aggregates-Performance/dp/0471777099/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1297262337&amp;sr=1-1">Mastering DataWarehouse </a><a href="http://www.amazon.com/Mastering-Data-Warehouse-Aggregates-Performance/dp/0471777099/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1297262337&amp;sr=1-1">Aggregates</a>. And there&#8217;s a deep insight out there in <a href="http://www.amazon.com/Relational-Database-Index-Design-Optimizers/dp/0471719994/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1297262449&amp;sr=1-1">Relational Database Index Design and the Optimizers</a> &#8212; read this one only if you&#8217;re really into performance )</div>
<h3 id='Data-Quality'>Data Quality</h3>
<div>It&#8217;s a very important, yet most forgotten topic. After reading ETL Toolkit and Lifecycle parts on data quality, I suggest following with one of works by <a href="http://www.amazon.com/Information-Quality-Applied-Practices-Improving/dp/047013447X/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1297262843&amp;sr=1-1">Larry English</a>. If you&#8217;re very serious about separate DQ project, pick up <a href="http://www.amazon.com/Executing-Data-Quality-Projects-Information/dp/0123743699/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1297262891&amp;sr=1-1">Executing Data Quality Projects</a>.</div>
<h3 id='Data-Visualization-amp-Report-Design'>Data Visualization &amp; Report Design</h3>
<div>Data visualization is a most expected BI-revolution that won&#8217;t come in a way vendors think about it (another feature pack or product). It will come by evolution, just not of BI products, but of us, BI professionals  and data analysts. As we will get more acquainted with analysis techniques and get more experience with well designed visual aids (as opposite to Flash-based eye candy), we&#8217;ll shift our demands towards more analytical oriented tools and vendors will have to provide them )</div>
<div>I&#8217;d recommend anyone to skim through <a href="http://oreilly.com/catalog/9780596153946">Head&#8217;s First Data Analysis</a>, since it&#8217;s a good introductory book on how gain some insights from data.</div>
<div>Anyone designing any dashboard should read <a href="http://www.perceptualedge.com/library.php#Books">Stephen Few&#8217;s books</a>. It&#8217;s an absolute must. Stop Pie-Charts invasion!</div>
<div>If you&#8217;re up to thinking about some new ways of representing information or gaining a deeper understanding of how things work, read <a href="http://www.edwardtufte.com/tufte/books_vdqi">Tufte&#8217;s works</a>. And then follow up with <a href="http://ccom.unh.edu/vislab/colin_ware_pubs.html">Collin Ware</a> deep texts on how our minds really work while processing visual information.</div>
<h3 id='Product-documentation'>Product documentation</h3>
<div>And, of course, you should read all the documentation provided by vendors of your tools and follow up most prominent blogs (there are ones on almos every tool out there) and forums. It&#8217;s a shame to see people inventing built-in functionality or not knowing that&#8217;s a screwdriver they&#8217;re are trying to slam a nail with. I find myself doing this with TM1 recently, so I&#8217;m back to reading manuals</div>
<div>I&#8217;ll update this post when I&#8217;ll encounter a good text on MDM or more good books on above mentioned subjects.</div>
<div>Any suggestions?</div>
]]></content:encoded>
			<wfw:commentRss>http://ykud.com/blog/bicpm/bidwh-booklist/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gartner BI Quadrant for 2010 is out</title>
		<link>http://ykud.com/blog/bicpm/gartner-bi-quadrant-for-2010-is-out</link>
		<comments>http://ykud.com/blog/bicpm/gartner-bi-quadrant-for-2010-is-out#comments</comments>
		<pubDate>Tue, 01 Feb 2011 06:52:21 +0000</pubDate>
		<dc:creator>ykud</dc:creator>
				<category><![CDATA[BI&CPM]]></category>
		<category><![CDATA[gartner]]></category>

		<guid isPermaLink="false">http://ykud.com/blog/?p=489</guid>
		<description><![CDATA[It&#8217;s an interesting reading indeed. I read vendor sections in these reports with interest, because after some years it&#8217;s possible to wipe all vendor-based marketing claims and assumptions made by people (analysts) who aren&#8217;t using the products daily and see something resembling &#8220;true state&#8221;. For example, if you take a statement &#8220;QlikTech offers limited metadata [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gartner.com/technology/media-products/reprints/oracle/article180/article180.html">It&#8217;s an interesting reading indeed</a>.<br />
I read vendor sections in these reports with interest, because after some years it&#8217;s possible to wipe all vendor-based marketing claims and assumptions made by people (analysts) who aren&#8217;t using the products daily and see something resembling &#8220;true state&#8221;.<br />
For example, if you take a statement &#8220;QlikTech offers limited metadata management&#8221; and read it with cynic-hat on, you&#8217;ll read out that there&#8217;s no single metadata repository for an installation. Each so-called application packs it&#8217;s own metadata (+ data loading scripts), so you can easily have &#8216;Net Sales&#8217; sourced from different tables in applications developed for different users. &#8220;Single source of truth&#8221; <img src='http://ykud.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
With this hat on we get:<br />
- Oracle 11 was too long in development labs and didn&#8217;t get much out of it. But all those new stuff will be added some time later.<br />
- SAP still haven&#8217;t decided what they bought BO for &#8212; that&#8217;s hysterically funny<br />
- Microsoft BI is still a DIY kit, but  now with more shiny new tools (PowerPivot) inside. But once again packed without assembly instruction )<br />
- Cognos is hard to implement and slow, ain&#8217;t it?<br />
- Tableau is terribly nice, useful and furry. Just small for enterprise-scale<br />
- etc<br />
Seems like at Gartner guys like SPSS acquisition by IBM much. And consider Cognos 10 a break-through in performance. Need to check it myself. After SP2 )</p>
]]></content:encoded>
			<wfw:commentRss>http://ykud.com/blog/bicpm/gartner-bi-quadrant-for-2010-is-out/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Anaplan</title>
		<link>http://ykud.com/blog/bicpm/anaplan</link>
		<comments>http://ykud.com/blog/bicpm/anaplan#comments</comments>
		<pubDate>Wed, 19 Jan 2011 02:04:55 +0000</pubDate>
		<dc:creator>ykud</dc:creator>
				<category><![CDATA[BI&CPM]]></category>

		<guid isPermaLink="false">http://ykud.com/blog/?p=481</guid>
		<description><![CDATA[In case you haven&#8217;t heard about it yet &#8212; &#8220;Adaytum team&#8221; is back to business. With their new planning solution ) &#8212; Anaplan, or &#8220;In-Memory Analyst in the clouds&#8221;. Take a look at demos and site, especially History page &#8212; reminds you anything? My takes: Technology has all needed buzzwords, although I&#8217;d prefer some more [...]]]></description>
			<content:encoded><![CDATA[<p>In case you haven&#8217;t heard about it yet &#8212; &#8220;Adaytum team&#8221; is back to business. With their new planning solution ) &#8212; <a href="http://www.anaplan.com/">Anaplan</a>, or &#8220;In-Memory Analyst in the clouds&#8221;.<br />
Take a look at demos and site, especially <a href="http://www.anaplan.com/the-anaplan-story/">History page</a> &#8212; reminds you <a href="http://ykud.com/blog/bicpm/adaytum-is-back-home-ibm-buys-cognos">anything</a>?<br />
My takes:</p>
<li><a href="http://www.anaplan.com/anaplan-technology/">Technology</a> has all needed buzzwords, although I&#8217;d prefer some more common, not &#8216;home-made&#8217; parts, like HFS for file-system. Not so many details out there, nothing to comment more on.</li>
<li>I&#8217;m really fascinated by <a href="http://www.anaplan.com/services/">implementation cycle</a> proposed. I&#8217;ve been doing it almost ten years up to now and met only one 3-4 weeks project on the way. Doing requirements gathering off-site, from Excel templates &#8212; implementation team must be totaly great.</li>
<li>Take a look at <a href="http://www.anaplan.com/how-to-buy/">prices</a>. It&#8217;s not just cheap, it&#8217;s just for free. In this case, to earn money, Anaplan must attract literally thousands of clients. SalesForce for planning?</li>
<li>Data integration. This is an interesting part, since a planning system is just a fake if it sits in the air (cloud <img src='http://ykud.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) without strong roots to the ground (actual data). In a complete CPM solution &#8212; DW srores your actuals and loads them into planning on demand. And loads back accepted plan figures for analysis. How this integration is to be done, when a part of the system is out on the cloud &#8212; is not a magic, but some tricky task anyway. Integrating with other cloud-based services (i.e. <a href="http://www.anaplan.com/blog/2010/08/on-boarding-salesforce-com-customers-into-anaplan-takes-10-22-minutes/">Saleforce</a>) should be easy.</li>
<li><a href="http://www.anaplan.com/people-2/">People</a>. I&#8217;d really love to chat with those guys one day</li>
<p>Overall: I haven&#8217;t heard of a great success of any cloud-based BI services (and there was and is much hype on topic). Planning is bit like BI, because there are a few\none industry-standard solutions, it&#8217;s mostly an open LEGO constructor for you to build a castle.<br />
And if you don&#8217;t have a repeated\reusable model, you don&#8217;t earn that much money scaling up number of customers, since building from scratch is required in every case. SalesForce provides a standard CRM with some customizations for client, but the required functionality is typical for all client base. This allows &#8216;reusing&#8217;.<br />
Can this be done with Enterprise Planning?</p>
<p>It looks very interesting, although cloud-based thingie won&#8217;t go in Russia right now, I&#8217;ll be watching. I really liked idea behind Analyst.<br />
And as I&#8217;ve already said, I&#8217;d rather tweak <a href="http://ykud.com/blog/cognos/that-parallel-parallel-contibutor">APL and J technology for 64bit and multi-core</a>&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://ykud.com/blog/bicpm/anaplan/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft SQL Server reporting database configuration</title>
		<link>http://ykud.com/blog/bicpm/microsoft/microsoft-sql-server-reporting-database-configuration-practices</link>
		<comments>http://ykud.com/blog/bicpm/microsoft/microsoft-sql-server-reporting-database-configuration-practices#comments</comments>
		<pubDate>Thu, 23 Sep 2010 12:18:07 +0000</pubDate>
		<dc:creator>ykud</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[bi]]></category>

		<guid isPermaLink="false">http://ykud.com/blog/?p=429</guid>
		<description><![CDATA[A check-list for using Microsoft SQL Server as a reporting database. This is a &#8216;be aware&#8217; list for myself in first place, since I forget some details as time passes. Table of contents Overall database settings Table configuration ETL Query tuning Books to read Overall database settings Use simple recovery mode Set up simple recovery [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: 13.1944px;">A check-list for using Microsoft SQL Server as a reporting database. This is a &#8216;be aware&#8217; list for myself in first place, since I forget some details as time passes.</span></p>
<p><span style="font-size: 13.1944px;"><em><div id='toc' class='post-429'><div id='toc_title'>Table of contents</div>
<ul><li><a href="#Overall-database-settings">Overall database settings</a></li>
<li><a href="#Table-configuration">Table configuration</a></li>
<li><a href="#ETL">ETL</a></li>
<li><a href="#Query-tuning">Query tuning</a></li>
<li><a href="#Books-to-read">Books to read</a></li>
</ul>
</div></em></span></p>
<h3 id='Overall-database-settings'>Overall database settings</h3>
<h4>Use simple recovery mode</h4>
<div>Set up simple recovery mode for database to minimize performance issues with transaction log records. Usually you can use daily backups with DWH, since data is loaded daily. In more complex situations you can use ETL-based &#8216;checkpoints&#8217;, but in general, daily backups are more than enough.</div>
<h4>Separate log and data io channels</h4>
<div>Use decent I\O systems and separate data and log I\O channels. This is obvious, just reiterating.</div>
<div>RAID 1+0 seems to be preferable choice of disk configuration for DWH loads. See <a href="http://dsstos.blogspot.com/2007/09/raid-5-versus-raid-10-in.html">this entry</a>, <a href="http://storage.ittoolbox.com/documents/raid-configurations-for-sql-server-data-warehouse-18274">this one</a> or test it yourself )</div>
<h4>2008 r2</h4>
<div>Use SQL Server 2008r2 Enterprise if you have a choice. 2008 adds table\index compression (which is great) and get&#8217;s partitioning to work way better in queries. And I&#8217;ve  20% performance speed-up against 2005 on the same query set (with same execution plans and that surprised me).</div>
<h4>Auto shrink Off</h4>
<div>Set Auto shrink off, <a href="http://blogs.msdn.com/b/sqlserverstorageengine/archive/2007/03/28/turn-auto-shrink-off.aspx">it kicks unpredictable I\O strain</a>. Shrink database daily, just after backup in the same maintenance task.</div>
<h3 id='Table-configuration'>Table configuration</h3>
<h4>identity columns as primary keys</h4>
<div>Use <a href="http://www.google.ru/url?sa=t&amp;source=web&amp;cd=1&amp;sqi=2&amp;ved=0CBgQFjAA&amp;url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FIdentity_column&amp;ei=0hibTNu0EMz14AaR38SYAQ&amp;usg=AFQjCNFgKU8vwoyU49BlplCCZTDoCzWNXg">identity columns</a> as table primary keys. And using this column as clustered index will help I\O in most cases.</div>
<h4>Set up foreign keys</h4>
<div>Again, obvious, but I&#8217;ve seen this violated more than once. Use foreign keys for fact-dimension table reference. This will help optimizer a lot.</div>
<div>You can disable these keys to speed up inserts, but in 90% cases it&#8217;s not needed.</div>
<h4>Table partitioning</h4>
<div>Always use partitioned tables (even fake, with 1 partition) to:</div>
<div>- achieve <a href="http://blogs.msdn.com/b/craigfr/archive/2008/08/22/dynamic-partition-elimination-performance.aspx">partition elimination</a> during query execution. <a href="http://msdn.microsoft.com/en-us/library/ms345599.aspx">Especially in Ms SQL 2008</a></div>
<div>- use <a href="http://msdn.microsoft.com/en-us/library/ms191160.aspx">partition switching</a> for data load (check <a href="http://msdn.microsoft.com/en-us/library/cc966380.aspx">this article</a> as well)</div>
<h4>Table compression in 2008</h4>
<div>SQL Server 2008 introduces <a href="http://msdn.microsoft.com/en-us/library/dd894051(SQL.100).aspx">table compression</a> which helps to reduce I\O (but increases CPU load), which is very good for reporting tasks. Use it for fact tables.</div>
<h3 id='ETL'>ETL</h3>
<h4>partition switching as default load strategy</h4>
<div>More benefits of partition switching for loading:</div>
<div>- while you&#8217;re loading data in &#8216;new_data&#8217; partition, base table is accessible and consistent</div>
<div>- after you&#8217;ve prepared &#8216;new_data&#8217; partition you can check it&#8217;s data for quality (planning to write about later)</div>
<div>You can implement switching by creating another temporary partition, which I like to call &#8216;last load&#8217;. So you switch:</div>
<div>- current -&gt; last_load</div>
<div>- new_data -&gt; current</div>
<div>in one transaction</div>
<div>After that you have &#8216;last_load&#8217; to:</div>
<div>- switch back in emergency</div>
<div>- check data from current\previous load for some more quality checks</div>
<h4>Filtered indexes for calculations</h4>
<div>Another 2008-only feature is called <a href="http://technet.microsoft.com/en-us/library/cc280372.aspx">filtered indexes</a>. These indexes can be essentially smaller than common ones if you know for sure what region of data you&#8217;ll be accessing. And this turns out to be very efficient for SQL code you&#8217;re using for different calculations. Since I mostly work with <a href="http://www.oracle.com/technetwork/middleware/data-integrator/index.html">Oracle Data Integrator</a> as an ETL tool and it&#8217;s an SQL-generating machine: I get up to10 times calculation speed up by building small, calculation-specific filtered indexes.</div>
<h4>Tablock hint</h4>
<div>All inserts should be done with <a href="http://www.google.ru/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CBUQFjAA&amp;url=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fms187373.aspx&amp;ei=QCqbTKzHCdHf4Aa0v5l9&amp;usg=AFQjCNECU0Ifs4WMf3l3qrQJ1ToMjdhMXQ">TABLOCK</a> hint, which speeds up insert by acquiring a full table lock during the whole transaction. Since in DWH main inserts are performed by ETL there should be no conflicts. TABLOCK also speeds up logging during bcp.</div>
<h3 id='Query-tuning'>Query tuning</h3>
<h4>Indexes</h4>
<div>Really a vast topic, but to sum it up ) :</div>
<div>- use <a href="http://www.sql-server-performance.com/tips/covering_indexes_p1.aspx">covering indexes</a>.   It seems better to have a <a href="http://www.amazon.com/Server-Execution-Plans-Grant-Fritchey/dp/1906434026">&#8216;wide index&#8217; than a number of indexes on all dimensions and to apply index intersection</a>.</div>
<div>- columns in indexes should <a href="http://sqlinthewild.co.za/index.php/2009/01/19/index-columns-selectivity-and-equality-predicates">be ordered by selectivity</a></div>
<div>Be very-very careful, &#8216;your mileage may vary&#8217;:</div>
<div>- creating a huge number of large indexes may actually slow system down due to I\O overload</div>
<div>- you should try to create indexes that can help a number of reports\query instead of tuning a single request</div>
<div>See Books session below, skip through at least one of them before starting it out wild.</div>
<h4>Filtered indexes</h4>
<div>
<p>As with ETL calculations &#8212; filtered indexes may be used for tuning specific queries.</p>
<h4>Index compression</h4>
<div>Indexes can be compressed in the same way as tables (which is obvious given that a table is a clustered index) and this speeds queries by reducing IO</div>
<h3 id='Books-to-read'>Books to read</h3>
<div>I&#8217;d recommend following</div>
<div><a href="http://www.amazon.com/Professional-Server-Performance-Tuning-Programmer/dp/0470176393">Professional SQL Server 2005 Performance Tuning</a></div>
<div><span style="font-family: Arial, sans-serif;"><a href="http://www.amazon.com/Server-Execution-Plans-Grant-Fritchey/dp/1906434026">SQL Server Execution Plans</a></span></div>
<div><span style="font-family: Arial, sans-serif;"><a href="http://www.amazon.com/Server-Performance-Tuning-Distilled-Experts/dp/1430219025/ref=pd_bxgy_b_text_c">SQL Server 2008 Query Performance Tuning Distilled (Expert&#8217;s Voice in SQL Server)</a></span></div>
<div>And if you have time and will</div>
<div><a href="http://www.amazon.com/Relational-Database-Index-Design-Optimizers/dp/0471719994/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1285236564&amp;sr=1-1">Relational Database Index Design and the Optimizers</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ykud.com/blog/bicpm/microsoft/microsoft-sql-server-reporting-database-configuration-practices/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Replacing strings in Oracle BI Publisher reports</title>
		<link>http://ykud.com/blog/bicpm/oracle/replacing-strings-in-oracle-bi-publisher-reports</link>
		<comments>http://ykud.com/blog/bicpm/oracle/replacing-strings-in-oracle-bi-publisher-reports#comments</comments>
		<pubDate>Wed, 08 Sep 2010 16:09:07 +0000</pubDate>
		<dc:creator>ykud</dc:creator>
				<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://ykud.com/blog/?p=398</guid>
		<description><![CDATA[Oracle BI publisher works awfully bad with Answers type of datasource in at least two points: - column names are created by answers formulas instead of column names, so if you have long formulae, it&#8217;ll be shortened to some 128 chars. And if first 128 chars of formulas are identical, you&#8217;ll get only one of [...]]]></description>
			<content:encoded><![CDATA[<p>Oracle BI publisher works awfully bad with Answers type of datasource in at least two points:</p>
<div>- column names are created by answers formulas instead of column names, so if you have long formulae, it&#8217;ll be shortened to some 128 chars. And if first 128 chars of formulas are identical, you&#8217;ll get only one of them in publisher<br />
- if columns return null in answers &#8211; they will not be available at all</p>
<p>We ended up using logical SQL generated in answers as a source for publisher reports, which works like charm up until you start changing repository or changing underlying data you&#8217;re using for filters.</p>
<div>- repository changes can be handled by adding aliases to columns being renamed</div>
<div>- data changes are way more difficult to tackle</div>
<div>For example when you change city name from &#8216;NY&#8217; to &#8216;New York&#8217; in geography dimension (this should be solved by <a href="http://www.rittmanmead.com/2010/08/18/oracle-bi-ee-11g-handling-double-columns-iddescription-interoperability">BI 11 </a><a href="http://www.rittmanmead.com/2010/08/18/oracle-bi-ee-11g-handling-double-columns-iddescription-interoperability"> </a><a href="http://www.rittmanmead.com/2010/08/18/oracle-bi-ee-11g-handling-double-columns-iddescription-interoperability">id\description </a><a href="http://www.rittmanmead.com/2010/08/18/oracle-bi-ee-11g-handling-double-columns-iddescription-interoperability">feature</a>) you have to change all formulas and filters using this value.</div>
<div></div>
<div>So I wrote a simple Python3 script, doing exactly that &#8212; replacing all needed strings in publisher xdo files. If there&#8217;s any need for that &#8212; mail me, I&#8217;ll send it over.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ykud.com/blog/bicpm/oracle/replacing-strings-in-oracle-bi-publisher-reports/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pivot Tables and temp files in Oracle BI EE</title>
		<link>http://ykud.com/blog/bicpm/oracle/pivot-tables-and-temp-files-in-oracle-bi-ee</link>
		<comments>http://ykud.com/blog/bicpm/oracle/pivot-tables-and-temp-files-in-oracle-bi-ee#comments</comments>
		<pubDate>Fri, 27 Aug 2010 13:32:39 +0000</pubDate>
		<dc:creator>ykud</dc:creator>
				<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://ykud.com/blog/?p=382</guid>
		<description><![CDATA[Pivot tables Pivot tables are by far most used data view in Oracle BI Answers, since they provide &#8216;multidimensional&#8217; analysis capabilities, aka dimension drag&#38;drop, filtering and some basic calculations. From server-side view &#8212; this component provides worst performance, since all future &#8216;cube&#8217; data has to loaded into BI server, aggregations and formulas calculated and transformed [...]]]></description>
			<content:encoded><![CDATA[<h2>Pivot tables</h2>
<p>Pivot tables are by far most used data view in Oracle BI Answers, since they provide &#8216;multidimensional&#8217; analysis capabilities, aka dimension drag&amp;drop, filtering and some basic calculations.</p>
<div>From server-side view &#8212; this component provides worst performance, since all future &#8216;cube&#8217; data has to loaded into BI server, aggregations and formulas calculated and transformed to internal format.</div>
<div>So what happens when user clicks a pivot for 200,000 cells cube?</div>
<div>1) SQL-query is fired into database</div>
<div>2) All resulting rows are loaded into temporary directory of BI server</div>
<div>3) If there are calculations to be performed &#8212; initial temp file is read, calculated and new temp written out</div>
<div></div>
<div>There are two important <a href="http://download.oracle.com/docs/cd/E12096_01/books/AnyInConfig/AnyInConfigSAS13.html">instanceconfig.xml</a> parameters for Pivot tables:</div>
<blockquote>
<div>- CubeMaxPopulatedCells &#8211; The maximum number of populated cells in the Pivot Table. If this maximum is exceeded, the user receives an error when rendering the pivot table.</div>
</blockquote>
<div>and</div>
<blockquote>
<div>- CubeMaxRecords  &#8211; The maximum number of records returned by a query for the Pivot Table engine to process. This roughly governs the maximum number of cells that can be populated in a pivot table (unpopulated cells in a sparse pivot table do not count). If this maximum is exceeded, the user receives an error when rendering the pivot table.</div>
<div></div>
</blockquote>
<div>All instanceconfig.xml options can be <a href="http://oraclebizint.files.wordpress.com/2007/11/ultimate-analytics-resource-saw-instanceconfig-setting.doc">found here</a>.</div>
<h2>Temp files.</h2>
<div>Temp files can be rather huge, I&#8217;m currently seeing files about 1gb size for medium sized reports. That, surely, because we&#8217;re using MS SQL server and BI Server cannot &#8220;push&#8221; some calculations in database, but it&#8217;s nice to keep in mind the fact that temp files can occupy some 20-30 Gb.</div>
<div>Temp files are cleaned out when session logs out, so some of them stay there for whole day.</div>
<div>Location of temporary files is set up by WORK_DIRECTORY_PATHS variable in NQSConfig.ini and by SATEMP enviroment variable. See <a href="http://oraclebi.blog.com/tip-of-the-day-changing-the-path-of-temp-directory-and-cache-storage">this post</a> for instructions on how to move tmp folder.</div>
<h2>Speeding things up.</h2>
<div>Rather huge files are written to temporary directory, so the IO performance becomes an obvious bottleneck for process.</div>
<div>What can be done:</div>
<div>1) Use multiple tmp\ directories on different disks to balance the load</div>
<div>2) Use <a href="http://en.wikipedia.org/wiki/RAM_disk">Ramdisks</a> for tmp\ &#8212; I&#8217;ve tried this way and got a some fantastic <strong><span style="color: #ff0000;">5x speedup</span></strong> on most IO bound reports. But it&#8217;s pretty hard to find free 30 Gb of RAM, so we&#8217;re using multiple disks for now</div>
<div>3) Use <a href="http://en.wikipedia.org/wiki/Solid-state_drive">SSD </a>for tmp &#8212; that&#8217;s what I plan to try next. I bought an SSD for my laptop about a year ago and my life has never been the same, so stay tuned )</div>
]]></content:encoded>
			<wfw:commentRss>http://ykud.com/blog/bicpm/oracle/pivot-tables-and-temp-files-in-oracle-bi-ee/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>BI system metadata impact analysis and what BI system APIs are for</title>
		<link>http://ykud.com/blog/bicpm/oracle/bi-system-metadata-impact-analysis-and-what-bi-system-apis-are-for</link>
		<comments>http://ykud.com/blog/bicpm/oracle/bi-system-metadata-impact-analysis-and-what-bi-system-apis-are-for#comments</comments>
		<pubDate>Wed, 19 May 2010 10:52:23 +0000</pubDate>
		<dc:creator>ykud</dc:creator>
				<category><![CDATA[bi]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://ykud.com/blog/?p=356</guid>
		<description><![CDATA[&#8220;Okay, this column in our BI metadata was supposed to be named Sales, not Sals. But when we change it, what will happen to the reports that were created, using this name? And how many reports use this column anyway? Maybe we shouldn&#8217;t touch anything to keep things working&#8230;&#8221; Ever been in such situation? This [...]]]></description>
			<content:encoded><![CDATA[<div>&#8220;Okay, this column in our BI metadata was supposed to be named Sales, not Sals.</div>
<div>But when we change it, what will happen to the reports that were created, using this name? And how many reports use this column anyway? Maybe we shouldn&#8217;t touch anything to keep things working&#8230;&#8221;</div>
<div>Ever been in such situation?</div>
<div>This question can be answered by opening each report and then looking at it&#8217;s contents ) A horrible task indeed.</div>
<div>Actually, this is exactly what BI system API are made for. Using them you should be able to automagically look into each report and find whether this column is used in it.</div>
<div>And as usual in this &#8216;BI system Needs and Means&#8217; series, let&#8217;s look how it&#8217;s done in IBM Cognos BI and Oracle BI.</div>
<h3>Cognos BI</h3>
<div>Cognos BI has had an SDK (Software Development Kit) since ReportNet (for more than 5 years already) and this &#8216;long-time in market&#8217; allowed to develop a whole ecosystem of tools to breed on top of it.</div>
<div>Concerning the question at the start of the post &#8212; there&#8217;s:</div>
<div>Cognos Dynamic Report Updater &#8212; a tool to replace change column in every report.</div>
<div><a href="http://www-01.ibm.com/support/docview.wss?uid=swg24021248">http://www-01.ibm.com/support/docview.wss?uid=swg24021248 </a></div>
<div>Moreover, look at whole bunch of tools, based on SDK:</div>
<div><a href="http://www-01.ibm.com/software/data/support/cognos_diagnostictools.html">http://www-01.ibm.com/software/data/support/cognos_diagnostictools.html</a></div>
<div>and tools, developed by third-party vendors:</div>
<div><a href="http://www.brightstarpartners.com/bspsoftware.php">http://www.brightstarpartners.com/bspsoftware.php</a></div>
<h3>Oracle BI</h3>
<div>In Oracle BI, finding such changes is somehow easier, since all reports are stored as xml files in presentation catalog folder. You just write a simple script that iterates on files, finds a string in file and reports back it&#8217;s findings (or replaces this string with a new one). Sounds easy, but after spending a couple days at it, I&#8217;m not so sure anymore )</div>
<div>There are a few major point against this way</div>
<div>1) It&#8217;s unsupported, there are no declared report modification API&#8217;s, AFAIK, so you&#8217;re scripting at your own sake. That would not be a big problem, if not:</div>
<div>2) Oracle BI presentation service adds a hash tag to report (and folder) names if they exceed 55 characters in length (see more on this topic here: <a href="http://obiee101.blogspot.com/2010/02/obiee-report-name-length.html">http://obiee101.blogspot.com/2010/02/obiee-report-name-length.html</a>).</div>
<div>2.1) If report&#8217;s names are not in ASCII, they are converted to UTF-8 (but starting x symbol is replaced by #), so each non-ASCII symbol takes 5. So if you find file, containing desired string, you can only decode back first 9 letters of it&#8217;s name &#8212; report names are usually much longer than that. Therefore your searching capabilities are seriously limited.</div>
<div>2.2) Folder name hashing poses another problem if you&#8217;re using Windows. It impossible to iterate through catalogcontaining hashes an # in it&#8217;s name &#8212; OS listing methods stop working. Hope that situation is better on Linux. An easy but entirely manual workaround is to rename catalog folders to numbers (1,2,3,4) before starting the script ant to rename it back after.</div>
<div>I totally wish that this situation will change in nearest future and there will be a simple Presentation Server API call that will bring report name from file name and vica versa.</div>
<div>As usual, if anyone is interested in scripts  I wrote for the task (python, as usual + vbs) &#8212; ping me.</div>
]]></content:encoded>
			<wfw:commentRss>http://ykud.com/blog/bicpm/oracle/bi-system-metadata-impact-analysis-and-what-bi-system-apis-are-for/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Multidimensional reporting functions in Cognos and Oracle</title>
		<link>http://ykud.com/blog/cognos/multidimensional-reporting-functions-in-cognos-and-oracle</link>
		<comments>http://ykud.com/blog/cognos/multidimensional-reporting-functions-in-cognos-and-oracle#comments</comments>
		<pubDate>Sun, 25 Apr 2010 17:47:32 +0000</pubDate>
		<dc:creator>ykud</dc:creator>
				<category><![CDATA[cognos]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://ykud.com/blog/?p=305</guid>
		<description><![CDATA[As many of you already know I have a mixed attitude to Cognos BI DMRs (dimensionally modeled relational source) models: performance is allways a consideration, full-table scans are unpredictable there&#8217;s always &#8216;local processing&#8217; vs &#8216;database only and some things not working&#8217; dilemma using multidimensional functions in reports is oh-so-hard to debug when they don&#8217;t work in [...]]]></description>
			<content:encoded><![CDATA[<p>As many of you already know I have a mixed attitude to Cognos BI DMRs (dimensionally modeled relational source) models:</p>
<ul>
<li>performance is allways a consideration, full-table scans are unpredictable</li>
<li> there&#8217;s always &#8216;local processing&#8217; vs &#8216;database only and some things not working&#8217; dilemma</li>
<li> using multidimensional functions in reports is oh-so-hard to debug when they don&#8217;t work in complex situations.</li>
</ul>
<div>Even after 4 years working with Cognos BI I still have to start multidimensional reports with simple cases to prove that functions work as I expect them to  (sigh).</div>
<p></p>
<div>BUT &#8212; at least Cognos has those functions!</div>
<p></p>
<div>We&#8217;ve just spent more than a week trying to replicate members() function in Oracle BI project. Function is as simple as can be, it just returns all dimension members from all levels in a single list (see <a href="http://publib.boulder.ibm.com/infocenter/c8bi/v8r4m0/topic/com.ibm.swg.im.cognos.ug_fm.8.4.1.doc/ug_fm_i_sql-99.html#sql-99">documentation </a>on IBM site). And if you add measure to report &#8212; correct totals will be calculated. Oracle BI has the dimension with levels and aggregations concept, but no such function, so you have to<a href="http://www.rittmanmead.com/2009/08/14/oracle-bi-ee-10-1-3-4-1-sub-totals-during-drills-conforming-dimensions"> turn over your head</a> to achieve this. Replicating dimension table in logical model as many times as there are levels seems the easiest solution.</div>
<p></p>
<div><img  title="sad_owl_eyes" src="http://ykud.com/blog/wp-content/uploads/2010/04/sad_owl_eyes1.jpg" align="left" />I&#8217;m really frustrated by this.</div>
<div>Definitely not the problem I&#8217;d like to spend time trying to solve  :(</div>
]]></content:encoded>
			<wfw:commentRss>http://ykud.com/blog/cognos/multidimensional-reporting-functions-in-cognos-and-oracle/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connecting BI system to Active Directory. Oracle BI vs IBM Cognos BI. Scripts to extract Active Directory information.</title>
		<link>http://ykud.com/blog/cognos/connecting-bi-system-to-active-directory-oracle-bi-vs-ibm-cognos-bi-scripts-to-extract-active-directory-information</link>
		<comments>http://ykud.com/blog/cognos/connecting-bi-system-to-active-directory-oracle-bi-vs-ibm-cognos-bi-scripts-to-extract-active-directory-information#comments</comments>
		<pubDate>Tue, 13 Apr 2010 06:00:31 +0000</pubDate>
		<dc:creator>ykud</dc:creator>
				<category><![CDATA[bi]]></category>
		<category><![CDATA[cognos]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://ykud.com/blog/?p=295</guid>
		<description><![CDATA[I consider Single Sign-On setup through Active Directory(AD) a key point in every system&#8217;s life. Up to this point &#8212; it&#8217;s just a PoC, a prototype or a department (10-20 users) level application. AD integration step is usually prosponed, because it&#8217;s documented somewhere and there are much more important things to do, like showing that [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">I consider Single Sign-On setup through Active Directory(AD) a key point in every system&#8217;s life.</div>
<div>Up to this point &#8212; it&#8217;s just a PoC, a prototype or a department (10-20 users) level application.</div>
<div id="_mcePaste">AD integration step is usually prosponed, because it&#8217;s documented somewhere and there are much more important things to do, like showing that this system is of any value at all.</div>
<div id="_mcePaste">But adding an AD connection mean that system is rooted (even if lightly) in company&#8217;s IT ecosystem.</div>
<div id="_mcePaste">There&#8217;s always a dilemma on groups and rights storage:</div>
<div id="_mcePaste">1) You can use AD groups for BI level user rights. AD admins are usually against this, it means more work for them.</div>
<div id="_mcePaste">2) Just use AD as a user catalog and add all groups and rights information in BI system. This means introducing more work to BI administrators and adding potential security problems. Imagine if BI admin won&#8217;t be notified of a person transfer from department to department or from sales to marketing. And why should BI administrator even care about that )</div>
<div id="_mcePaste">Pro&#8217;s and cons of each way are easy to deduct and choice is always organization-dependent, so I won&#8217;t stop on that and go right to complains section.</div>
<h2>Using Active Directory in Cognos and Oracle BI</h2>
<h3>Cognos</h3>
<div>About a year ago we had a PoC on Cognos, where the requirement was to not just common &#8220;users and groups&#8221;, but also we had to use custom created AD properties for data filtering.</div>
<div id="_mcePaste">It&#8217;s easy to do in Cognos 8 BI: you just add Framework Manager macro that returns this property. Piece of cake really. And it turned out to be hard for our competitors.</div>
<div id="_mcePaste"><a href="http://www-01.ibm.com/support/docview.wss?uid=swg21341035">Description on IBM portal</a>, historical number &#8212;  1027162</div>
<h3>Oracle</h3>
<div id="_mcePaste">Recently I&#8217;ve had to do the same with Oracle BI and it turned out that Oracle BI&#8217;s current integration with Active Directory is pretty basic. The only way to communicate with AD is authentificate users through it, there&#8217;s no way to access User groups or custom properties (there is a way, but it requieres changing ActiveDirectory, which isn&#8217;t good at all). See Metalink note on this subject: 544828.1</div>
<div id="_mcePaste">So there&#8217;s no built-in way in OraBI to get all those delicious groups and other properties. But there&#8217;s always a way out called scripting )</div>
<h2>Extracting Active Directory information to csv</h2>
<div id="_mcePaste">You can write a script that will extract needed information from Active Directory to a csv file and then schedule it for nightly extracts, load it into a table and use this table in Oracle BI security variables. This is a reliable solution, but it introduces a time lag between AD modifications and your extracts, which can be important from security point of view. Same example &#8211;user is transfered and can still access BI data he&#8217;s no longer authorized to see until Active Directory information is extracted again. Setting small extract lags can bring unwanted load on Active Directory, so it&#8217;s once again a balanced choice to make.</div>
<p>Links for extracting Active Directory information to csv:</p>
<p><a href="http://social.technet.microsoft.com/wiki/contents/articles/step-by-step-guide-to-bulk-import-and-export-to-active-directory.aspx">Step by Step Active Directory Export Guide </a><br />
<a href="http://www.rlmueller.net/ADOSearchTips.htm">http://www.rlmueller.net/ADOSearchTips.htm</a><br />
<a href="http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm">http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm</a><br />
<a href="http://sourceforge.net/projects/jxplorer/">JXplorer &#8212; a graphical tool to browse any LDAP server</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ykud.com/blog/cognos/connecting-bi-system-to-active-directory-oracle-bi-vs-ibm-cognos-bi-scripts-to-extract-active-directory-information/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

