<?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; olap</title>
	<atom:link href="http://blog.gobansaor.com/category/olap/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gobansaor.com</link>
	<description>A country datasmith.</description>
	<lastBuildDate>Tue, 27 Jul 2010 17:23:43 +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://www.gravatar.com/blavatar/67e164f5d51c2b3115a7819b84505c13?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Gobán Saor &#187; olap</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>Star Schemas &#8211; to boldly go where no Excel spreadsheet has gone before</title>
		<link>http://blog.gobansaor.com/2010/07/09/star-schemas-to-boldly-go-where-no-excel-spreadsheet-has-gone-before/</link>
		<comments>http://blog.gobansaor.com/2010/07/09/star-schemas-to-boldly-go-where-no-excel-spreadsheet-has-gone-before/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 17:50:10 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[Star Schema]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=1038</guid>
		<description><![CDATA[One of the many things that delights me about PowerPivot is the central role played by the Star Schema. Those of you reading with a data-warehousing background would shrug your shoulders and say: &#8220;So what, what else would you expect to find at the core of a BI tool?&#8221;. Those from an Excel PivotTable background [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=1038&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://gobansaor.files.wordpress.com/2010/07/star-ship.png"><img class="alignleft size-medium wp-image-1044" title="star-ship" src="http://gobansaor.files.wordpress.com/2010/07/star-ship.png?w=300&#038;h=296" alt="" width="300" height="296" /></a>One of the many things that delights me about <a href="http://powerpivot.com/">PowerPivot</a> is the central role played by the Star Schema. Those of you reading with a data-warehousing background would shrug your shoulders and say: &#8220;So what, what else would you expect to find at the core of a BI tool?&#8221;.</p>
<p>Those from an Excel PivotTable background would ask: &#8220;What&#8217;s a Star Schema, why do we need one,what&#8217;s wrong with a the good old-fashioned single flattened table?&#8221;.</p>
<p>Those from a classic <a href="http://en.wikipedia.org/wiki/MOLAP">MOLAP</a> background (Essbase, TM1, Palo) might also ask: &#8220;Why do we need this extra layer? Load the cube directly from the operational data model and get on with it!&#8221;.</p>
<p>A quick Q&amp;A is perhaps the best way for me to explain why star schema design is a powerful skill in a datasmith&#8217;s toolset.</p>
<p>First off, what&#8217;s a Star Schema?</p>
<p>A Star Schema (also know as the dimensional model) is a denormalised (flattened) data model used to simplify an operational (OLTP) data model to better accommodate reporting and what-if analysis.</p>
<p>At its simplest, it consists of a central fact table with links back to a &#8220;surrounding&#8221; set of dimensional tables, hence the star name. A variation is the snow-flake schema, where the dimensional tables are not fully denormalised (e.g. Product Category-&gt;Product-&gt;Fact instead of  Product-&gt;Fact).</p>
<p>The role of the fact table (besides being the table that hosts most of the <a href="http://en.wikipedia.org/wiki/Measure_(data_warehouse)">measure fields</a>) is to create linkages between dimensions (such as Customer, Product, Date) usually based on an actual transactional event (e.g. Invoice) or a proposed event (such as a Budget or Forecasted Sale). In effect, simplifying  the often complex work-flow-driving connections of a typical operational system by using a single many-to-many relationship (modern ERP/CRM systems&#8217; data models consist of scores of configurable many-to-many relationships).</p>
<p>Many wrongly believe the star-schema was adopted for performance reasons and now that in-memory OLAP is becoming the norm it&#8217;s no longer necessary to use dimensional modelling techniques. In fact, in the early days of data-warehousing, RDBMs had great difficulty efficiently handling star-queries (and some such as MySQL and SQLite, still do).</p>
<p>The original primary purpose of the star schema was to simplify the SQL required to access reporting data; to make the model more approachable to non-technical users. Of course, even simple SQL was beyond the knowledge or interest of most end-users but a sizeable proportion were happy to do so (often helped by SQL &#8220;generators&#8221; such as MicroStratery or Business Objects). But even in situations where SQL-wielding civilians were not to be found, the simplicity of the dimensional models  proved to be a valuable aid when establishing and developing the warehouse data requirements. PowerPivot requires no SQL knowledge to manipulate the dimensional model which brings the original concept full-circle but this time opening its possibilities to a much wider audience.</p>
<p>But surely, concentrating on the actual reports would be a more valuable requirements gathering exercise?</p>
<p>A so called &#8220;bottom-up approach&#8221; is often the best way to approach a reporting request particularly if the reports are simple one-off &#8220;traditional&#8221; reports. But for self-service BI, this needs to be combined with a top-down dimensional design. The idea is not to build out each and every report or indeed cube but to build a structure that&#8217;ll support likely queries. The process of building a star schema provides both a logical model and a physical implementation of that model against which potential queries can be tested. I&#8217;ve worked on several POCs destined for implementation in Essbase where the star-schema was built and potential cubes mocked up using Excel PivotTables that subsequently never went any further (except for the star-schema ETL process). The end-users derived sufficient value from the denormalised star-schema pivoted and reported in Excel.</p>
<p>In traditional ROLAP data-warehouses where the cubes were built directly against star-schemas, the pure logical approach to the data model often had to take a back-seat to the necessity of fine-tuning it to make response times (be that <a href="http://en.wikipedia.org/wiki/Extract,_transform,_load">ETL</a> or user-pivoting) acceptable. This is why I much preferred situations where the star acted as a logical model from which MOLAP cubes were built.</p>
<p>With PowerPivot, <a href="http://en.wikipedia.org/wiki/ROLAP">ROLAP</a> has a new champion. The column-oriented high-compression in-memory architecture means that the compromises of the past are no longer necessary. The fact table reverts back to it primary role as a many-to-many connector. In a <a href="http://en.wikipedia.org/wiki/OLAP_cube">pure hypercube</a>, measures are just another dimension (the approach that Palo takes), this is also now true of PowerPivot models; measures can be sourced from dimension tables and dimensions from fact tables as it logically should be, but without the performance hit of old.</p>
<p>But what&#8217;s the advantage of a star schema over a flattened table when using PowerPivot?</p>
<p>It is true that the same flattened table model as used to backend a PivotTable can be used within PowerPivot. But doing so would limit the potential of the <a href="http://technet.microsoft.com/en-us/library/ee835613.aspx">DAX language</a> to construct measures such as average sales spread over potential customers (rather than actual customers that would typically be represented on a flattened table). Also, by creating &#8220;conformed dimensions&#8221; (single cross-business views of Customer, Product etc.) and using such tables as dimensional sources for multiple fact tables, &#8220;virtual cubes&#8221; that combine values from multiple fact tables can be built.</p>
<p>If you&#8217;re new to dimensional modelling I&#8217;d recommend t<a href="http://www.kimballgroup.com/">he books &amp; articles of Ralph Kimbal</a> as good starting point. You do have to be aware that some of the advice regarding efficiency trade-offs, surrogate keys etc. do not  apply in a PowerPivot scenario (<a href="http://sqlblog.com/blogs/marco_russo/archive/2010/01/26/memory-considerations-about-powerpivot-for-excel.aspx">even though other performance issues still apply</a>) but the logical design tips still apply.</p>
<p>Star Schemas: to explore strange new conformed dimensions, to seek out new measures, to boldly go where no Excel spreadsheet has gone before.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/1038/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/1038/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/1038/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/1038/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/1038/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/1038/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/1038/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/1038/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/1038/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/1038/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=1038&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2010/07/09/star-schemas-to-boldly-go-where-no-excel-spreadsheet-has-gone-before/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=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2010/07/star-ship.png?w=300" medium="image">
			<media:title type="html">star-ship</media:title>
		</media:content>
	</item>
		<item>
		<title>TAG Cubes &#8211; SQLite Star Query Part III</title>
		<link>http://blog.gobansaor.com/2009/09/29/tag-cubes-sqlite-star-query-part-iii/</link>
		<comments>http://blog.gobansaor.com/2009/09/29/tag-cubes-sqlite-star-query-part-iii/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 13:36:16 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[xLite]]></category>
		<category><![CDATA[Mondrian]]></category>
		<category><![CDATA[hypercube]]></category>
		<category><![CDATA[TAG Cube]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=738</guid>
		<description><![CDATA[It&#8217;s no secret that I&#8217;m a huge fan of SQLite and Excel, particularly when used in combination. I also greatly admire the open source BI engines, Palo and Mondrian. Mondrian appeals because of its &#8220;ROLAP with a cache&#8221; architecture and its implementation of MS&#8217;s excellent MDX language. When I say MDX is excellent I&#8217;m talking with my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=738&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s no secret that <a href="http://blog.gobansaor.com/2009/03/14/sqlite-as-the-mp3-of-data/">I&#8217;m a huge fan of SQLite</a> and Excel, particularly when used in combination. I also greatly admire the open source BI engines, <a href="www.jedox.com">Palo</a> and <a href="http://sourceforge.net/projects/mondrian/">Mondrian</a>. Mondrian appeals because of its &#8220;ROLAP with a cache&#8221; architecture and its implementation of MS&#8217;s excellent<a href="http://en.wikipedia.org/wiki/Multidimensional_Expressions"> </a><a href="http://en.wikipedia.org/wiki/Multidimensional_Expressions">MDX</a> language. When I say MDX is excellent I&#8217;m talking with my professional programmer&#8217;s hat on, as an end-user tool it&#8217;s a non-runner. This is where Palo comes in, building on the <a href="http://en.wikipedia.org/wiki/Hypercube">hypercube</a> concepts pioneered by the likes of  <a href="http://en.wikipedia.org/wiki/Applix">TM1</a> and <a href="http://en.wikipedia.org/wiki/Essbase">ESSbase</a>, it presents a designview that&#8217;s approachable by a vastly greater percentage of &#8220;civilians&#8221; than is the case with<a href="http://en.wikipedia.org/wiki/ROLAP"> </a><a href="http://en.wikipedia.org/wiki/ROLAP">ROLAP-based</a> solutions.</p>
<p>The trick behind TM1, Essbase, Palo etc. is the extension of the spreadsheet metaphor from two to multiple dimensions, while still binding the interface closely to the familiar spreadsheet (which for most of the business world is still Excel).</p>
<p>So where does <a href="http://www.sqlite.org/">SQLite</a> come in all this?</p>
<p><a href="http://blog.gobansaor.com/2007/08/30/sqlite-star-query/">At first glance</a>, SQLite lacks the s<a href="http://www.sqlite.org/optoverview.html">ophisticated join functionality</a> to support star-queries, but of course, if the dataset is small then a full-table scan of a fact table, or better still, loading the fact table into memory negates any such short-comings.</p>
<p>In fact, all traditional ROLAP engines have problems with dimensional models, particularly when you reach the point of using summary tables or query re-writes, that&#8217;s why the emerging SQL-speaking <a href="http://www.information-management.com/blogs/columnar_databases_column_major_data_warehouse_startup_analytics-10015473-1.html">columnar-databases</a> are such a godsend for ROLAP data warehouses.</p>
<p>It was SQLite combined with Excel acting as a data prep platform that was originally my main interest, so for pivoting, Excel&#8217;s own pivot table would have to do.  Nevertheless, I felt the tool was incomplete without the ability to directly pivot the underlying SQLite database.</p>
<p>Why not use Palo or Mondrian as a pivot tool? Well yes, where a fixed permanent &#8220;solution&#8221; is required then the extra moving parts of either approach would be justified and indeed necessary but that is to miss the essence of what I call datasmithing.</p>
<p>Datasmithing is not data warehousing nor is it the provision of solutions (which, for example, Palo superbly enables in multi-user budgeting situations). Datasmithing, as a skill, is of course part of the process of both, but it&#8217;s on the edges, at perhaps the planning or consumption stages.</p>
<p>Datasmiths deal in the unknown, in change, in disaster recovery, in systems&#8217; commissioning, in the never-ending barely-repeatable processes thrown up by daily business life.  For that, the toolset required must be as simple as possible (but no simpler), self-contained, document-oriented, secureable (is that a word?) and easily archived and retrieved. Excel and file-based DBMSs such as MSAccess or SQLite fit the bill nicely, server-based technologies such as DBA controlled database servers or IT installed &#8220;solutions&#8221;, less so.</p>
<p>Jedox has made Palo relatively easy to install (and likewise, Canada&#8217;s SQLPower has made Mondrian setup a painless exercise via their excellent <a href="http://www.sqlpower.ca/page/wabit">Wabit reporting too</a>l), but, the zero-install, email friendly document approach that spreadsheets are famous (and infamous) for, is preferable in many situations. This is something that Microsoft have recognised in their <a href="http://blog.gobansaor.com/2009/04/01/project-gemini-xxl-excel-on-steroids/">Gemini add-in for Excel 2010</a>, but Excel 2010 is a not here yet and it&#8217;s likely to be five years or more before it&#8217;s as common as Excel 2003 is today.</p>
<p>The inclusion of <a href="http://sqlite.org/fts3.html">FTS full-text searching</a> with SQLite triggered an ah-ah moment with regards to pivot-enabling SQLite.</p>
<p>The usual method that hypercube-like excel-friendly OLAP tools use to return data is via a UDF like so&#8230;</p>
<p style="text-align:center;"><em>=DATA(&#8220;CubeName&#8221;,&#8221;value1&#8243;,value2&#8243;,&#8230;)</em></p>
<p>&#8230;where valueN represents dimensional elements, so&#8230;</p>
<p style="text-align:center;"><em>=DATA(&#8220;SalesCube&#8221;,&#8221;Beer&#8221;,&#8221;Profit&#8221;,&#8221;Jan 09&#8243;,&#8221;Actual&#8221;)</em></p>
<p>&#8230;is the Actual Profit for Beer sales in Jan 09. The dimensional elements act as &#8220;tags&#8221; to locate a particular value, there is of course much more to tools like Palo; hierarchies, intra-cube rules etc. but in essence most OLAP tools are like <a href="http://delicious.com/">www.delicious.com</a> for number crunchers. This method of retrieving data fits well with how people use Excel and not just for pivots, but for embedding OLAP aggregated cells in <em>lists</em>.  For example, a CRM scenario; a Sales Rep makes a list of her &#8216;best&#8217; (subjective) customers, but needs hard (objective) stats, to be placed alongside the list to convince the boss or to track actuals against expectation.</p>
<p>Dimensional elements as tags; FTS3 virtual tables as fact table indexes; the concept of a TAG Cube was born.</p>
<p>In the above example &#8220;Profit&#8221; would most likely be described as a <em>measure</em> (Palo, a near pure hypercube does not distinguish between Measure and other Dimensional coordinates). Dimensions, measures and attributes are in reality interchangeable (a Customer ID can act as a dimension or an attribute, but by applying a  Count Distinct to it, it&#8217;s a measure) but most OLAP solutions treat &#8220;Measure Dimensions&#8221; as different, and so do TAG Cubes.</p>
<p>By using the default fact table structure (a single-columned table) and querying using the default measure (which translates to the SUM() of that single value) a &#8216;pure&#8217; approach can be used. But, ROLAP is tightly bound to the concept of a fact table, and since SQLite is relational, TAG Cubes offer the ability to use a wide fact table approach and I think gains considerably in flexibility by so going.</p>
<p>The above example of using Count Distinct, or the simple creation of calculated measures are examples of this flexibility. Another, is a measure based on SQLite&#8217;s concat_group aggregate function to provide a drill-down facility, e.g.</p>
<p style="text-align:center;"><em>=DATA(&#8220;SalesCUBE&#8221;,&#8221;ROWIDList,&#8221;Beer&#8221;,&#8221;Jan 09&#8243;,&#8221;Actual&#8221;)</em></p>
<p>&#8230;where &#8220;ROWIDList&#8221; would be setup as <em>concat_group(rowid,&#8217;,') </em>and will return a comma separated list of the underlying fact table ROWIDs.</p>
<p>A major reason for rolling my own pivot engine was to add a concept of <a href="http://en.wikipedia.org/wiki/Namespace_(computer_science)">&#8220;namespaces&#8221; </a>and to separate the implementation of these namespaces from the actual pivot.  When a tag (or a predefined hierarchy of tags) is assigned to a cube, it&#8217;s also assigned to a namespace, in many cases namespace and cube would be synonymous, but in some cases a more sophisticated approach is required:</p>
<ul>
<li>Multiple cubes sharing the same set of conformed dimensions would be best served by such cubes sharing a common namespace, and so they can.</li>
<li>Different consumers of the pivot may require the use of a different language, be that a spoken language or a different &#8216;business language&#8217; e.g. Manufacturing Product Codes V Consumer Product Names. Again, easily done.</li>
<li>Sometimes identifying data can&#8217;t be shared with the datasmith or the numerical analyst working on a problem; in such cases being able to replace  the actual namespace with an obfuscated one can be very useful. Or, for added security, the namespace might only be issued to approved  PCs while the tag index and fact table are stored on a shared drive.  Needs some more work to make managing such scenarios secure and easy to use but the structure is there.</li>
</ul>
<p>As hinted on above, the three elements of a Tag Cube, the namespace, tag index and fact table can be assigned to different databases (i.e. files). Due to the wonders of SQLite&#8217;s <a href="http://www.sqlite.org/lang_attach.html">ATTACH statement</a> and the <a href="http://www.sqlite.org/backup.html">backup API&#8217;s</a> ability to quickly load/unload databases in/out of memory, it&#8217;s possible, for example, to load namespace and tag index (i.e. the &#8216;dimensions&#8217;) into a memory database, while a very large (i.e. too big to fit to memory) fact table remains on disk. Fast and cheap <a href="http://en.wikipedia.org/wiki/Solid-state_drive">SSDs</a> will add further configuration options.</p>
<p>Although most of the TAG Cube functionality is available only within Excel, I&#8217;ve built a C based SQLite Virtual Table (cFact) to allow the tag index to used outside xLite. This means that SQLite drivers for ODBC (for use as a Pivot Table source, for example) or JDBC (for use in  SQLPower Wabit perhaps) can efficiently access data models built using xLite.</p>
<p><em>I had to revert to using C rather than my preferred Python (did I mention that xLite now embeds Python in Excel, no, well it does, <a href="http://blog.gobansaor.com/2008/04/11/python-the-new-vba/">Python the newVBA ?</a>), having failed to get around multi-threading issues with callbacks to Python in both the </em><a href="http://www.ch-werner.de/sqliteodbc/"><em>ODBC</em></a><em> and </em><a href="http://www.zentus.com/sqlitejdbc/"><em>JDBC</em></a><em> drivers. I&#8217;d make a career promise to myself many years ago, not to having anything to do with printers or threads, and I think I&#8217;ll stick with it <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </em></p>
<p>TAG Cubes are the latest addition (still WIP actually) to be added to xLite, adding to:</p>
<ul>
<li>VBA coded SQLite SQL functions.</li>
<li>Worksheet Functions; call out to a &#8216;function&#8217; built using Excel formula, passing a parameter list and returning a value.</li>
<li>Workbook Functions; like Worksheet Functions, but loading a new Workbook, passing in parameters, passing back a value (or tables) and closing the Workbook when finished.</li>
<li>XLiteScript; xLite exposes its functionality via VBA coded UDFs, which can be called like any other formula, but data prep activities often require sequential procedural logic, xLiteScript is a <a href="http://blog.gobansaor.com/2007/03/03/tables-vs-xml-the-data-lingua-franca-debate/">table-oriented</a> scripting mechanism offering basic flow-control logic.</li>
<li>pyScript; I embedded Python into xLite to take advantage of Python&#8217;s speed in developing Virtual Tables, SQL Functions and extensions to SQLite and to tap in the wonderful world of Python code. I&#8217;ve also added the ability to use Python from scripts defined within Excel (to indent, tab to the next cell!).</li>
<li>Fast load/unload to/from CSV.</li>
<li>Load from any ADO source.</li>
<li>Remove xLite formulae and rename and save Workbook, very handy when used via Workbook Functions to mass produce Excel &#8220;reports&#8221;.</li>
<li>Other WIP items are; load from SAP, load/unload to/from Amazon S3, use Palo cubes as TAG Cube &#8220;facts&#8221;, slot in/out Palo for TAG Cubes, auto-generate Mondrian XML based on TAG Cubes, write-back and splash, Python &amp; VBA TAG Cube &#8220;rules&#8221;.</li>
</ul>
<p><a href="http://www.gobansaor.com/xlite">I&#8217;ve started the process of releasing the beta code here &#8230;</a></p>
<p style="text-align:right;"><em>Why not join me on Twitter at </em><a style="text-decoration:none;color:#265e15;border-bottom-color:#996633;border-bottom-width:1px;border-bottom-style:dashed;margin:0;padding:0;" href="http://www.twitter.com/gobansaor"><em>gobansaor</em></a><em>?</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/738/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/738/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/738/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/738/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/738/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/738/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/738/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/738/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/738/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/738/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=738&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2009/09/29/tag-cubes-sqlite-star-query-part-iii/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=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>Palo BI Suite Community Edition</title>
		<link>http://blog.gobansaor.com/2009/06/12/palo-bi-suite-community-edition/</link>
		<comments>http://blog.gobansaor.com/2009/06/12/palo-bi-suite-community-edition/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 14:08:18 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[GoogleApps]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[Worksheet Server]]></category>
		<category><![CDATA[Palo BI Suite]]></category>
		<category><![CDATA[Community Edition]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=709</guid>
		<description><![CDATA[Jedox have finally published a roadmap for the Palo BI Suite Community Edition, having caused considerable confusion by pre-announcing its availability last April. See here for the details.  The headline dates are, a beta version due 1st of July with a Release Candidate due 1st September. Although the announcement in April was essentially vapour-ware (no [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=709&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Jedox have finally published a roadmap for the Palo BI Suite Community Edition, having <a href="http://www.jedox.com/community/palo-forum/thread.php?threadid=1589&amp;hilight=community+edition">caused considerable confusion</a> by pre-announcing its availability last April. <a href="http://www.jedox.com/community/palo-forum/thread.php?threadid=1671">See here for the details</a>.  The headline dates are, a beta version due 1<sup>st</sup> of July with a Release Candidate due 1<sup>st</sup> September.</p>
<p>Although the announcement in April was essentially vapour-ware (no Worksheet Server V3, no Amazon EC2 images), one very significant actual deliverable was the addition to <a href="http://palo.svn.sourceforge.net/">SourceForge</a> of the Palo Excel Add-in sources (GPL licence).  This, at least for me, is very welcome as it now means that Palo is truly open source.  Prior to this, the server sources were GPL’d but not the main front-end tool used by the vast majority of end-users. In fact, the deep Excel integration offered by the Add-In is Palo’s main attraction to the business-focused “datasmiths” who make up the bulk of the product&#8217;s user-base.</p>
<p>The GPL’ing of the Add-in has removed the last barrier that had stopped me, as an independent consultant, from committing to the platform.  While the ‘freeness’ of open source is nice, it’s the source that really attracts me.  With access (and rights) to the source, I have no worries that the terms of use or indeed the product’s core functionality can be arbitrarily changed.  Having the source also means I can delve as deep or as shallow as I need to into the inners of the product, improving my understanding of the technology (both bugs and functionality) as needs dictate.</p>
<p>What has Palo BI Suite to offer, besides being open source?  Well, even if Jedox’s offering consisted of mediocre products, being open source as I explained above is in itself a huge advantage. Having an agnostic FOSS pivot engine that can be shared across many technologies, from Excel to Open Office to a PHP based website, is extremely useful.</p>
<p>However, Jedox’s BI suite is far from mediocre.  Palo is now a very polished and powerful in-memory MOLAP server with excellent integration with Excel (through the Add-In, or if you take out a support contract, via ODBO/MDX powered Pivot Tables).  The addition of a browser delivered spreadsheet (Worksheet Server V3) will add significantly to the product’s street appeal.  Version 3 differs significantly from previous WSS versions; being open source is one, but the entire product was also completely redesigned to meet the challenge posed by web-based products from the likes of <a href="http://sheet.zoho.com/">Zoho</a>, <a href="http://www.editgrid.com/">EditGrid</a> and of course Google Docs (not to mention the ever-present threat of a MS response). Web-based spreadsheets are becoming a commodity, so Jedox’s response was to open source the product but at the same time make it more usable for real-world business analytics.</p>
<p>Current browser-delivered spreadsheets suffer from two shortcomings;</p>
<ul>
<li>Spreadsheets with large numbers of inter-related cells (typical of business models ) tend to perform poorly, in many cases being unusable compared with Excel or Open Office.</li>
<li>Only available as hosted SaaS; not a major problem for some businesses, but for others, services outside the corporate firewall, especially for sensitive information such as what-if, budgeting and sales analysis models, are a no-no.</li>
</ul>
<p>WWS V3 gets around both problems.  Performance is improved by the use of Palo as the spreadsheet’s pivot engine but also by the “lazy calculation” of related cells i.e. a cell that’s not visible, and itself not yet referenced by other visible cells, remains uncalculated, saving on the constant churning that can effect large models.  This combined with a DynaRange concept means templates and models react dynamically and efficiently to the ever changing datasets being presented to the sheets from the Palo OLAP server.   The look’n’feel is very similar to Excel with even array-formulae being fully supported.</p>
<p>The second problem of only-behind-the-firewall access is solved by the open source GPL licence and by the front-end being coded in PHP (very approachable to most in-house support staff and even the <a href="http://twitter.com/martynshiner/">odd accountant</a>).  The core (the bit not yet released) is, as far as I know, C++, so is likely to join Palo Server as being highly efficient and well engineered but perhaps beyond the technical skills of most.</p>
<p>The other elements to the BI Suite are the web-based OLAP-centric ETL Server (now, I see, with Groovy and Javascript scripting support) and the Supervision Server (only in paid Enterprise version) which offers fine-tuned access control and monitoring, plus drill-through functionality from Palo cells, back to the ETL fact tables. The Enterprise Edition also offers a multi-core version of the Palo server along with SAP and ODBO/MDX connectivity.</p>
<p>If multi-dimensional analysis and budgeting could benefit your business and spreadsheets are your preferred method of communicating and working with such analysis, you need to check <a href="http://www.jedox.com/en/products/Overview.html">this out</a>.  Palo is a well kept secret (at least outside of Germany), hardly ever mentioned by the mainstream BI community, but don’t let that put you off; this is one of the best solutions out there, it&#8217;s open source but also comes with the backup of a professional company that can offer not just technical support but also implementation know-how (Jedox eats its own dog-food, being both a BI consultancy and development house).</p>
<p><strong>Update July 4th 2009:</strong></p>
<p>Beta Community Edition<a href="http://www.jedox.com/en/products/palo_olap_server/download.html"> is now available</a>.   I downloaded and installed WWS V3 and gave it a quick test-drive; looks good, Palo interface has the look&#8217;n'feel of the Excel Add-in and the general spreadsheet functionality is very Excel-like, incluing CTRL-Shift-Enter to assign array formulae.  Overall, the Palo BI suite offers a intuitive end-user-friendly interface; from download to effective use in less than 60 minutes, how many BI tools could you say that about?</p>
<p>Also,<a href="http://www.paloinsider.com/?p=72"> in two weeks time </a>a pivot-table friendly <a href="http://en.wikipedia.org/wiki/OLE_DB_for_OLAP">ODBO driver</a> will be included for free with the Palo Excel Add-in (previously only available to those with a Jedox support contract).</p>
<p style="text-align:right;"><em>Why not join me on Twitter at </em><a href="http://www.twitter.com/gobansaor"><em>gobansaor</em></a><em>?</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/709/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=709&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2009/06/12/palo-bi-suite-community-edition/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>LiteBI, Heavy ETL</title>
		<link>http://blog.gobansaor.com/2009/04/24/litebi-heavy-etl/</link>
		<comments>http://blog.gobansaor.com/2009/04/24/litebi-heavy-etl/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 12:27:57 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[kettle]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[LiteBI]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=686</guid>
		<description><![CDATA[Although my major BI interest is in micro-BI (or is that  workgroup-BI?)  i.e. data, perhaps cleansed and packaged elsewhere, available locally on a datasmith&#8217;s PC,with most likely an in-memory OLAP as the analysis tool; the possibilities of the &#8220;cloud&#8221; as a BI platform have not escaped me. From a micro-BI perspective, the ability to act as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=686&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Although my major BI interest is in micro-BI (or is that  workgroup-BI?)  i.e. data, perhaps cleansed and packaged elsewhere, available locally on a datasmith&#8217;s PC,with most likely an in-memory OLAP as the analysis tool; the possibilities of the &#8220;cloud&#8221; as a BI platform have not escaped me.</p>
<p>From a micro-BI perspective, the ability to act as a backup/mirroring tool or as ETL/marshaling tool (anybody for Hadoop and SQLite?) attracts. I&#8217;ve yet to make up my mind on BI delivered as a cloud<a href="http://en.wikipedia.org/wiki/Platform_as_a_service"> PaaS</a> but obviously <a href="http://jeromepineau.blogspot.com/2009/04/on-demand-bi-beyond-smb.html">many others believe it has a future</a>.</p>
<p>My main worry with PaaS is not lock-in (which exists equally for in-house proprietary solutions) but the dangers of a <a href="http://www.accmanpro.com/tag/coghead/">Coghead-like lock-out</a>.  My other doubts are more technical; believing, as I do, that in-memory offers significant advantages over traditional ROLAP (simplicity been the main one) and multi-tenant in-memory architectures are not yet a runner.  But last week I had a demo of new Spanish BI PaaS service,<strong> </strong><a href="http://www.litebi.com/"><strong>LiteBI</strong></a>, which might just change my mind.</p>
<p>Javier Giménez Aznar and his team previously worked on delivering Pentaho based datawarehouses to large Spanish corporations and government agencies, so they have a deep understanding of <a href="http://mondrian.pentaho.org/">Mondrian ROLAP</a> and are using that knowledge to build the LiteBI service, but this time with SMBs as the target customers rather than corporates. Pricing starts at €145 per month and is based on number of concurrent users, number of analytical spaces and the data volumes, so it&#8217;s not for very small firms more for the Medium in SMB.</p>
<p>Impressions? The cube designer, dashboard builders and the general UI are all very good and I would think would appeal to end-user datasmiths and, as such, will be a major up-front aid to selling this product.  But it was LiteBIs approach to the thorny issue of ETL and data loading that impressed me and also helped ease some of my Coghead-induced-fears.</p>
<p>BI technology stacks consist of three elements:</p>
<ul>
<li>The &#8220;fancy&#8221; front-end; graphs,animated dashboads and so on.</li>
<li>The pivot engine; ROLAP or MOLAP or both.</li>
<li>The ETL process.</li>
<li>(Many would say there&#8217;s an important 4th, the data-warehouse, but not every BI effort requires one, but that&#8217;s another issue)</li>
</ul>
<p>LiteBI is continuing to build yet more functionality into their UI and this &#8220;fancy&#8221; front-end is essential as it&#8217;s their &#8220;shop window&#8221;.</p>
<p>Mondrian provides their pivot engine, and again they continue to work on optimisations such as column-based datastores to increase speed and automate responsiveness tuning (end-users are very unforgiving of slow pivots).</p>
<p>But it&#8217;s in the 3rd area, that of the ETL process, that you realise the LiteBI team has real-world BI experience.  Data is loaded into LiteBI via an API, but with the ETL process itself happening on the customer side.</p>
<p>&#8220;Well,so what?&#8221; you may ask. The extraction of data has to obviously happen customer-side (even though not in the case of data being sourced from the likes of SalesForce.com). Yes, but it&#8217;s the transformations and data cleansing that adds true value to the ETL process and subsequently determines the quality and usefulness (as opposed to the speed or the &#8220;prettiness&#8221; of delivery) of the solution.</p>
<p>Part of the process of adopting LiteBI, is an ETL consultancy stage where a LiteBI partner company will provide on-site services to build this ETL layer, handling not just transformations but initial load and automating the subsequent delta uploads.</p>
<p>So the cost mounts up, but in reality you can&#8217;t do BI without this investment; there&#8217;s no ETL magic bullet.  Even still, Javier says the typical go-live time for a LiteBI project would be in the order of 3-4 weeks rather than the 3-4 months of similar on-site Pentaho projects.</p>
<p>The end-user &#8216;owning&#8217; the ETL process makes the prospect of a service lock-out slightly less worrying as, at least, one would still have a good starting point for moving to another provider or back in-house. What I would really like to see would be the option to self-host LiteBI, which I guess would involve open sourcing large parts of the service (the automated optimisation strategies could, for example, be excluded from this open source version).</p>
<p>The load API comes packaged as a plugin to <a href="http://kettle.pentaho.org/">Kettle</a> (aka PDI) and the intention is to offer a similar add-on for <a href="http://www.talend.org">Talend</a> in the near future. LiteBI also offers a white-label offering whereby 3rd party OLTP solution providers can use the service as their product&#8217;s BI suite.</p>
<p>Like the <a href="http://www.everything2.org/title/Skibbereen%2520Eagle">Skibbereen Eagle keeping its eye on the Czar of Russia</a>, I too will be keeping a watchful eye on <a href="http://www.litebi.com/">LiteBI</a> and the march of on-demand BI in general.</p>
<p style="text-align:right;"><em>Why not join me on Twitter at </em><a href="http://www.twitter.com/gobansaor"><em>gobansaor</em></a><em>?</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/686/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/686/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/686/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/686/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/686/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=686&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2009/04/24/litebi-heavy-etl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>SQLite as the MP3 of data</title>
		<link>http://blog.gobansaor.com/2009/03/14/sqlite-as-the-mp3-of-data/</link>
		<comments>http://blog.gobansaor.com/2009/03/14/sqlite-as-the-mp3-of-data/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 19:13:25 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[MP3]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=622</guid>
		<description><![CDATA[&#8230; and Excel as its &#8220;mixing desk&#8221;. When I tell people that I use SQLite in combination with Excel (via xLite) as my datasmithing platform, many ask why SQLite? (Many others ask why Excel?  but &#8220;sin scéal eile&#8221;, that&#8217;s another discussion &#8211; Excel as the iPod of Downloaded Data.) Those that question my use of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=622&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>&#8230; and Excel as its &#8220;mixing desk&#8221;.</p>
<p>When I tell people that I use SQLite in combination with Excel (via<a href="http://www.gobansaor.com/xlite"> <strong>xLite</strong></a><strong>)</strong> as my datasmithing platform, many ask why SQLite? (Many others ask why Excel?  but &#8220;sin scéal eile&#8221;, that&#8217;s <a href="http://blog.gobansaor.com/2009/10/25/excel-as-the-ipod-of-downloaded-data/">another discussion &#8211; Excel as the iPod of Downloaded Data</a>.) Those that question my use of SQLite tend to cluster into four camps:</p>
<ul>
<li>Pure Excel jocks.</li>
<li>MS Access fans.</li>
<li>The client server database brigade (SQL Server,Oracle; or if FOSS fans; MySQL, PostrgeSQL).</li>
<li>The MOLAP folks (Essbase, TM1, Palo).</li>
</ul>
<p>Now while I have used and will continue to use/encounter all four &#8216;approaches&#8217;, I&#8217;ve come to believe over the last couple of years that SQLite brings something special to the datasmithing game. When I look back over nearly 30 years in the data handling business I keep thinking &#8211; &#8220;If only I had SQLite then, how much easier/quicker/cheaper that task would have been!&#8221;.</p>
<p>Just as &#8220;fractional horsepower&#8221; electrical motors revolutionised manufacturing and eventually all our lives (car starter-motors, fridge motors, washing machines etc.), &#8220;fractional horsepower&#8221; databases can do the same for data. Distributing data to where it is needed.</p>
<p>As operational local caches, this use of SQLite is already far advanced. SQLite is embedded in lots of <a href="http://www.sqlite.org/famous.html">every day software tools</a>, everything from McAfee anti-virus to <a href="http://www.tweetdeck.com/beta/">TweetDeck</a> Twitter clients (best one IMHO). But my interest is more in SQLite&#8217;s potential as a micro-BI (or maybe more correctly a distributed-BI) platform. A sort of MP3 format for distributed structured data, if you like.</p>
<p>But why SQLite (and in particular SQLite in combination with Excel) as my datasmithing tool rather than the four other approaches?  First, what&#8217;s a datasmith?</p>
<p>Managing and manipulating datasets has become an integral part of many people’s job, not just accountants (the original of the species) but marketing executives, sales staff, pricing analysts, process engineers; different job titles, different roles but using a skill that they’ve likely never been formally trained in, a skill without a name; a skill I call datasmithing. I like to think of  myself as a master datasmith, or a datamith&#8217;s datasmith.</p>
<p>If you consider yourself a datasmith then most likely the tool you use to manage your datasets is Excel. And before you apologise, don’t. Excel is by far the best and most flexible end-user data manipulation tool out there. Everything from the current financial crisis downwards has at some stage being blamed on Excel, but you know and I know that many tasks would remain undone or under-done were it not for end-user generated spreadsheets.</p>
<p>Spreadsheets are not however optimal for some tasks, linked spreadsheets in particular are data disasters in waiting. While fantastic for data transformations and presentations, as books-of-record they’re rarely suitable. Other tools such as SQL based relational databases and in-memory OLAP offer much better and potentially much more cost-effective data modelling functionality, but also at a cost of extra complexity and ongoing technical support.</p>
<p>MS Access (which like SQLite, is a document-centric, non-client-server database; but unlike it, is also a forms/reporting development environment) would appear to be the natural local store database. My problem with MS Access has been its tendency to try to be all things to all men, ending up not fully satisfying anybody. Professional developers think it&#8217;s too limiting, non-techs find it too intimidating, even reporting, where it once showed promise left a big enough opening for Crystal Reports to evolve. It is also limited to Windows which might not seem to be a problem if combining with Excel, but, as it&#8217;s often necessary, due to scale or complexity of the data,  to use &#8216;proper&#8217; ETL tools such as Talend, having an OS agnostic database format than can act as a distribution media (think MP3s again) between &#8220;mixing desks&#8221; can be very useful.</p>
<p>The big difference to MS Access for me is SQLite&#8217;s open source code; code that&#8217;s a pleasure to browse and with an approachable API that even I, with my very rusty C skills, can manipulate. Having access to that code allows me to tightly integrate it with Excel, so much so, that I can use Excel functions (built-in functions, VBA user-defined functions and 3rd party add-in functions) directly from SQLite&#8217;s SQL; and vice-versa, access SQL functionality via Excel &#8220;formula&#8221; calls. It is  also possible to  load most datasets into memory using SQLite&#8217;s in-memory mode enabling very fast processing  and near zero-latency when passing data to and from Excel/VBA. In the near future, cheap, large <a href="http://en.wikipedia.org/wiki/Solid-state_drive">SSDs </a>will enable non-memory databases to offer similar speed but also handle extremely large datasets (<a href="http://i.gizmodo.com/5166798/24-solid-state-drives-open-all-of-microsoft-office-in-5-seconds">see this for a glimpse of that future</a>).</p>
<p>What about the big beasts of the data world, the client-server databases? Having spent most of my professional life working with such tools I&#8217;m aware of the power of a well designed relational database. If SQLite is the MP3, then these are the master tapes, the DDD recordings. Most of the data that eventual ends up in SQLite for analysis and/or transformation will have originated in data-warehouses or be directly sourced  from OLTP systems built using relational technology. But for close-up analysis and transformation, the pure simplicity and convenience of SQLite is hard to beat. That simplicity is primarily due to its Excel-like &#8216;document&#8217; nature, all code and data can be housed in a single folder (or <a href="http://www.truecrypt.org/">true-crypt container</a> for added security), ensuring that the &#8216;problem domain&#8217; can be easily archived and/or shared with others without the need for professional IT resources.</p>
<blockquote><p>And yes, I hear you, isn&#8217;t that the basis of Excel-hell? Yes it is, but over the years I&#8217;ve found that this is rarely a problem for datasmiths, they deal day-in day-out with document work-flows, they understand the risks and the benefits (mainly the simplicity) of the approach. Where the nightmare truly happens is when this approach is used as an alternative to an OLTP system i.e. using Excel and other document-like datastores as books-of-record in large multi-user environments &#8211; &#8220;there be monsters for sure&#8221;.</p></blockquote>
<p>How about MOLAP? Wasn&#8217;t Essbase&#8217;s name derived from &#8220;extended spreadsheet database&#8221; and doesn&#8217;t Palo offer a truly excel-friendly multi-user database back-end? Again, having worked with Essbase for many years and now being a big fan of the open source <a href="http://www.palo.net">Palo</a> MOLAP tool, I fully appreciate the power that such tools brings to analysis and multi-user planning tasks. But for many situations, an Excel Pivot Table is &#8220;good enough&#8221; and even when it&#8217;s not, it is possible by utilising what I call a tOLAP cube (essentially, a fact table indexed via tags enabled by Google&#8217;s great addition to SQLite, the <a href="http://dotnetperls.com/Content/SQLite-FTS3.aspx">FTS3</a> virtual table) to build and access  powerful, yet simple, cube-like data structures.</p>
<p>By integrating SQLite with Excel, datasmiths can have the best of both worlds, familiar <a href="http://smurfonspreadsheets.wordpress.com/2007/02/20/accel-or-excess/">spreadsheet front-end combined with a fast and powerful SQL engine and datastore</a>, in fact, everything that MS Access should have been.</p>
<p style="text-align:right;"><em>Why not join me on Twitter at </em><a href="http://www.twitter.com/gobansaor"><em>gobansaor</em></a><em>?</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/622/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/622/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/622/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/622/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/622/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/622/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=622&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2009/03/14/sqlite-as-the-mp3-of-data/feed/</wfw:commentRss>
		<slash:comments>19</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=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>I’ll give up Excel Pivot Tables when you take &#8216;em from my cold, dead hands</title>
		<link>http://blog.gobansaor.com/2008/10/10/i%e2%80%99ll-give-up-excel-pivot-tables-when-you-take-em-from-my-cold-dead-hands/</link>
		<comments>http://blog.gobansaor.com/2008/10/10/i%e2%80%99ll-give-up-excel-pivot-tables-when-you-take-em-from-my-cold-dead-hands/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 17:40:39 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[Mondrian]]></category>
		<category><![CDATA[XMLA]]></category>
		<category><![CDATA[essbase]]></category>
		<category><![CDATA[MDX]]></category>
		<category><![CDATA[ODBO]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=539</guid>
		<description><![CDATA[Jedox, the company behind the open source MOLAP server Palo, has just announced an MDX driver. This means that it&#8217;s now possible to access Palo cubes using Excel Pivot Tables or indeed any tool that supports ODBO.  This is excellent news, as MOLAP to most Excel users IS a Pivot Table, and somewhat like the NRA, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=539&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.jedox.com">Jedox,</a> the company behind the open source <a href="http://en.wikipedia.org/wiki/MOLAP">MOLAP</a> server Palo, <a href="http://www.jedox.com/en/news/News/Palo_Open_Source_OLAP_Server_now_supports_MDX_and_Excel_Pivot_Tables.html">has just announced</a> an <a href="http://en.wikipedia.org/wiki/Multidimensional_Expressions">MDX</a> driver. This means that it&#8217;s now possible to access Palo cubes using Excel Pivot Tables or indeed any tool that supports <a href="http://en.wikipedia.org/wiki/OLE_DB_for_OLAP_(ODBO)">ODBO</a>.  This is excellent news, as MOLAP to most Excel users IS a Pivot Table, and somewhat like the NRA, the NPTA&#8217;s (National Pivot Table Association&#8217;s) motto is “I’ll give up Excel Pivot Tables when you take &#8216;em from my <em>cold</em>, dead <em>hands</em>”.</p>
<p>MDX/XMLA is now a de facto standard for OLAP servers, supported not just by MS SQLServer but by SAP BW, Hyperion/ESSBase and by <a href="http://mondrian.pentaho.org/">Pentaho&#8217;s Mondrian</a>. The new driver is not open source, nor is it for sale but instead comes free to those with Jedox support contracts. I&#8217;m sure lots of organisations will be more than willing to enter a support contract (starting at <strong>€3000</strong> per server) to get their hands on this; think of the savings in training alone!</p>
<p><strong>UPDATE: 2nd July 2009</strong></p>
<p>Kristian Raue <a href="http://www.paloinsider.com/?p=72">has announced on his blog</a> that the ODBO/MDX driver will now come free with latest Palo BI Suite (both community and enterprise versions). Excellent news!</p>
<p><a href="http://www.jedox.com/assets/images/news/pressekit/jedox_presseinfo_pivot_engl.jpg"><img class="aligncenter size-large wp-image-546" title="palopivot1" src="http://gobansaor.files.wordpress.com/2008/10/palopivot1.jpg?w=500&#038;h=374" alt="" width="500" height="374" /></a></p>
<p><span style="color:#0000ee;text-decoration:underline;"><br />
</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/539/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/539/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/539/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/539/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/539/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/539/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/539/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/539/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/539/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/539/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=539&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/10/10/i%e2%80%99ll-give-up-excel-pivot-tables-when-you-take-em-from-my-cold-dead-hands/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2008/10/palopivot1.jpg?w=500" medium="image">
			<media:title type="html">palopivot1</media:title>
		</media:content>
	</item>
		<item>
		<title>Why Larry hates the cloud, and my data trinity.</title>
		<link>http://blog.gobansaor.com/2008/10/04/why-larry-hates-the-cloud-and-my-data-trinity/</link>
		<comments>http://blog.gobansaor.com/2008/10/04/why-larry-hates-the-cloud-and-my-data-trinity/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 17:12:57 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[AmazonAWS]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[cloud bursting]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=528</guid>
		<description><![CDATA[Last week Oracle certified Amazon EC2 as a supported platform, that same week Larry Elison attacked the concept of cloud computing as pure hype. Obviously, Larry is not happy with this whole cloud thing, and I think it&#8217;s not just the threat it poses to the software industry&#8217;s traditional licensing model that worries him, rather, as Robert X. Cringely [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=528&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Last week Oracle certified <a href="http://aws.amazon.com/ec2">Amazon EC2</a> as a supported platform, that same week Larry Elison attacked the <a href="http://www.crn.com/software/210604266">concept of cloud computing as pure hype</a>. Obviously, Larry is not happy with this whole cloud thing, and I think it&#8217;s not just the threat it poses to the software industry&#8217;s traditional licensing model that worries him, rather, as Robert X. Cringely points out in his &#8220;<a href="http://www.pbs.org/cringely/pulpit/2008/pulpit_20081003_005424.html">Cloud computing will change the way we look at databases</a>&#8221; post, it&#8217;s the likelihood that it sounds the death-knell for large-scale traditional databases.</p>
<p>This new database paradigm is memory rather than disk centric, with the disk-based element acting as an archive/backup/restore mechanism which can easily be stored on commodity SAN devices ( e.g. <a href="http://aws.amazon.com/ebs/">Amazon&#8217;s ESB</a>). Using <a href="http://en.wikipedia.org/wiki/MapReduce">MapReduce technology</a> Google effectively holds the whole Internet in memory, not in one big super computer but in lots of cheap commodity servers.</p>
<p>But it&#8217;s not just in the realm of mega datasets that RAM based databases threaten traditional models. Excel is a memory-based database engine, so too <a href="http://blog.gobansaor.com/2007/09/05/in-memory-olap/">in-memory OLAP tools</a> such as <a href="http://www.palo.net">Palo</a>. Such products&#8217; ability to handle large volumes of data has increased over the years, with the decrease in RAM costs and the appearance of cheap 64 bit machines (which are no longer limited to 2G/3G process working sets).</p>
<p>That doesn&#8217;t mean that we&#8217;ll throw away SQL databases in their entirety, SQL and the relational model will continue to be useful. But perhaps of greater use in local datastores/caches that as the building blocks for large scale datastores. For such local caches, less will be more; fewer features, easier to configure, more flexibility. That&#8217;s why I like SQLite; long after the dinosaurs of the database world have disappeared, I imagine SQLite databases will continue to survive, embedded in mobile phones, browsers, wherever a local datastore is required. And more than likely operating in memory rather than off disk.</p>
<p>By combining Excel with an in-memory SQLite database, linked to a Palo OLAP in-memory server, it&#8217;s possible to take advantage of three powerful data-processing technologies (spreadsheets, SQL, multi-dimensional cubes) all within your PC&#8217;s RAM. You could do serious datasmithing with such a combination on a pretty mediocre laptop, with most modern machines providing an excess of CPU power, no need for super fast disks, just as much memory as you can muster. And, with <a href="http://blog.gobansaor.com/2008/10/01/clouds-not-longer-pass-by-windows/">Windows on EC2</a>, these three amigos will soon be capable of being used as a <strong>cloud bursting</strong> platform.</p>
<p>Excel, SQLite and Palo, my data trinity.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/528/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/528/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=528&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/10/04/why-larry-hates-the-cloud-and-my-data-trinity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
		<item>
		<title>Cloudy skies, cloudy apps&#8230;</title>
		<link>http://blog.gobansaor.com/2008/08/28/cloudy-skies-cloudy-apps/</link>
		<comments>http://blog.gobansaor.com/2008/08/28/cloudy-skies-cloudy-apps/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 11:53:01 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[Ireland]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[Web2.0]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[Freiburg]]></category>
		<category><![CDATA[Jedox]]></category>
		<category><![CDATA[WaveMaker]]></category>
		<category><![CDATA[Worksheet Server]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=453</guid>
		<description><![CDATA[Just back from a break in Clifden, Connemara, summer is nearly over, the kids return to school today, back to work. Counties Galway and Mayo were like the rest of the country last week, a tad wet, but unlike the developed east of the island, flooding was not a problem; a problematic drainage area is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=453&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Just back from a break in <a href="http://www.connemara.ie/connemara/clifden/">Clifden, Connemara</a>, summer is nearly over, the kids return to school today, back to work.</p>
<div id="attachment_459" class="wp-caption aligncenter" style="width: 310px"><a href="http://gobansaor.files.wordpress.com/2008/08/aasleagh-falls.jpg"><img class="size-medium wp-image-459" src="http://gobansaor.files.wordpress.com/2008/08/aasleagh-falls.jpg?w=300&#038;h=225" alt="Aasleagh Falls, Co. Mayo" width="300" height="225" /></a><p class="wp-caption-text">Aasleagh Falls, Co. Mayo</p></div>
<p><a href="http://www.discoverireland.ie/west.aspx">Counties Galway and Mayo</a> were like the rest of the country last week, <a href="http://www.rte.ie/news/2008/0818/floods.html">a tad wet</a>, but unlike the developed east of the island, flooding was not a problem; a problematic drainage area is called a lake in the west.</p>
<p>This August has been the wettest and dullest I&#8217;ve ever experienced but at least I saw some sunshine earlier in the month thanks to Kristian Raue CEO of <a href="http://www.jedox.com/en/enterprise-spreadsheets/index.html">Jedox</a> who kindly invited me to visit the company&#8217;s offices in Freiburg, Germany.  <a href="http://www.freiburg-online.com/freiburg/English/online/html/frameset.html">Freiburg</a> is very green in both senses of the word, surrounded as it is by the <a href="http://en.wikipedia.org/wiki/Black_Forest">Black Forest</a> and its well deserved &#8220;eco-city&#8221; status.  Its also know as the warmest city in Germany, a reputation it thankfully lived up for this visitor from a <a href="http://www.irishtimes.com/newspaper/breaking/2008/0901/breaking50.htm">rain-soaked Atlantic isle</a>.</p>
<div id="attachment_461" class="wp-caption aligncenter" style="width: 310px"><a href="http://gobansaor.files.wordpress.com/2008/08/freiburg.jpg"><img class="size-medium wp-image-461" src="http://gobansaor.files.wordpress.com/2008/08/freiburg.jpg?w=300&#038;h=225" alt="August morning, Frieburg Im Breisgau" width="300" height="225" /></a><p class="wp-caption-text">August morning, Freiburg im Breisgau</p></div>
<p>If Freburg left a positive impression on my mind, so too did Jedox.  The overall impression is of a company which intends to use a combination of quality, vision and the judicious use of open-source to build the Jedox brand into one associated with best-of-breed products and consultancy.  This vision can be seen in the evolution of <a href="http://www.palo.net">Palo</a>, from its &#8220;good enough&#8221; beginnings to its current near-best-of-breed 2.5 version, and from talking to some of those working on the product, best-of-breed status is not that far off.</p>
<p>Likewise, ETL-Server which is currently a Palo only &#8220;loader&#8221;, is to be further  developed into a true ETL tool, while continuing to offer MOLAP-centric specialisms.</p>
<p>I also got a glimpse of the next version of <a href="http://www.jedox.com/en/enterprise-spreadsheet-server/excel-to-web-worksheet-server/products.html">Worksheet Server</a>. &#8220;Wow!&#8221;, is all I can say.</p>
<p>Existing web based spreadsheet products are fine for simple data analysis or basic data capture purposes but cannot compete with their client-based elder cousins when serious datasmithing is required.  Well, from the demo I saw of Worksheet Server in action, that&#8217;s about to change.  The look and, more importantly, the feel is similar to that of traditional spreadsheets, its interface with Palo is identical to that of the existing Excel add-in, and here&#8217;s the big one, its open source!  Game-changing or what?</p>
<p>But &#8230;</p>
<blockquote><p>That might enable me to move a lot of my spreadsheet applications to the cloud, but what about those applications that are more suited to an MS Access type solution?</p></blockquote>
<p>Then try out <a href="http://www.wavemaker.com">WaveMaker</a>. It’s open source and built on <a href="http://www.wavemaker.com/solutions/forit.html">industry standards</a>, Hibernate,Spring and the Javascript Dojo framework but has the ease of GUI database development more <a href="http://blog.gobansaor.com/2008/03/11/java-at-the-eye-of-a-perfect-storm/">usually associated with MS tools</a>. The  resulting applications are packaged as a WAR file which can be hosted by any standards based Java server  (e.g. <a href="http://tomcat.apache.org/">Tomcat</a> or <a href="http://www.mortbay.org/">Jetty</a>).  The latest version makes developing Ajax-fronted database applications even easier with the addition of layout templates.  Its existing ability to automatically bind interfaces to <a href="http://wanderingbarque.com/nonintersecting/2006/11/15/the-s-stands-for-simple/">SOAP web services</a> has been extended to <a href="http://www.pluralsight.com/community/blogs/tewald/archive/2007/04/26/46984.aspx">REST web services</a> by means of a new <a href="http://en.wikipedia.org/wiki/Web_Services_Description_Language">WSDL</a> auto-discover tool.  And <a href="http://www.keeneview.com/">Chris Keene</a> CEO of WaveMaker also informs me that &#8230;</p>
<blockquote><p>We are also releasing a cloud-based IDE in October with Amazon &#8211; stay tuned&#8230;</p>
<p>We launched in February and will be announcing our first 7 figure deal this month. We run on Mac, Linux and Windows and are currently the #1 developer download on Apple.com (<a href="http://www.apple.com/downloads/macosx/development_tools/" target="_blank">http://www.apple.com/downloads/macosx/development_tools/</a>)</p>
<p>Our goal is to make it easy to build rich internet applications without complex coding – kind of a MS Access for the Web.</p></blockquote>
<p>Jedox and Wavemaker the <a href="http://www.keeneview.com/2008/02/silverado-rules-for-open-source-success.html">new breed of open-source businesses</a>&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/453/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/453/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/453/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/453/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/453/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=453&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/08/28/cloudy-skies-cloudy-apps/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2008/08/aasleagh-falls.jpg?w=300" medium="image">
			<media:title type="html">Aasleagh Falls, Co. Mayo</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2008/08/freiburg.jpg?w=300" medium="image">
			<media:title type="html">August morning, Frieburg Im Breisgau</media:title>
		</media:content>
	</item>
		<item>
		<title>Talend + SQLite + Groovy the new Oracle &#8230;</title>
		<link>http://blog.gobansaor.com/2008/08/02/talend-sqlite-groovy-the-new-oracle/</link>
		<comments>http://blog.gobansaor.com/2008/08/02/talend-sqlite-groovy-the-new-oracle/#comments</comments>
		<pubDate>Sat, 02 Aug 2008 13:34:38 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle 10g Express]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=430</guid>
		<description><![CDATA[&#8230; well, at least for me.  Let me explain. For most of my datasmithing career, I&#8217;ve had access to corporate Oracle databases and now with the availability of  Oracle10g  Express I can even run my own Oracle instances at home or on EC2.  The combination of a powerful SQL engine, expressive scripting language (PL/SQL) ,OS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=430&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>&#8230; well, at least for me.  Let me explain.</p>
<p>For most of my datasmithing career, I&#8217;ve had access to corporate Oracle databases and now with the availability of  <a href="http://www.oracle.com/technology/php/index.html">Oracle10g  Express</a> I can even run my own Oracle instances at home or on <a href="aws.amazon.com/ec2">EC2</a>.  The combination of a powerful SQL engine, expressive scripting language (<a href="http://en.wikipedia.org/wiki/PL/SQL">PL/SQL</a>) ,OS independence, web front-end (<a href="http://www.oracle.com/technology/products/database/application_express/index.html">App Express</a>) and the ability to communicate with Excel (via <a href="http://www.oracle.com/technology/tech/windows/ole/index.html">OO4O</a>) made Oracle a natural fit for heavy-duty data manipulation.   But there was always one major problem, Oracle doesn&#8217;t play well with other data sources, necessitating a separate ETL bolt-on, which led me to play around with the likes of Kettle and Talend.  But having been seduced by these new shiny (and open source) &#8220;toys&#8221; I&#8217;ve found that rather than just been incidental add-ons they had the potential to totally replace Oracle.  The combination of <a href="http://www.talend.org">Talend</a>, <a href="http://www.sqlite.org">SQLite</a> and <a href="http://groovy.codehaus.org">Groovy</a>, is proving to be particularly magic.</p>
<blockquote><p>So how will these three tools enable you to leave behind your Oracle past?</p></blockquote>
<p>Talend (in its Java form) is a superb ETL tool, via JDBC is can access every database type on the planet, it has built-in web-service capability and access to a  multitude of APIs via its Java component for non-database data sources.  The addition of  Groovy makes the use of such Java APIs simpler and quicker and the same Groovy acts as a replacement for PL/SQL when a bit of &#8220;if-then-else&#8221; logic is required.  And although Talend offers a built-in option to plublish an ETL job as a <a href="http://en.wikipedia.org/wiki/WAR_(file_format)">WAR file</a> exposing a SOAP web service, Java/Groovy also allows for the integration of the powerful, yet simple, <a href="http://www.mortbay.org">Jetty API</a> to embed a web server within Talend itself.  And all this for free, and better than free, open source.</p>
<blockquote><p>So where does SQLite come in? And, didn&#8217;t you say that Excel integration was important, how will Excel communicate with Talend?</p></blockquote>
<p>As very little corporate data is held in SQLite format, and Talend allows access to every major commercial/free database, the usefulness of SQLite might not be at first obvious.  But if you think of SQLite as a data cache, a fast and efficient local tabular datastore, with a powerful but well understood <a href="http://en.wikipedia.org/wiki/Domain_Specific_Language">DSL</a> (i.e. SQL) and a drop-dead-simple setup and backup regime (basically copying and creating files), maybe then you can see its attraction. The ability to extend the DSL by easily creating <a href="http://files.zentus.com/sqlitejdbc/api/org/sqlite/Function.html">SQLite user defined functions</a> (UDFs) within Talend using either Java or Groovy is also another powerful feature.</p>
<p>For example&#8230;</p>
<p><em>select customer_id, name,customer, sales_region, getpalodata(&#8220;SALES&#8221;,customer_id,&#8221;All Products&#8221;.&#8221;Total Sales&#8221;,&#8221;Euros&#8221;,&#8221;YTD&#8221;)  as customer_YTD, getpalodata(&#8220;SALES&#8221;,sales_region,&#8221;All Products&#8221;.&#8221;Total Sales&#8221;,&#8221;Euros&#8221;,&#8221;YTD&#8221;)  as region_total_YTD from list_of_top_customers;</em></p>
<p>&#8230; where getapalodata is a UDF that wraps calls to a Palo cube.</p>
<p>With this type of setup I can easily mix and match list/tabular data with multidimensional data points using SQL (something that Oracle also supports but only if you hand over a large wad of currency). In fact I can create a mini data warehouse, with Palo providing the pivot, ( as SQLite lacks star-query (or even multi-index query) support.)  SQLite would still host the conformed dimensions and the fact tables, but with the fact tables acting as feeds to Palo cubes, supporting finer-grained drill-throughs from cubes or for ad-hoc queries. This is powerful stuff, simple, free, powerful stuff.</p>
<blockquote><p>&#8230; and the spreadsheet access?</p></blockquote>
<p>A Talend sub-job such as this&#8230;</p>
<div id="attachment_433" class="wp-caption aligncenter" style="width: 310px"><a href="http://gobansaor.files.wordpress.com/2008/08/jetty-server.jpg"><img class="size-medium wp-image-433" src="http://gobansaor.files.wordpress.com/2008/08/jetty-server.jpg?w=300&#038;h=298" alt="Talend Groovy Jetty web server" width="300" height="298" /></a><p class="wp-caption-text">Talend Groovy Jetty web server</p></div>
<div id="attachment_443" class="wp-caption aligncenter" style="width: 310px"><a href="http://gobansaor.files.wordpress.com/2008/08/jetty-groovy-code.jpg"><img class="size-medium wp-image-443" src="http://gobansaor.files.wordpress.com/2008/08/jetty-groovy-code.jpg?w=300&#038;h=203" alt="Example of Groovy code calling Jetty API" width="300" height="203" /></a><p class="wp-caption-text">Example of Groovy code calling Jetty API</p></div>
<p>&#8230;would provide a simple <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">RESTful</a> (rather than SOAP) web service which could be accessed either with an <a href="http://www.vertex42.com/News/excel-web-query.html">Excel Web Query</a> or via a VBA macro which would parse the result and allow for more control.  For example &#8230;</p>
<p><em>http://localhost:1234/sqlgateway?sql=select customer_id,name from all_customers&amp;type=HTMLTable</em></p>
<p>&#8230; this would return a list of customers wrapped in an HTML table, or &#8230;</p>
<p><em>http://localhost:1234/job/extractProspects?Rep=JonesTom&amp;Month=JAN&amp;SourceCompany=AXA&amp;type=HTMLTable</em></p>
<p>&#8230;this might call a Talend job called extractProspects, passing in JonesTom, JAN and AXA as context parameters, which would then return a list of prospects extracted from a feed supplied by AXA&#8217;s system.</p>
<blockquote><p>What would the Talend job look like?</p></blockquote>
<p>The job might operate something like this:</p>
<ul>
<li>It would run either on the client <a href="http://wrapper.tanukisoftware.org/doc/english/download.jsp">as a service</a> or on a LAN based server (or on a remote server, with a <a href="http://www.engadget.com/2006/03/21/how-to-ssh-tunnels-for-secure-network-access/">SSH VPN</a> (or <a href="https://secure.logmein.com/products/hamachi/vpn.asp?lang=en">Hamachi</a>) to provide security).</li>
<li>At start-up, do a bunch of ETL tasks, pulling data from remote sources and databases, transforming and aggregating data etc. Storing the resulting data in local SQLite databases.  It might also build Palo cubes or update larger enterprise databases.</li>
<li>The job would then setup a Jetty web server and await requests for data.</li>
<li>The requests might be a mixture of raw SQL or requests to run specific Talend transformations which would return a dataset directly to the calling client or maybe just acknowledge the request, queue it up for processing later, sending the resulting dataset by EMail or RSS feed when finished.</li>
<li>At a fixed time the service would shut it self down and requeue itself for the next day&#8217;s workload.</li>
</ul>
<p>&#8230; or nothing at all like that, and that&#8217;s the point, build what you need, add the levels of security (or none at all) that fits your situation, all within a open framework, with zero lock-in (okay, still using Excel, anyone for <a href="http://www.openoffice.org/">OpenOffice</a>, Google Apps or <a href="http://www.zoho.com/">Zoho</a>?).  You don&#8217;t even need your own server, host it on an EC2 instance, (if you bring up an instance for 10/12 hours every working day, it would cost about $20/$25 a month).</p>
<p>Now tell me that doesn&#8217;t make sense?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/430/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/430/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/430/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/430/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/430/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/430/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/430/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/430/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=430&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/08/02/talend-sqlite-groovy-the-new-oracle/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2008/08/jetty-server.jpg?w=300" medium="image">
			<media:title type="html">Talend Groovy Jetty web server</media:title>
		</media:content>

		<media:content url="http://gobansaor.files.wordpress.com/2008/08/jetty-groovy-code.jpg?w=300" medium="image">
			<media:title type="html">Example of Groovy code calling Jetty API</media:title>
		</media:content>
	</item>
		<item>
		<title>OLAP Cube as a Mind Map</title>
		<link>http://blog.gobansaor.com/2008/07/30/olap-cube-as-a-mind-map/</link>
		<comments>http://blog.gobansaor.com/2008/07/30/olap-cube-as-a-mind-map/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 13:57:09 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[olap]]></category>
		<category><![CDATA[FreeMind]]></category>
		<category><![CDATA[mind maps]]></category>
		<category><![CDATA[mindmaps]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=424</guid>
		<description><![CDATA[If you&#8217;ve worked with OLAP technologies for any length of time you&#8217;ll undoubtedly have been in the situation where you&#8217;ve had to explain the concept of an OLAP Cube to a &#8220;newbie&#8221;.  If the person in question has come across Excel pivot-tables, then you can probably short-circuit the conversation some what, explaining that a pivot [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=424&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve worked with <a href="http://en.wikipedia.org/wiki/Online_analytical_processing">OLAP</a> technologies for any length of time you&#8217;ll undoubtedly have been in the situation where you&#8217;ve had to explain the concept of an <a href="http://en.wikipedia.org/wiki/OLAP_cube">OLAP Cube</a> to a &#8220;newbie&#8221;.  If the person in question has come across <a href="http://www.cpearson.com/excel/pivots.htm">Excel pivot-tables</a>, then you can probably short-circuit the conversation some what, explaining that a pivot table is in essence an OLAP cube, maybe highlighting the differences between it and whatever OLAP tool you&#8217;re proposing; ragged hierarchies, ability to update cells and &#8216;spread&#8217; values down hierarchies etc.  Even better if you can show the user an working cube populated with hierarchies and elements that match the user&#8217;s business.</p>
<p>But what if the person is a complete novice to the world of analytics and you don&#8217;t have a relevant demo cube that you can demonstrate, what then?  I guess, you could start by first trying to fry the <span style="text-decoration:line-through;">victim&#8217;s</span> user&#8217;s brain by explaining the concepts behind multi-dimensional spaces and/or a quick intro into the world of de-normalised databases, with examples of snow and star schemas. The glazed look in the eyes of your audience may however suggest this doesn&#8217;t always work.  And it&#8217;s not just business-users who have problems getting their heads around cubes, many programmers also have difficulty the first time they&#8217;re exposed to OLAP concepts.</p>
<p>I&#8217;ve found that <a href="http://en.wikipedia.org/wiki/Mind_map">Mind Maps</a> offer a good way to help both me and the client to visualise the domain model that a cube will eventually address; having worked through the mind mapping process it&#8217;s then easier to take the user with you as you translate this model to a physical cube or star-schema.  Well <a href="http://hugoworld.wordpress.com/about/">Hugo</a> (who&#8217;s <a href="http://hugoworld.wordpress.com/2008/07/26/rapid-cube-prototyping/">back blogging after a long absence</a>) promises to take this method a step further, his modifications to <a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page">FreeMind</a> will allow for the export of a mindmap as a <a href="http://www.palo.net">Palo</a> cube!  <a href="http://www.screencast.com/users/hugopendlebury/folders/Default/media/8e4a09cd-bf43-4d82-897e-c1e9b1b12903">Check it out &#8230;</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/424/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/424/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/424/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=424&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/07/30/olap-cube-as-a-mind-map/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b714f82b5e24beb3b74779615b6ad969?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">gobansaor</media:title>
		</media:content>
	</item>
	</channel>
</rss>