<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Gobán Saor &#187; BI</title>
	<atom:link href="http://blog.gobansaor.com/category/bi/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gobansaor.com</link>
	<description>A country datasmith.</description>
	<lastBuildDate>Fri, 27 Jan 2012 10:22:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.gobansaor.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/67e164f5d51c2b3115a7819b84505c13?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Gobán Saor &#187; BI</title>
		<link>http://blog.gobansaor.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.gobansaor.com/osd.xml" title="Gobán Saor" />
	<atom:link rel='hub' href='http://blog.gobansaor.com/?pushpress=hub'/>
		<item>
		<title>Death of the Star Schema?</title>
		<link>http://blog.gobansaor.com/2012/01/19/death-of-the-star-schema/</link>
		<comments>http://blog.gobansaor.com/2012/01/19/death-of-the-star-schema/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 16:43:48 +0000</pubDate>
		<dc:creator>gobansaor</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[Datawarehouse]]></category>
		<category><![CDATA[Star Schema]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=2336</guid>
		<description><![CDATA[With the release of the next version of PowerPivot around the corner (mid March I think), I&#8217;ve been re-acquainting myself with its new features. Most of the current version&#8217;s annoyances have been remedied (no drill-thru, no hierarchy support for example); &#8230; <a href="http://blog.gobansaor.com/2012/01/19/death-of-the-star-schema/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=2336&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.gobansaor.com/2012/01/19/death-of-the-star-schema/death-of-a-star/" rel="attachment wp-att-2337"><img class="alignleft size-full wp-image-2337" title="death of a star" src="http://gobansaor.files.wordpress.com/2012/01/death-of-a-star.jpg?w=500" alt=""   /></a>With the release of the next version of PowerPivot around the corner (mid March I think), I&#8217;ve been re-acquainting myself with its new features. Most of the current version&#8217;s annoyances have been remedied (no drill-thru, no hierarchy support for example); and the additional enhancements to the DAX language (crossjoins, alternate relationships etc) make modelling m0st any problem possible (and generally easy).</p>
<p>The more I come to know PowerPivot, the more I believe that modelled <a class="zem_slink" title="Data warehouse" href="http://en.wikipedia.org/wiki/Data_warehouse" rel="wikipedia">data warehouses</a>&#8216; days are numbered. I didn&#8217;t say data warehouses per se, rather those that attempt to centrally model end user reporting structures (usually as star-schemas).</p>
<p>There will continue to be a need for centrally controlled data warehouses (or at least simplified data views (and/or copies) of operational datasets, either provided by system vendors of by in-house IT) to bridge the <em>raw-to-actionable data gap. </em>But I suspect <a href="http://www.capgemini.com/technology-blog/2012/01/service-reporting-good-traditional-bi-bad/">the emphasis will change</a> from providing finished goods to providing semi-processed raw materials.</p>
<p>So, will the <a class="zem_slink" title="Star schema" href="http://blog.gobansaor.com/2010/07/09/star-schemas-to-boldly-go-where-no-excel-spreadsheet-has-gone-before/" rel="wikipedia">star-schema</a> become redundant? No, as it still a valid method of modelling a reporting requirement in order to make many queries simpler to phrase (this obviously applies to SQL , but also to DAX queries). But, those who build them will be doing so closer to the problem at hand, and specific to that problem (I&#8217;ve discussed this before in <a href="http://blog.gobansaor.com/2011/01/08/slowly-changing-dimensions-time-to-stop-worrying/">http://blog.gobansaor.com/2011/01/08/slowly-changing-dimensions-time-to-stop-worrying/</a>).</p>
<p>For many reports the barely modified operational data model will be all that&#8217;s required (for example, DAX doesn&#8217;t require &#8220;fact&#8221; header/detail tables to be flattened to detail level, as would be the case with a classic star).</p>
<p>&#8220;Good Enough&#8221; models will become the norm; classic &#8220;Everything You Ever Wanted to Know&#8221; centralised models a luxury for most (especially as such models tend to &#8220;age&#8221; very quickly).</p>
<p>If you&#8217;re about to invest or re-furbish your data warehouse or your reporting data sub-systems, don&#8217;t do so without first taking a serious look at PowerPivot. This is a game-changer, not just for full-stack Microsoft BI shops, but for any business that finds that their reporting datasets invariably end-up in Excel.</p>
<p>If you need any help evaluating PowerPivot or modelling your reporting needs in PowerPivot, <a href="http://www.gobansaor.com/excel-based-bi?dofstar=1"> I&#8217;m for hire</a>.</p>
<p><strong>Update:</strong></p>
<p>Just in case you think I&#8217;m an dimensional-model un-believer or likely to abandon my star-schema roots read this&#8230;.</p>
<p style="padding-left:30px;"><a href="http://blog.gobansaor.com/2010/07/09/star-schemas-to-boldly-go-where-no-excel-spreadsheet-has-gone-before/">Star Schemas: to explore strange new conformed dimensions, to seek out new measures, to boldly go where no Excel spreadsheet has gone before.</a></p>
<p style="padding-left:30px;"><a href='http://twitter.com/gobansaor' class='twitter-follow-button' data-text-color='#333333' data-link-color='#0060ff'>Follow @gobansaor</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/2336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/2336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/2336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/2336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gobansaor.wordpress.com/2336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gobansaor.wordpress.com/2336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gobansaor.wordpress.com/2336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gobansaor.wordpress.com/2336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/2336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/2336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/2336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/2336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/2336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/2336/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=2336&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2012/01/19/death-of-the-star-schema/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<georss:point>53.204039 -6.574340</georss:point>
		<geo:lat>53.204039</geo:lat>
		<geo:long>-6.574340</geo:long>
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2012/01/death-of-a-star.jpg" medium="image">
			<media:title type="html">death of a star</media:title>
		</media:content>
	</item>
		<item>
		<title>HAMMER a new Excel ETL tool for the PowerPivot age &#8230;</title>
		<link>http://blog.gobansaor.com/2011/06/21/hammer-a-new-excel-etl-tool-for-the-powerpivot-age/</link>
		<comments>http://blog.gobansaor.com/2011/06/21/hammer-a-new-excel-etl-tool-for-the-powerpivot-age/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 16:38:18 +0000</pubDate>
		<dc:creator>gobansaor</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[HAMMER]]></category>
		<category><![CDATA[microETL]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[c#-SQLite]]></category>
		<category><![CDATA[Data Quality]]></category>
		<category><![CDATA[IronPython]]></category>
		<category><![CDATA[Master Data]]></category>
		<category><![CDATA[MDM]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=1860</guid>
		<description><![CDATA[So, why am I developing this new datasmithing tool when I already have microETL to do the same task? To be honest, when I started, my aim was to simply port  a lot of my useful framework code to .NET &#8230; <a href="http://blog.gobansaor.com/2011/06/21/hammer-a-new-excel-etl-tool-for-the-powerpivot-age/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1860&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.gobansaor.com/2011/06/21/hammer-a-new-excel-etl-tool-for-the-powerpivot-age/age_of_aquarius/" rel="attachment wp-att-1864"><img class="alignleft size-medium wp-image-1864" title="age_of_aquarius" src="http://gobansaor.files.wordpress.com/2011/06/age_of_aquarius.jpg?w=239&#038;h=300" alt="" width="239" height="300" /></a>So, why am I developing this new datasmithing tool when I already have<a href="http://www.gobansaor.com/microetl"> microETL</a> to do the same task?</p>
<p>To be honest, when I started, my aim was to simply port  a lot of my useful framework code to .NET as I&#8217;m doing more and more work in pure .NET these days.</p>
<p>It&#8217;s a lot easier to do so with a project driving the work rather than the drudgery of line by line conversions simply for the sake of conversion.</p>
<p>But over the last few months of investigating the process of moving some of more useful code over to .NET; discovering<a href="http://code.google.com/p/csharp-sqlite/"> C#-SQLite</a> as a near drop-in replacement for SQLite; realising that IronPython 2.7 marks the coming-of-age of Python under .NET; discovering the ease of multi-threading programming under Net 4.o; I began to see the potential of building a tool more suited to this new emerging world of technological plenty; of 64bit, multi-core high-RAM machines playing host to ground-breaking tools such as PowerPivot, than the 32bit, single-threaded  world that microETL was born into.</p>
<p>I wanted to bring microETL back to its roots as an in-cell function. To make it sit more easily with the spreadsheet functional style of programming, a style of programming that has been more successful at attracting &#8220;civilians&#8221; to programming that any other method. To make the tool more in tune with the Excel-way of doing things.</p>
<p>At the same time, I also wanted the tool to be &#8220;detachable&#8221; from Excel, so that it could perform ETL functions server-side without the need for Excel. Ideally capable of being run from the command-line from a single no-install-required executable.</p>
<p>And so, <a href="http://blog.gobansaor.com/2011/06/10/the-datasmiths-hammer/">the Datasmith&#8217;s HAMMER was born</a>.</p>
<p>So where does this fit in with PowerPivot? When I design something like HAMMER I normally craft it around a serious of <a href="http://en.wikipedia.org/wiki/Use_case">&#8220;use cases&#8221;</a>. Below would be a one of my PowerPivot &amp; HAMMER  use cases:</p>
<h4>The Data Quality Team</h4>
<p>The sales &amp; marketing department of a wholesaling company have discovered PowerPivot and are excited about using it to help manage an upcoming merger with a recently purchased competitor, also in the wholesaling business. There&#8217;s a large overlap between customers and products supplied, and the sales structures, pricing and KPIs used by both companies are very different. The transition phase from two separate companies to a single operating unit will need detailed  planning and constant monitoring.  Oh, and there&#8217;s also the problem of the brand new ERP system that&#8217;ll replace the existing systems currently in use.</p>
<p>The group can see how PowerPivot models will help with this task but are worried about the sourcing and managing the data. They decide to appoint a small data quality team, with a mixture of IT and business experience; which will be responsible for mapping old  to old,old to new, managing the data deltas (business will still goes on, new customers, new products etc.).</p>
<p>Most of this work revolves around &#8220;master data&#8221;. Transactional data may be much larger in volume, but get the master data right then transactional data will be easy to handle as long as the processing capacity to handle the volumes is available (which thanks to PowerPivot and really fast high-RAM PCs it is).</p>
<p>In golf, there&#8217;s a saying &#8220;You drive for show, but you putt for dough&#8221;. Likewise in data: a lot of emphasis is put on the big-data transactional datastores, but real analytical benefit comes from the less sexier master-data, aka the dimensions. As a result the most important output from the data quality team will be a set of <a href="http://smdbi.blogspot.com/2009/05/what-is-conformed-dimension.html">conformed dimensions</a>.</p>
<p>Each week (and at month-end) the team will get extracts of the master and transactional data in various formats from both legacy systems and will also get the WIP master datasets from the team working on the new ERP system. From these they&#8217;ll construct point-in-time conformed-dimensions combined old with old and old with new; and will rebuild transactional feeds with new conformed keys alongside existing keys. These datatsets are then sent to the various analysis teams to enable them build Excel and PowerPivot models that will hopefully all &#8220;sing from the same hymn sheet&#8221;.</p>
<p>And how will this be accomplished? With the datasmith&#8217;s HAMMER of course (well it is my <del>day-dream</del> use-case!).  Both in-Excel and command-line HAMMER &#8220;scripts&#8221; will be used to wrangle the datasets and the complete sets packaged as SQLite database files.</p>
<p>When the analysis groups receive these files, they too will use HAMMER to extract the datasets they require (either straight to CSV for loading into PowerPivot) or into Excel for some further transformation work prior to modelling. To handle <a href="http://blog.gobansaor.com/2011/01/08/slowly-changing-dimensions-time-to-stop-worrying/">slowing-changing dimension scenarios</a>, many of the teams will squirrel away each week&#8217;s data in other to be able to model yet-unknown-but-very-likely changes of organisational structures.</p>
<p>Although this is a use-case, it&#8217;s based on reality, a reality that would have been so much easier to manage if I, and the teams I worked with, had access to technology such as HAMMER and PowerPivot.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/1860/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/1860/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/1860/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/1860/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gobansaor.wordpress.com/1860/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gobansaor.wordpress.com/1860/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gobansaor.wordpress.com/1860/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gobansaor.wordpress.com/1860/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/1860/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/1860/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/1860/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/1860/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/1860/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/1860/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1860&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2011/06/21/hammer-a-new-excel-etl-tool-for-the-powerpivot-age/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<georss:point>53.204039 -6.574340</georss:point>
		<geo:lat>53.204039</geo:lat>
		<geo:long>-6.574340</geo:long>
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2011/06/age_of_aquarius.jpg?w=239" medium="image">
			<media:title type="html">age_of_aquarius</media:title>
		</media:content>
	</item>
		<item>
		<title>Steam Powered PowerPivot</title>
		<link>http://blog.gobansaor.com/2011/03/16/steam-powered-powerpivot/</link>
		<comments>http://blog.gobansaor.com/2011/03/16/steam-powered-powerpivot/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 12:19:05 +0000</pubDate>
		<dc:creator>gobansaor</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[Steam Powered Server]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[microETL]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=1430</guid>
		<description><![CDATA[In previous posts I described various options for enabling PowerPivot models (or indeed any Excel model) as the hub in a hub&#8217;n'spoke application. This thin&#8217;n'core approach is the norm for web apps as it was for the client server applications &#8230; <a href="http://blog.gobansaor.com/2011/03/16/steam-powered-powerpivot/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1430&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://gobansaor.files.wordpress.com/2011/03/steam-engine-driven-wheel.jpg"><img class="alignleft size-full wp-image-1436" title="steam engine driven wheel" src="http://gobansaor.files.wordpress.com/2011/03/steam-engine-driven-wheel.jpg?w=500" alt=""   /></a>In previous posts I described <a href="http://blog.gobansaor.com/2011/02/12/python-powered-powerpivot/">various</a> options for enabling <a href="http://blog.gobansaor.com/2011/02/06/excel-as-a-diy-web-service/">PowerPivot models (or indeed any Excel model) as the hub</a> in a hub&#8217;n'spoke application. This thin&#8217;n'core approach is the norm for web apps as it was for the client server applications that preceded them.</p>
<p>But as we know, Excel &#8220;applications&#8221; rarely follow this pattern.</p>
<p>They tend to follow a more peer-to-peer topology, often with each player being an &#8220;equal&#8221;; collaboration being the primary aim rather than service provision.</p>
<p>But even in such scenarios there usually is a hub at the centre providing the communication linkages. Most likely the company&#8217;s email system or a &#8220;<a href="http://en.wikipedia.org/wiki/Shared_resource">shared drive</a>&#8221; of some sort. In fact, on many corporate teams or projects, you know you&#8217;ve been accepted into the fold when the project manager says the magic words &#8220;I&#8217;ll get you access to the shared drive&#8221;.</p>
<p>But sometimes, hub-like service provision or a single controller role is required and in such situations one of the <em>spokes</em> takes over that responsibility. For example, in a budgeting scenario one <em>spoke</em> may be the source of historical stats, in effect, performing a service role.</p>
<p>If classic client-server uses the powered-hub-driving-the-client-spokes like the driven wheels of a car as an analogy, then many Excel systems could be compared to a steam engine&#8217;s driven wheels; where the hub provides a centre to rotate about but it&#8217;s a particular spoke that does the driving due to its linkages to the piston arm.</p>
<p>Such systems built around the sending back and forth of workbooks or CSV files via email or shared drives are common and most of us have seen them in action. Most tend to be manual, in that they require user action on both client and server side, but with a bit of VBA magic one or both can be automated. Options for doing so on the server side are:</p>
<ul>
<li>A VBA loop that sleeps and checks for change, process any changes and sleeps &#8230;</li>
<li>Trigger a <a href="http://blog.gobansaor.com/2011/03/04/sqlscript-microetls-sql-sequencer-utility/">microETL.SQLScript</a> using a COM automation call from a external program like that used in <a href="http://blog.gobansaor.com/2011/02/12/python-powered-powerpivot/">this scenario</a>.</li>
<li>Trigger a script using an <a href="http://msdn.microsoft.com/en-us/library/aa140059(v=office.10).aspx">RTD Serve</a>r that checks for new activity.</li>
<li>Use a &#8220;Javascript&#8221; timer as per <a href="http://www.excelhero.com/blog/2010/05/multi-threaded-vba-update.html">Excel Hero&#8217;s neat trick</a>.</li>
</ul>
<p>RTD servers are rarely encountered in the wild as they only appeared on the scene in Excel XP and were not the easiest things to code or understand but now new tools such as <a href="http://blog.gobansaor.com/2007/10/04/javascript-as-an-excel-scripting-language-via-exceldna/">ExcelDNA</a> makes coding RTDs much more approachable and useful.</p>
<p><a href="http://www.excelhero.com/about/about.html">Daniel Ferry</a>&#8216;s JSTimer idea is a simpler VBA alternative to an RTD and is non-blocking unlike a pure VBA sleep-check-sleep loop. It also has the advantage that no add-in is required so the client-side could be a single-file macro-enabled workbook.</p>
<p>Using a <a class="zem_slink" title="Shared resource" href="http://en.wikipedia.org/wiki/Shared_resource" rel="wikipedia">shared folder</a> or email as the conduit for passing data back and forth and using Excel files or CSVs as the data artefacts may be the obvious choices but other &#8220;more modern&#8221; alternatives exist.</p>
<p>For example, for situations where a shared folder isn&#8217;t an option why not use something like<a href="http://aws.amazon.com/s3/"> Amazon&#8217;s S3</a>? S3 is secure (much more secure than external email), reliable, simple to use and extremely cheap. A modern-day alternative to an FTP server. Ideal for big corporates,SMEs and sole-traders.</p>
<p>Orchestrating the processing of files on S3 is very simple using tools such as <a href="http://code.google.com/p/boto/">Python&#8217;s Boto</a> (another good reason for having Python in-built in microETL). For the client-side, pure VBA could  be used, see <a href="http://blog.gobansaor.com/2008/02/22/xlaws-excel-vba-code-for-accessing-amazons-s3-and-simpledb/">my xlAWS code</a>.</p>
<p>Likewise, using workbooks as the medium of data exchange is usually the first option, with CSV files a close second. But since Excel 2003 Professional, Excel has had excellent support for the exchange of XML files via <a href="http://office.microsoft.com/en-us/training/so-that-s-how-using-xml-in-excel-2003-RZ001131077.aspx">XML Maps</a>. Although not useful for highly complex schemas or <a href="http://blog.gobansaor.com/2011/02/12/python-powered-powerpivot/">very large datasets</a> (both of which are anyway the work of the devil <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ), XML Maps are really good at handling relatively simple dialog and configuration inter-change requirements.</p>
<p>The process of importing/exporting data via XML can be easily automated using basic VBA but can also be safely left under manual control. XML files can also be generated and read by non-Excel components.</p>
<p>So when you&#8217;re confronted with a PowerPivot model that is not suitable for direct sharing, due to:</p>
<ul>
<li>technical constraints e.g. non-2010 clients</li>
<li>or business reasons e.g. detail data behind model, or the model itself, needing to be kept secret</li>
<li>or model complexity reasons i.e. too complex for a single PowerPivot model &#8230;</li>
</ul>
<p>&#8230; investing in a top-of-the-range <a class="zem_slink" title="Microsoft SharePoint" href="http://en.wikipedia.org/wiki/Microsoft_SharePoint" rel="wikipedia">SharePoint</a> farm is not your only option. By utilising some of the enormous power that comes as standard with Excel such as VBA, XML Maps, RTDs etc. further empowered by an Excel-focused ETL tool such as <a href="http://blog.gobansaor.com/category/microetl/">microETL</a> a lot can be achieved on a relatively small budget.</p>
<p>If you need help designing or configuring such a scenario or need help in understanding where PowerPivot can fit in to your decision making and information distribution requirements, <a href="http://blog.gobansaor.com/contact/">contact me</a>. <a href="http://www.gobansaor.com/">My job in life is to provide than help &#8230;</a></p>
<p>Download latest version of microETL from <a href="http://www.gobansaor.com/microetl">http://www.gobansaor.com/microetl</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/1430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/1430/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/1430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/1430/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gobansaor.wordpress.com/1430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gobansaor.wordpress.com/1430/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gobansaor.wordpress.com/1430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gobansaor.wordpress.com/1430/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/1430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/1430/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/1430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/1430/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/1430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/1430/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1430&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2011/03/16/steam-powered-powerpivot/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<georss:point>53.204039 -6.574340</georss:point>
		<geo:lat>53.204039</geo:lat>
		<geo:long>-6.574340</geo:long>
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2011/03/steam-engine-driven-wheel.jpg" medium="image">
			<media:title type="html">steam engine driven wheel</media:title>
		</media:content>
	</item>
		<item>
		<title>PowerPivot Nested Set Measures</title>
		<link>http://blog.gobansaor.com/2011/03/10/powerpivot-nested-set-measures/</link>
		<comments>http://blog.gobansaor.com/2011/03/10/powerpivot-nested-set-measures/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 11:57:03 +0000</pubDate>
		<dc:creator>gobansaor</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[Nested Set Hierarchies]]></category>
		<category><![CDATA[Nested Set PowerPivot]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=1421</guid>
		<description><![CDATA[In my ﻿Handling Flat, Parent-Child and Nested Set Hierarchies &#38; PowerPivot Powered Budgets &#38; Targets posts I discussed my use of Nested Sets as a means of modelling unbalanced and ragged hierarchies. My 1st instinct when confronted with a non-trivial hierarchy, flattened &#8230; <a href="http://blog.gobansaor.com/2011/03/10/powerpivot-nested-set-measures/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1421&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my ﻿<a href="http://blog.gobansaor.com/2011/02/18/handling-flat-parent-child-and-nested-set-hierarchies/">Handling Flat, Parent-Child and Nested Set Hierarchies</a> &amp; <a href="http://blog.gobansaor.com/2011/03/03/powerpivot-powered-budgets-targets/">PowerPivot Powered Budgets &amp; Targets</a> posts I discussed my use of Nested Sets as a means of modelling unbalanced and ragged hierarchies. My 1st instinct when confronted with a non-trivial hierarchy, flattened or not, is to reach for my trusty Nested Set builders. However it&#8217;s not just as an ETL re-modelling method that a datasmith is likely to encounter nested sets, they also exist as variations-on-the-theme in production system data models. One of the most common use is in the modelling of systems&#8217; ACLs (Access Control Lists). This use of range queries (often utilising &#8220;positive ranges&#8221; MINUS &#8220;negative ranges&#8221;  plus or minus &#8220;ragged lists&#8221;) can be very complex and would prove difficult to model using the flattened cross-join options available in PowerPivot (point solutions by &#8220;hard coding&#8221; a fixed set of relationships are possible, but a generic &#8220;handle all comers&#8221; solution would be very difficult).</p>
<p>But should such ACL-like models be used in PowerPivot cubes? In general I would say no. For two reasons:</p>
<ul>
<li>The people building and utilising self-service BI solutions, like PowerPivot, tend to be high on the &#8220;need to know&#8221; hierarchy. They tend to have and need full visibility of  an organisation&#8217;s data. Such security as is needed will tend to be at the data source level i.e. what full datasets they have access to, or what filtering of such data is required, and is usually controlled by an IT-staffed gateway service of some sort.</li>
<li>As PowerPivot is, in the main, about just-in-time task-specific analysis, the simplification (via flattening or &#8216;hard coding&#8217; of relationships) will usually do the trick.</li>
</ul>
<p>But, what if you really needed to model such a thing in PowerPivot, is it possible? Yes, is the simple answer. See below for an example of a Nested Set Measure (click for larger view):</p>
<p><a href="http://gobansaor.files.wordpress.com/2011/02/nested_set_powerpivot.png"><img class="aligncenter size-full wp-image-1387" title="Nested_Set_PowerPivot" src="http://gobansaor.files.wordpress.com/2011/02/nested_set_powerpivot.png?w=500&#038;h=270" alt="" width="500" height="270" /></a></p>
<p>The example shows a simple &#8220;get me and mine&#8221; downwards range query, but the full power of Nested Set queries is possible. The downside of this approach will be the &#8220;flatness&#8221; of the views achievable using Excel pivot tables. The addition of a &#8220;display column&#8221; where node names are indented by the number of spaces in line with their &#8220;depth&#8221; can help. But where I see this approach being useful, the problem with pivot table representation would not be a major problem.</p>
<p>This type of cube would most likely be implemented as a <a href="http://blog.gobansaor.com/2011/02/06/excel-as-a-diy-web-service/">&#8220;hub&#8221; cube </a> or accessed via <a href="http://powerpivotpro.com/2010/06/21/using-excel-cube-functions-with-powerpivot/">Excel&#8217;s CUBE  formula</a>. In other words the presentation of the data would be through other cubes or simply via &#8220;Excel reports&#8221;.</p>
<p>An example of where this approach might be useful would be in preparing data for generating employee performance reports. Employees might have complex KPIs that depend on their viability of the organisation e.g. temporary tele-sales staff might only see and be measured against their &#8220;own data&#8221;, while established sales staff might be measured against their team&#8217;s performance. Also, staff such as marketing support who although embedded in sales teams might be measured against sales of a brand within a specific geographic region.</p>
<p>Is this easy, or is it indeed self-service BI? There would, in the scenario above, still be a lot of self-service i.e the excel reports and the &#8220;spoke&#8221; cubes; even the Nested Set measures could be coded by &#8220;civilians&#8221; once they were provided with a template and with perhaps some re-modeling of the source hierarchies by professional ETL&#8217;ers.</p>
<p>But as I keep saying &#8220;<em>ETL is hard, get over it!</em>&#8220;. Modern operational systems can be devilishly complex, and even when not, the correct reading of a system&#8217;s data model is a skill that takes sometime to master &#8211; and having basic SQL skills is essential.</p>
<p>That&#8217;s why<a href="http://blog.gobansaor.com/2011/03/04/sqlscript-microetls-sql-sequencer-utility/"> SQL is the heart of my microETL tool</a>, because it is a serious ETL tool and if SQL (and I&#8217;m talking very basic SQL here, the sort SQLite provides) is beyond you (or you have better things to be doing with your time <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) then you should assign the back-end ETL to others.</p>
<p>The good news is that once the ETL back-end is &#8220;sorted&#8221; the new breed of self-service BI tools really do work; just don&#8217;t expect them to magic away the inherent complexity of source systems. Maybe one day they will, but that day is not today.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/1421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/1421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/1421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/1421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gobansaor.wordpress.com/1421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gobansaor.wordpress.com/1421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gobansaor.wordpress.com/1421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gobansaor.wordpress.com/1421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/1421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/1421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/1421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/1421/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/1421/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/1421/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1421&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2011/03/10/powerpivot-nested-set-measures/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<georss:point>53.204039 -6.574340</georss:point>
		<geo:lat>53.204039</geo:lat>
		<geo:long>-6.574340</geo:long>
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2011/02/nested_set_powerpivot.png" medium="image">
			<media:title type="html">Nested_Set_PowerPivot</media:title>
		</media:content>
	</item>
		<item>
		<title>Slowly Changing Dimensions &#8211; time to stop worrying.</title>
		<link>http://blog.gobansaor.com/2011/01/08/slowly-changing-dimensions-time-to-stop-worrying/</link>
		<comments>http://blog.gobansaor.com/2011/01/08/slowly-changing-dimensions-time-to-stop-worrying/#comments</comments>
		<pubDate>Sat, 08 Jan 2011 20:15:59 +0000</pubDate>
		<dc:creator>gobansaor</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[BI all-rounder]]></category>
		<category><![CDATA[micro ETL]]></category>
		<category><![CDATA[raw-to-actionable data gap]]></category>
		<category><![CDATA[Self-service BI]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=1261</guid>
		<description><![CDATA[Anybody who has worked on a major data warehouse project has war stories about that most awkward of BI concepts, the slowly changing dimension (see http://en.wikipedia.org/wiki/Slowly_changing_dimension). The problem is not so much the need to keep a history of changes to &#8230; <a href="http://blog.gobansaor.com/2011/01/08/slowly-changing-dimensions-time-to-stop-worrying/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1261&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Anybody who has worked on a major data warehouse project has war stories about that most awkward of BI concepts, the slowly changing dimension (see <a href="http://en.wikipedia.org/wiki/Slowly_changing_dimension">http://en.wikipedia.org/wiki/Slowly_changing_dimension</a>).</p>
<p>The problem is not so much the need to keep a history of changes to master data attributes nor how to model these in the underlying data warehouse but how, or if, to model SCDs on end-user facing cubes.</p>
<p>SCDs have the potential to make end-user interaction with a cube more complex and error prone. A similar problem arises when a dimension can have several &#8220;roles&#8221; such as a sales fact with an order date,  dispatch date and invoice date.</p>
<p>Where the nature of the problem requires the exposure of dimensional change in a cube model then there&#8217;s no alternative. But, when the justification is that there might be a need in the future or that occasionally in the past that need existed then the argument that front-end cubes should solve specific not generic problems should apply. Holding that line was not always possible when the cost of developing cubes was high due to professional IT involvement and the well founded fear that the money might be wasted as requirements changed over time. The result was often cubes that were more generic (and long-lived, often to the point of irrelevancy) compared to a design that was more tightly focused.</p>
<p><a href="http://gobansaor.files.wordpress.com/2011/01/crystal-ball.jpg"><img class="alignleft size-medium wp-image-1265" title="crystal-ball" src="http://gobansaor.files.wordpress.com/2011/01/crystal-ball.jpg?w=300&#038;h=187" alt="" width="300" height="187" /></a>This is where I think self-service BI tools such as PowerPivot or Palo changes things; if those who pay for BI need no longer insist that a design is future proof or that a single model be capable of handling all the current views of the business they can concentrate on building just-in-time highly focused (and hence usually simpler) models.</p>
<p>Different groups in the same business can have variations that suit them e.g. HR/Payroll might was to see a sales rep who has changed sales area reported against the rep&#8217;s actual sales while Sales/Marketing might be interested in the potential/history of the rep&#8217;s current sales area. Likewise, with date roles, call centre management might wish to report against order date, while the warehouse guys focus on dispatch date, and Accounts only have interest in those transactions with an invoice date.</p>
<p>But what about <a class="zem_slink" title="Single version of the truth" rel="wikipedia" href="http://en.wikipedia.org/wiki/Single_version_of_the_truth">single-version-of-the-truth</a> worries, what about reconciliation? This is where professional IT come back into the picture. Self service BI doesn&#8217;t mean do-it-all-by-yourself BI, no more than a self-service sausage and bacon hotel breakfast means you first catch a pig. The marshalling and delta management of data remains an IT responsibility, very small organisations and/or skilled end-users may be the exception to the rule, but ETL and data repository design are non-trivial problems and look likely to remain so. But with more and more of the front-end been delegated to (or snatched by) business end-users, the nature of back-end ETL and data modeling will change. Many of the resources once applied to a fully IT owned BI project will be focused on speedy, cost effective and accurate data provisioning, a less glamorous and largely invisible role compared to putting pretty dashboards on the CEO&#8217;s desktop. As a result, many IT staff with front-of-house skills who are now regarded as IT &#8220;assets&#8221; will more and more see themselves (and be seen) as front-line business ones.</p>
<p>So is this end of the road for the all-rounder, the catcher of pigs, frier of bacon and breakfast waiter rolled into one? No, I think not, there will continue to be a need for those individuals (or small teams) who can quickly and effectively tackle<em> the once-offs, the emergencies and the need-to-knows</em> that &#8220;normal&#8221; business practice continually brings to the surface. Small business (or isolated departments in larger concerns) will also continue to need tailored &#8221;end-to-end solutions&#8221;.</p>
<p>While I do see the continuing need for <em>all-rounders</em> their background (and hence the tools and product features to support them) will change from IT folks with business skills  to end-users with IT skills. Tools such as PowerPivot are an important first step on that journey, more end-user focused ETL tools (and services) is the next step. In the mean time, the world will have to depend on the likes of me (IT guy with business skills armed with a hodge-podge of <a href="http://blog.gobansaor.com/category/microetl/">ETL tools</a> and techniques to bridge the <em>raw-to-actionable data gap</em>) for most of their BI all-rounders.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/1261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/1261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/1261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/1261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gobansaor.wordpress.com/1261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gobansaor.wordpress.com/1261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gobansaor.wordpress.com/1261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gobansaor.wordpress.com/1261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/1261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/1261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/1261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/1261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/1261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/1261/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1261&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2011/01/08/slowly-changing-dimensions-time-to-stop-worrying/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<georss:point>53.204039 -6.574340</georss:point>
		<geo:lat>53.204039</geo:lat>
		<geo:long>-6.574340</geo:long>
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2011/01/crystal-ball.jpg?w=300" medium="image">
			<media:title type="html">crystal-ball</media:title>
		</media:content>
	</item>
		<item>
		<title>PowerPivot &amp; The Parable of the Snow Sock</title>
		<link>http://blog.gobansaor.com/2011/01/01/the-parable-of-the-snow-sock/</link>
		<comments>http://blog.gobansaor.com/2011/01/01/the-parable-of-the-snow-sock/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 20:41:36 +0000</pubDate>
		<dc:creator>gobansaor</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[eadestown]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[Ireland]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[snow socks]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=1249</guid>
		<description><![CDATA[For those of us in North West Europe this winter has been one of the coldest on record; not only cold but early, in this part of the world winter usually only kicks in after Christmas. The beauty of a &#8230; <a href="http://blog.gobansaor.com/2011/01/01/the-parable-of-the-snow-sock/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1249&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>For those of us in North West Europe this winter has been one of the coldest on record; not only cold but early, in this part of the world winter usually only kicks in after Christmas. The beauty of a perfect White Christmas Day did make up for the previous month of extreme cold and inconvenience but only just; and would not have at all if I had not invested in a simple piece of relatively new technology; a pair of snow socks.</p>
<p><img class="alignleft size-medium wp-image-1250" title="Blessington Lake frozen from shore to shore" src="http://gobansaor.files.wordpress.com/2011/01/dsc02665.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></p>
<p>For it was this pair of snow socks that enabled our household to continue to get to work and school, to Christmas shop, visit a sick relative and drive on Christmas Day to the winter wonderland that was a frozen Blessington Lake.</p>
<p>As the cold spell continued the main roads (and eventually the motorways) became hazardous to travel on; minor roads and housing estates became close to impassable for many normal cars. As the ability of the county council to keep roads functioning decreased (due to an early winter catching it on the hop with insufficient salt stocks and no Plan B) so my family and our neighbours realised than self-help was our best bet. People started investing in snow shovels, sand and salt, and hiring <a href="http://www.jcb.com/">JCB</a>s; gritting hills, clearing school and community hall carparks, helping dig out neighbours&#8217; and strangers&#8217; cars. And I invested in a pair of Weissenfels WeissSock Snow Socks (from <a href="http://www.micksgarage.ie/tyre-snow-socks.aspx">http://www.micksgarage.ie/tyre-snow-socks.aspx</a>).</p>
<p>Snow chains or even <a class="zem_slink" title="Tire" href="http://en.wikipedia.org/wiki/Tire" rel="wikipedia">winter tyres</a> are not seen as necessary by most drivers in Ireland or the UK; our winters (including this and last year&#8217;s nearly as cold one) are not that severe. Most are unaware of the alternative, <a href="http://www.rud.com/en/produkte/schneeketten/schneeketten1/hightech_textil_stahl.html">the snow sock</a>, a relatively new concept; in effect, a fabric <a class="zem_slink" title="Snow chains" href="http://en.wikipedia.org/wiki/Snow_chains" rel="wikipedia">snow chain</a>. A fraction of the cost of winter tyres; easier to use (and nearly as effective) as snow chains.</p>
<p>Having a pair meant we had our own self-service road treating device, insuring we could safely get to the local town or nearest motorway and  when the M7 motorway was backed-up being able to use the old un-treated N7 road to bypass it.</p>
<p><a href="http://www.powerpivot.com/">PowerPivot</a> is to Excel what a Snow Sock is to a car in a snowy winter. The ideas and a lot of the technology used in both products have been around for some time, but the accessibility, low-cost and &#8220;good enough&#8221; packaging are game changers.</p>
<p>Like our neighbourhood waiting on an over-stretched, under-funded county council to solve our &#8220;last mile&#8221; problems, countless small companies, departments and individuals in large organisations are likewise awaiting their IT <a href="http://en.wikipedia.org/wiki/Waiting_for_Godot">Godots</a> often in vain and if delivered, often too little and/or too late.</p>
<p>Two technologies that I&#8217;ve been introduced to in the last 12 months:</p>
<ul>
<li><a href="http://blog.gobansaor.com/category/powerpivot/">PowerPivot</a> and the</li>
<li>Snow Sock;</li>
</ul>
<p>both liberating, both having the ability to make aspects of my life much better and much easier. I expect to see a lot more people adopt both in the year to come.</p>
<p>So if you&#8217;re stuck for some New Years&#8217;s resolutions this year:</p>
<ul>
<li>Buy some snow socks now; i.e. do NOT wait until the next &#8220;snow event&#8221;!</li>
<li>Learn PowerPivot.</li>
</ul>
<div><span class="Apple-style-span" style="font-size:14px;line-height:23px;"><br />
</span></div>
<p>Happy New Year <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>UPDATE: Looks like Marco &amp; Alberto are doing one of their PowerPivot courses in Dublin this March, so no excuses for not learning PowerPivot <a href="http://sqlblog.com/blogs/marco_russo/archive/2011/02/15/new-powerpivot-workshop-dates-copenhagen-dublin-and-zurich.aspx">http://sqlblog.com/blogs/marco_russo/archive/2011/02/15/new-powerpivot-workshop-dates-copenhagen-dublin-and-zurich.aspx</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/1249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/1249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/1249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/1249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gobansaor.wordpress.com/1249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gobansaor.wordpress.com/1249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gobansaor.wordpress.com/1249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gobansaor.wordpress.com/1249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/1249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/1249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/1249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/1249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/1249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/1249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1249&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2011/01/01/the-parable-of-the-snow-sock/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>53.204039 -6.574340</georss:point>
		<geo:lat>53.204039</geo:lat>
		<geo:long>-6.574340</geo:long>
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2011/01/dsc02665.jpg?w=300" medium="image">
			<media:title type="html">Blessington Lake frozen from shore to shore</media:title>
		</media:content>
	</item>
		<item>
		<title>The 64-bit question, and the birth of MicroETL</title>
		<link>http://blog.gobansaor.com/2010/09/25/the-64-bit-question-and-the-birth-of-microetl/</link>
		<comments>http://blog.gobansaor.com/2010/09/25/the-64-bit-question-and-the-birth-of-microetl/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 17:36:39 +0000</pubDate>
		<dc:creator>gobansaor</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[microETL]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[xLite]]></category>
		<category><![CDATA[64-bit]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=1151</guid>
		<description><![CDATA[Like the original $64 question, I have for a long time being pondering the Excel 64-bit question. Whether &#8220;To take it, or leave it&#8221;? When first announced, I believed 64bit Excel would only be of interest to a minority of demented quants &#8230; <a href="http://blog.gobansaor.com/2010/09/25/the-64-bit-question-and-the-birth-of-microetl/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1151&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.gobansaor.com/2010/09/25/the-64-bit-question-and-the-birth-of-microetl/64or32-clear/" rel="attachment wp-att-1674"><img class="alignleft size-medium wp-image-1674" title="64or32-clear" src="http://gobansaor.files.wordpress.com/2010/09/64or32-clear.png?w=180&#038;h=90" alt="" width="180" height="90" /></a>Like the <a href="http://answers.yahoo.com/question/index?qid=20060827112827AAcfNx8">original $64 question</a>, I have for a long time being pondering the Excel 64-bit question. Whether &#8220;To take it, or leave it&#8221;?</p>
<p>When first announced, I believed 64bit Excel would only be of interest to a minority of demented quants in investment banks hacking their way to yet another evil model to bankrupt the world. The problem of incompatible add-ins, COM controls etc. would also make its widespread adoption less likely.</p>
<p>But three things changed my mind:</p>
<ul>
<li>first, the appearance of <a class="zem_slink" title="Windows 7" href="http://www.microsoft.com/windows/windows-7/default.aspx" rel="homepage">Windows 7</a> powered 64-bit PCs on many worker&#8217;s desks</li>
<li>second, my embedding of SQLite into Excel which enables me to effectively use the extra memory available to a 64-bit instance to hold, analyse and transform a huge amount of raw relational data (in the form of a &#8220;:memory:&#8221; database)</li>
<li>and finally, the arrival on the scene of <a class="zem_slink" title="PowerPivot" href="http://www.powerpivot.com/" rel="homepage">PowerPivot</a>.</li>
</ul>
<p>Although a PowerPivot workbook doesn&#8217;t allow more than 4Gig of memory to be addressed (this is a SharePoint restriction, as a 4G workbook is likely to compress down to &lt;= the 2G upload limit imposed by SharePoint), this represents a doubling of the 32bit limits in memory terms, but much more in raw data terms as PowerPivot can achieve up to 10x-20x times data compression.</p>
<p>So, I decided to bite the bullet; fired up an <a href="http://aws.amazon.com/ec2/instance-types/">AWS 64-bit image</a> and started to upgrade my xLite code-base to handle this new world.</p>
<p>I decided on the<a href="http://tdm-gcc.tdragon.net/"> TDN-GCC MinGW-w64</a> distro to re-compile 64-bit versions of my SQLite wrapper  libraries, and set about converting  my <a href="http://msdn.microsoft.com/en-us/library/ee691831.aspx">VBA code to handle both 64-bit and 32-bit dlls</a>. So far, easy peasy.</p>
<p>The problems started when I went to convert my JavaScript &amp; Python wrappers. I couldn&#8217;t get <a href="http://blog.gobansaor.com/2010/06/04/javascript-as-an-excel-scripting-language-via-jsdb/">JSDB</a> to compile to either 32-bit or 64-bit using MinGW-w64, so I abandoned the attempt as my main use of JSDB is as a &#8220;command-line data-crunching tool&#8221; similar to, and used along side, <a href="http://code.google.com/p/csvfix/">CSVFix</a> and <a href="http://stahlworks.com/dev/swiss-file-knife.html">SFK (Swiss File Knife)</a>. Having the ability to call JavaScript in-process was relatively new and I could live without it.</p>
<p>More worrying was the problem with Python embedding, in-process Python would be harder to live without. The<a href="http://code.google.com/p/apsw/"> APSW SQLite library </a>which I had used is 32-bit only. Luckily the Python 2.7 version of its SQLite3 standard module  (aka pysqlite) now allows the loading of SQLite C extensions. This enables me to load databases under Python and extract the C handle using a specially written extension, thus enabling Excel/VBA to attach to a Python opened SQLite shared memory.</p>
<p>Without this new  loaded extension trick I would have had to modify the SQLite3 library itself as the previous 2.6 version would not divulge SQLite&#8217;s handle, while APSW did, which was  the reason I picked APSW in the first place.  As a result, xLite&#8217;s Python functionality now requires <a href="http://python.org/download/releases/2.7/">Python 2.7</a>.</p>
<p>So the end result is a somewhat reduced-functionality xLite  (no in-process JavaScript, missing APSW functionality such as Python-based SQLite virtual tables), but running on the ultimate data-smithing platform:</p>
<ul>
<li>Excel 64-bit combining with</li>
<li>the relational power of SQLite 64bit,</li>
<li>the fast and easy scripting power of Python 64-bit,</li>
<li>and topped off with the king of pivots, 64-bit PowerPivot.</li>
</ul>
<p><span style="font-family:Georgia, 'Bitstream Charter', serif;line-height:23px;font-size:14px;"> A week well spent, I think!</span></p>
<p>Oh, I&#8217;ve also decided to rename the add-in to MicroETL. This is mainly to reflect the fact that xLite (SQLite embedded in Excel) is just one element within the tool. The  pure-VBA <a href="http://www.4guysfromrolla.com/webtech/080101-1.shtml">detached-ADO</a> recordset functionality, embedded Python and xLiteScript elements can exist independently of xLite.  That, and I&#8217;m fed-up getting enquiries about X-Lite <a href="http://www.counterpath.com/x-lite.html">http://www.counterpath.com/x-lite.html</a> and I own the http://www.microETL.com URL <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/1151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/1151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/1151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/1151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gobansaor.wordpress.com/1151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gobansaor.wordpress.com/1151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gobansaor.wordpress.com/1151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gobansaor.wordpress.com/1151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/1151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/1151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/1151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/1151/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/1151/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/1151/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1151&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2010/09/25/the-64-bit-question-and-the-birth-of-microetl/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<georss:point>53.204039 -6.574340</georss:point>
		<geo:lat>53.204039</geo:lat>
		<geo:long>-6.574340</geo:long>
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2010/09/64or32-clear.png?w=300" medium="image">
			<media:title type="html">64or32-clear</media:title>
		</media:content>
	</item>
		<item>
		<title>Micro ETL in the PowerPivot age</title>
		<link>http://blog.gobansaor.com/2010/08/20/micro-etl-in-the-powerpivot-age/</link>
		<comments>http://blog.gobansaor.com/2010/08/20/micro-etl-in-the-powerpivot-age/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 18:23:24 +0000</pubDate>
		<dc:creator>gobansaor</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[microETL]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[xLite]]></category>
		<category><![CDATA[decision support]]></category>
		<category><![CDATA[micro ETL]]></category>
		<category><![CDATA[Star Schema]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=1089</guid>
		<description><![CDATA[Although PowerPivot has many of the characteristics of an ETL tool, i.e. the ability to connect to disparate datasources, to filter that data and to transform it, it will still hit a brick wall when confronted by the typical data spewed &#8230; <a href="http://blog.gobansaor.com/2010/08/20/micro-etl-in-the-powerpivot-age/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1089&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Although <a class="zem_slink" title="PowerPivot" href="http://www.powerpivot.com/" rel="homepage">PowerPivot</a> has many of the characteristics of an ETL tool, i.e. the ability to connect to disparate datasources, to filter that data and to transform it, it will still hit a brick wall when confronted by the typical data spewed out by operational systems. I&#8217;m sure this is by design as a sophisticated ETL tool is both complex to design and, probably even more relevant, is difficult to use.</p>
<p>Mind you, a few years back we IT pros would have said the same about front-end BI cube configuration, and behold today we have tools such as PowerPivot that prove that this doesn&#8217;t always hold true. Perhaps subsequent versions of PowerPivot will do the same for ETL as it has for BI cubes. In the mean time much of the necessary ETL will have to take place prior to loading into PowerPivot.  But where?</p>
<p>First off, what&#8217;s ETL?</p>
<p>The term ETL applies to one of the trinity of activities that have, over the last two decades or so, been at the heart of reporting/decision support systems. The other two terms: DW (data warehousing)  &amp; BI (business intelligence), are sometimes used to refer to the whole process but can also be used to refer to two distinct sub-processes. Confused? Well, so you should be; these terms have been abused and redefined by scores of vendors over the years but for our purpose here we&#8217;ll stick to their roles as acronyms for the two of the  processes involved in the preparation &amp; presentation of reporting data.</p>
<p>BI is the term now most commonly associated by non-IT folks with decision support systems, as it&#8217;s role is the most obvious i.e. front-end presentation and manipulation of data; the dashboards, pivots, charts, summary lists etc&#8230;</p>
<p>DW, data warehousing, is the term that most IT people who&#8217;ve been in the business for a while would use to describe the techniques, best practice etc. associated with this area. The heart of traditional DW was the data warehouse itself, a mighty repository of historical data optimized for reporting purposes. When DW as a concept started it was very rare indeed for operational (OLTP) systems to hold transactional data for more that a few weeks, usually just long enough to get through month-end.  Such specially built datastores&#8217; days may be numbered as the data capacity of operational systems grow and the data munching ability of new ETL techniques (<a href="http://en.wikipedia.org/wiki/MapReduce">MapReduce</a> for example) to transform vast amounts of data continues to increase.</p>
<p>ETL stands for Extract,Transform and Load; sometimes also styled, ELT, extract load &amp; transform (PowerPivot would fall into this catergory). This is the process which traditionally swallowed most of the development budget in DW/BI projects (and kept me gainfully employed for years). It was the area where the dark arts of datasmiths collided with the often frightening reality of raw untamed data, with the added venom of corporate-politics-driven &#8220;data ownership&#8221; battles.  A messy business, and continues to be, even in these days of open data and open <a class="zem_slink" title="Application programming interface" href="http://en.wikipedia.org/wiki/Application_programming_interface" rel="wikipedia">APIs</a>.</p>
<p>ETL tools vary from text-editor written SQL to hugely expensive point&#8217;n'click ETL packages. Packaged ETL vendors promised (and continue to do so) that their tools would vanquish the dark arts of datasmiths with products that were so easy to use that the CEO would chip in with a few scripts to get the project finished. The reality was that IT types  found they had to learn yet another sub-optimal &#8220;language&#8221; and more often than not had to drop-down to &#8220;proper&#8221; languages to actually drive the thing to completion. ETL was (and still largely is) the preserve of IT.</p>
<div id="attachment_1100" class="wp-caption alignleft" style="width: 310px"><a href="http://gobansaor.files.wordpress.com/2010/08/herding-cats.jpg"><img class="size-medium wp-image-1100 " title="Herding Cats" src="http://gobansaor.files.wordpress.com/2010/08/herding-cats.jpg?w=300&#038;h=173" alt="" width="300" height="173" /></a><p class="wp-caption-text">ETL is easier than herding cats but just about ...</p></div>
<p>The tools have improved a lot since those early days and open source has at least removed for some the 6 figure licensing costs from the equation. ETL, <a href="http://technologizer.com/2010/08/13/google-app-inventor/">like programming in general</a>, is hard, so get over it. Tools, basic knowledge of SQL and data modelling skills can help to make ETL approachable to non-IT types, but it still has the potential to make your head hurt.</p>
<p>So what&#8217;s a PowerPivot&#8217;r to do?</p>
<p>If your organisation already has a data warehouse in place you&#8217;re in luck as it&#8217;s quite likely a lot of the data you require will exist in the optimal PowerPivot import format, <a href="http://blog.gobansaor.com/2010/07/09/star-schemas-to-boldly-go-where-no-excel-spreadsheet-has-gone-before/">i.e. a star schema</a>. You might be out of luck though, a significant percentage of DWs will not have used dimensional modeling and you could find yourself looking a complex <a href="http://en.wikipedia.org/wiki/Online_transaction_processing">OLTP like</a> data model. In that case, and in the case of pulling the data directly from an operational system, you&#8217;re in the micro ETL business. Even if your IT infrastructure provides you with cleansed and understandable data, you&#8217;ll be faced with integrating external or<a href="http://vaughanmerlyn.com/2008/07/22/shadow-it-the-good-the-bad-and-the-ugly/"> shadow-IT</a> data (probably one of the main reasons why PowerPivot appeals); again you&#8217;ll either need IT support or else you must learn how to do it yourself.</p>
<p>Long before the likes of PowerPivot appeared I regularly found myself  in need of a micro ETL toobox i.e. a set of tools that would enable me to quickly and cost-effectively prepare data for loading into some system or other. Nine out of ten times that system was an Excel <a class="zem_slink" title="Pivot table" href="http://en.wikipedia.org/wiki/Pivot_table" rel="wikipedia">PivotTable</a> (the rest of the time it was usually a master data take-on task or some variation of systems&#8217; commissioning). Although the consumers of my datasmithing services would most likely assume that I used Excel alone to perform these works of wonder, I usually had an Oracle database (along with its data loaders and superb PL/SQL language) as my secret ingredient. This combination of Excel and Oracle served me (and my clients) well, but it wasn&#8217;t the Oracle bit that gave me the edge; I could, and did, substitute SQL Server and MS Access for the SQL layer. The real trick was the combination of Excel&#8217;s flexibility/presentational strengths with SQL&#8217;s list handling power.</p>
<p>The problem with this approach was that the interface between the SQL engines &amp; the spreadsheets often involved quite a number of manual steps, and the presence of database software (even MS Access) could not always be depended on. It took my discovery of <a class="zem_slink" title="SQLite" href="http://sqlite.org/" rel="homepage">SQLite</a> to enabled me to finally combine the two worlds; <a href="http://www.gobansaor.com/microetl/">microETL was born</a>!</p>
<p>This combination of Excel, and an in-process SQL engine (provided by SQLite) with the added optional ability to call either VBA or Python scripts, has provided me with a hugely flexible and powerful micro ETL tool. Now, with the arrival of PowerPivot, I have both the micro ETL and micro BI tools to build cost-effective Excel-based decision support systems.</p>
<p>Being Excel based, means that the end result is delivered in a format that many business people are comfortable with; PowerPivot is designed very much with &#8220;civilian&#8221; datasmiths in mind. Likewise, microETL&#8217;s ability to use VBA, simple SQL and Excel formula to perform data transformations makes a large part (if not all) of the ETL process &#8220;civilian friendly&#8221;.</p>
<p>I&#8217;m not saying that everything I can do with microETL will be as easy for an non-IT datasmith; many datasources are either too difficult and/or extremely time consuming for end-users to navigate; but much of the business logic can be expressed in Excel terms with the highly technical or time-consuming tasks handled by SQL or VBA/Python/JavaScript. <a href="http://www.gobansaor.com/microetl/?1">MicroETL</a> is not only for once-off transformations but can also be used to automate ETL, report generation and refresh tasks (including refreshing PowerPivot itself).</p>
<p>So, if you&#8217;re thinking about utilising PowerPivot, but need help in preparing your data and automating the tasks involved, <a href="http://www.gobansaor.com/microETL-fix-my-list/?1">perhaps we should talk.</a></p>
<p>UPDATE:</p>
<p>I&#8217;m in the process of developing an off-shoot of mciroETL called HAMMER which I believe will be even more suitable as a micro ETL tool for the PowerPivot age. You can follow it&#8217;s progress <a href="http://blog.gobansaor.com/category/hammer/">here &#8230;</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/1089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/1089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/1089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/1089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gobansaor.wordpress.com/1089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gobansaor.wordpress.com/1089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gobansaor.wordpress.com/1089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gobansaor.wordpress.com/1089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/1089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/1089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/1089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/1089/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/1089/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/1089/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1089&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2010/08/20/micro-etl-in-the-powerpivot-age/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<georss:point>53.204039 -6.574340</georss:point>
		<geo:lat>53.204039</geo:lat>
		<geo:long>-6.574340</geo:long>
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2010/08/herding-cats.jpg?w=300" medium="image">
			<media:title type="html">Herding Cats</media:title>
		</media:content>
	</item>
		<item>
		<title>PowerPivot &#8211; Show Detail not allowed!</title>
		<link>http://blog.gobansaor.com/2010/06/29/powerpivot-show-detail-not-allowed/</link>
		<comments>http://blog.gobansaor.com/2010/06/29/powerpivot-show-detail-not-allowed/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 14:43:36 +0000</pubDate>
		<dc:creator>gobansaor</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[drill-though]]></category>
		<category><![CDATA[drill-thru]]></category>
		<category><![CDATA[Gemini]]></category>
		<category><![CDATA[show detail]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=1011</guid>
		<description><![CDATA[Last week, I at long last set aside some time to put PowerPivot through its paces, triggered by my purchasing of Excel 2010 (in itself a momentous occasion as without the attraction of PowerPivot I would have followed my, and &#8230; <a href="http://blog.gobansaor.com/2010/06/29/powerpivot-show-detail-not-allowed/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1011&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Last week, I at long last set aside some time to put PowerPivot through its paces, triggered by my purchasing of Excel 2010 (in itself a momentous occasion as without the attraction of PowerPivot I would have followed my, and most other Office users&#8217;, usual pattern of waiting 3-5 years or so before investigating the &#8216;latest&#8217; edition).</p>
<p>The verdict?</p>
<p>In general, still impressed, the concept <a href="http://blog.gobansaor.com/2009/04/01/project-gemini-xxl-excel-on-steroids/">demo&#8217;d to me over a year ago</a> has evolved into an impressive first version. Some things such as hierarchies did not make it (hierarchies are constructed from cross-joins of field /attribute sets as per a normal pivot table) so no hierarchy rules as would be the case with standard OLAP cubes; but perhaps for many end users the &#8216;traditional&#8217; construct-on-the-fly hierarchies will be more approachable.</p>
<p>The DAX functionality is better than I expected; easier for non-techies than MDX but still powerful.</p>
<p>Importing data is hassle free and intuitive, the <a href="http://powerpivotgeek.com/2009/11/11/a-peek-inside-the-client-architecture/">VertiPaq engine</a> does a wonderful job of compressing the imported data and the resulting in-memory column-store is certainly very fast. I like the &#8216;linked-table&#8217; option which allows for normal Excel tables (the one useful <a href="http://www.databison.com/index.php/table-formulas-in-excel/">new feature</a> that Excel 2007 introduced) to be added to the PowerPivot star-schema.  Being able to import any datasource publishable in AtomPub format (<a href="http://code.google.com/apis/gdata/">such as Google Docs spreadsheets</a>!) is also nice.</p>
<p>So it&#8217;s all good then? Yes, except for one really annoying missing; no drill-through (aka Show Detail, aka drill-thru) allowed.</p>
<p>What? surely some mistake!</p>
<p>Afraid not, I initially thought the measures I attempted to <em>Show Detail</em> on were too complex (as the error message &#8220;Show Details cannot be completed on a calculated cell&#8221; suggested). Then I assumed it had been cut to meet a delivery deadline and would appear in a subsequent version. But no,<a href="http://twitter.com/donalddotfarmer"> Donald Farmer</a> confirmed that is was intentionally removed as the feedback from IT organisations was not to allow end-users the ability to drill-through to potentiality millions of rows when running under a SharePoint server. As for those of us running PowerPivot on the client, we already have all the data, so no need for show-detail!</p>
<p>Okay, I can understand IT&#8217;s reluctance to allow a multi-million row drill-through but surely that should be the decision of individual IT groups to allow or not, and if allowed, to provide the ability to limit the amount of data returned.</p>
<p>A million row result is of limited use, most <em>Show Details</em> are a few thousand at max, and typically sub-1000, so sensible limits can easily be enforced.</p>
<p>The client-side (the side that matters most to me) is a very different story. Here the excuse that the data is already there, is exactly that, an excuse. Using the same logic the drill-through on a normal pivot-table should be unnecessary. Yet, if you watch end-users construct pivots they use it constantly; not just to discover the detail behind a figure but as often as not as a way of validating that the model they&#8217;ve constructed is correct.</p>
<p>This spot-checking of figures is the main &#8216;test methodology&#8217; used in the wild. Spreadsheet &#8216;developers&#8217; do not construct sophisticated test harnesses and procedures. You might argue they should, but they don&#8217;t and likely never will. And as for the &#8216;multi-million row result&#8217; problem, end-users are not idiots they&#8217;re just end-users, they&#8217;ll do it once, and learn to be more careful the next time (or they&#8217;ll use the limit-rows option).</p>
<p>This lack of drill-though will definitely mean I will continue to use normal pivot tables for situations that would otherwise be better solved using PowerPivot. As many such models will be based on relatively small datasets ( sub-100,000  &#8217;facts&#8217;) it might be suggested there&#8217;s no need for PowerPivot. But this is to miss the &#8216;intellectual&#8217; power (as opposed to the massive data crunching power of VeriPaq) at the heart of PowerPivot; the star-schema.</p>
<p>Most of  the commentary on PowerPivot has focused on its ability to handle really large datasets but this emphasis on &#8216;big-data&#8217; (something the rest of the BI industry share) often ignores the power of human-scale small-data (i.e. the world of the spreadsheet jockeys). The power of <a href="http://en.wikipedia.org/wiki/Star_schema">a star-schema</a> to model BI problems (be they small or large) is something I&#8217;ll return to in a later post. (UPDATE: <a href="http://blog.gobansaor.com/2010/07/09/star-schemas-to-boldly-go-where-no-excel-spreadsheet-has-gone-before/">http://blog.gobansaor.com/2010/07/09/star-schemas-to-boldly-go-where-no-excel-spreadsheet-has-gone-before/</a>)</p>
<p>Star-schema models (particularly when the speed of access worries are removed by an in-memory column-store) are superior in many respects to the fully denormalised flattened tables that we currently build to support pivot-tables and are also more flexible than the multi-dimensional cell approach of pure MOLAP cubes. Combining such data models with the user-friendliness of spreadsheets,alongside the added magic of a modelling language such as DAX (and some MDX where necessary) on a datasmith&#8217;s laptop is the true beauty of PowerPivot.</p>
<p>So, lack of drill-through aside, &#8220;Well done Microsoft!&#8221;</p>
<p>UPDATE:</p>
<p>For a semi-acceptable alternative to no drill-thru see <a href="http://blog.gobansaor.com/2011/03/22/powerpivot-show-details/">http://blog.gobansaor.com/2011/03/22/powerpivot-show-details/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/1011/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/1011/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/1011/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/1011/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gobansaor.wordpress.com/1011/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gobansaor.wordpress.com/1011/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gobansaor.wordpress.com/1011/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gobansaor.wordpress.com/1011/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/1011/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/1011/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/1011/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/1011/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/1011/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/1011/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=1011&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2010/06/29/powerpivot-show-detail-not-allowed/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<georss:point>53.204039 -6.574340</georss:point>
		<geo:lat>53.204039</geo:lat>
		<geo:long>-6.574340</geo:long>
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>JavaScript as an Excel scripting language via JSDB</title>
		<link>http://blog.gobansaor.com/2010/06/04/javascript-as-an-excel-scripting-language-via-jsdb/</link>
		<comments>http://blog.gobansaor.com/2010/06/04/javascript-as-an-excel-scripting-language-via-jsdb/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 17:44:59 +0000</pubDate>
		<dc:creator>gobansaor</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSDB]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[xLite]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=953</guid>
		<description><![CDATA[A few years back I posted about JavaScript as an Excel scripting language via ExcelDNA. That involved using JavaScript (in the guise of JScript.NET) as an ExcelDNA scripting language. It was purely an academic exercise to prove it could be done, I continued &#8230; <a href="http://blog.gobansaor.com/2010/06/04/javascript-as-an-excel-scripting-language-via-jsdb/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=953&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A few years back I posted about <a href="http://blog.gobansaor.com/2007/10/04/javascript-as-an-excel-scripting-language-via-exceldna/">JavaScript as an Excel scripting language via ExcelDNA</a>. That involved using JavaScript (in the guise of JScript.NET) as an <a href="http://exceldna.typepad.com/">ExcelDNA </a> scripting language. It was purely an academic exercise to prove it could be done, I continued to use C# (or increasingly VB.NET) to build .NET user defined functions. This time however, I&#8217;ve managed to embed JavaScript (in the guise of <a href="http://www.mozilla.org/js/spidermonkey/">Mozilla Foundation&#8217;s SpiderMonkey</a>) directly via a native C interface not to prove I could do it (even though there&#8217;s a definite satisfaction in simply doing it) but to use it.</p>
<p>Why add another scripting language to xLite, hasn&#8217;t it already got Python?</p>
<p>True, Python is and remains a very powerful add-on to <a href="http://www.gobansaor.com/xlite">xLite</a>. It&#8217;s a mature and long-established language, popular amongst IT professionals and &#8220;citizen programmers&#8221; alike. But, it&#8217;s a bit of a monster and can be awkward to package, particularly on Windows. By using <a href="http://www.py2exe.org/index.cgi/Tutorial">Py2Exe</a> and after a lot of digging on <a href="http://groups.google.com/group/wxPython-users/msg/dfad0122afda5d21?pli=1">the issue of manifest files</a> I have managed to package and isolate xLite&#8217;s Pythonic bits so that it can be used on a PC without first installing the required Python version (<del datetime="2010-06-11T10:46:38+00:00">I&#8217;ve only tested against V2.6, Python&#8217;s lack of a side-by-side Windows installation capability is a major pain-in-the-butt</del> bad news: tested against Python 2.5 &amp; it doesn&#8217;t work; good news: side-by-side is possible; simply change the system path to reflect which-ever version you wish to run at the command line; xLite will (must) continue to use V2.6). <del datetime="2010-06-11T10:47:57+00:00">This &#8220;version-hell&#8221; mitigates against using Python as a core-element of xLite, fine for those of us who are comfortable with and require the full power of Python, but not as the tool&#8217;s primary scripting environment.</del></p>
<p>No, what I need is:</p>
<ul>
<li>a light (single EXE or DLL preferably) and an approachable popular language,</li>
<li>with native SQLite support,</li>
<li>runable as standalone executable (on both Windows &amp; Linux),</li>
<li>embeddable (is that a word?) in Excel via VBA-friendly DLL.</li>
</ul>
<p>Add to that essential list some nice-to-haves such as:</p>
<ul>
<li>native COM-interface support (for the likes of ADO etc.),</li>
<li>native networking support, for HTTP, raw TCP sockets etc.,</li>
<li>native (and easy to use) XML and JSON parsers and emitters,</li>
<li>ability to spawn detached/attached command line processes and the ability to stream data to and from such processes; allowing me to easily orchestrate &amp; provide a &#8220;grid&#8221; of processes (scripted, command line executables, Excel instances) both local and remote (with remote being either traditional servers, http servers or <a href="http://hadoop.apache.org/common/docs/current/streaming.html">Hadoop Streaming</a> grids).</li>
</ul>
<p>While looking at the various implementations of Javascipt as a server/shell language, I came across <a href="http://www.jsdb.org/">JSDB &#8211; JavaScript for Databases</a>. It&#8217;s a C++ wrapper around Mozilla&#8217;s SpiderMonkey, with lots of useful data related utility classes added. To make JSDB a perfect fit it simply required:</p>
<ul>
<li>a few minor changes to the <a href="http://www2.gobansaor.com/share/wrap_sqlite.cpp">SQlite class</a> (allow the loading of Virtual Table extensions, add the ability to pass in the address of already open SQLite memory structures);</li>
<li>a linker change to use the DLL version of SQLite;</li>
<li>plus a <a href="http://bit.ly/aNYRCk">VBA-friendly DLL wrapper</a> ( &amp; <a href="http://bit.ly/dynHWD">VBA declares</a>, to call the <a href="http://bit.ly/arH2fB">DLL</a>) to replace the JSDB shell when embedding in Excel.</li>
</ul>
<p>From my <a href="http://blog.gobansaor.com/2009/03/14/sqlite-as-the-mp3-of-data/">SQLite as the MP3 of Data</a> post:  &#8221;<em>Just as &#8220;fractional horsepower” electrical motors revolutionised manufacturing and eventually all our lives (car starter-motors, fridge motors, washing machines etc.), “fractional horsepower” databases can do the same for data. Distributing data to where it is needed.&#8221; </em>I can now add a distributed &#8220;fractional horsepower&#8221; processing engine for that distributed data. This transforms <a href="http://www.gobansaor.com/xlite">xLite</a> from a micro-ETL platform into one capable of handling (or at least orchestrating) practically any ETL (Extract, Transform &amp; Load),DI (data integration) or &#8220;Time Asset&#8221; (<a href="http://blog.gobansaor.com/2010/05/12/time-assets/">see this post</a>) process.</p>
<p>UPDATE:</p>
<p>Here&#8217;s a VBA source with examples of using the embedded JSDB engine:</p>
<p><a href="http://www2.gobansaor.com/share/example_jsdb_vb_embed.bas">http://www2.gobansaor.com/share/example_jsdb_vb_embed.bas</a></p>
<p>&#8230; and the source code for the DLL wrapper:</p>
<p><a href="http://www2.gobansaor.com/share/wrap_sqlite.cpp">http://www2.gobansaor.com/share/wrap_sqlite.cpp</a></p>
<p>&#8230; plus the VBA Declares and helper Windows APIs:</p>
<p><a href="http://www2.gobansaor.com/share/jsdb.bas">http://www2.gobansaor.com/share/jsdb.bas</a></p>
<p>UPDATE:</p>
<p>See JSDB being used to front-end Excel as a web service <a href="http://blog.gobansaor.com/2011/02/06/excel-as-a-diy-web-service/">http://blog.gobansaor.com/2011/02/06/excel-as-a-diy-web-service/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/953/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/953/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gobansaor.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gobansaor.wordpress.com/953/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gobansaor.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gobansaor.wordpress.com/953/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/953/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/953/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/953/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/953/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&amp;blog=110633&amp;post=953&amp;subd=gobansaor&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2010/06/04/javascript-as-an-excel-scripting-language-via-jsdb/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<georss:point>53.204039 -6.574340</georss:point>
		<geo:lat>53.204039</geo:lat>
		<geo:long>-6.574340</geo:long>
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
	</channel>
</rss>
