<?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; Talend</title>
	<atom:link href="http://blog.gobansaor.com/category/talend/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; Talend</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>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>Talend ETL Excel report generator</title>
		<link>http://blog.gobansaor.com/2009/02/13/talend-etl-excel-report-generator/</link>
		<comments>http://blog.gobansaor.com/2009/02/13/talend-etl-excel-report-generator/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 14:43:34 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[excel]]></category>

		<guid isPermaLink="false">http://blog.gobansaor.com/?p=608</guid>
		<description><![CDATA[Hugo, who you may remember from his OLAP Cube as a Mind Map project, has struck again. This time something really useful, a component for the Talend ETL platform that generates Excel reports using templates and a JSP style TAG language to control the output. I&#8217;ve in the past used the excellent Xlsgen to automate [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=608&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/hugoetl">Hugo,</a> who you may remember from his <a href="http://blog.gobansaor.com/2008/07/30/olap-cube-as-a-mind-map/">OLAP Cube as a Mind Map project,</a> has struck again.  This time something really useful, <a href="http://hugoworld.wordpress.com/2009/02/08/taking-the-pain-out-of-excel-reporting/">a component  for the Talend ETL platform that generates Excel reports</a> using templates and a JSP style TAG language to control the output.</p>
<p>I&#8217;ve in the past used the excellent <a href="http://xlsgen.arstdesign.com/">Xlsgen</a> to automate the production of Excel reports, but Hugo&#8217;s component has the benefit of being free (xlsgen now costs €390!) and open source and it also taps into the vast world of existing <a href="http://www.talend.com">Talend ETL</a> components.</p>
<p>Well done Hugo.</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/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/608/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/608/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/608/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=608&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2009/02/13/talend-etl-excel-report-generator/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>Pentaho Data Integration (Kettle) V Talend Benchmark</title>
		<link>http://blog.gobansaor.com/2008/12/04/pentaho-data-integration-kettle-v-talend-benchmark/</link>
		<comments>http://blog.gobansaor.com/2008/12/04/pentaho-data-integration-kettle-v-talend-benchmark/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 17:56:22 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[kettle]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[Matt Casters]]></category>
		<category><![CDATA[PDI.TOS]]></category>
		<category><![CDATA[Pentaho]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=587</guid>
		<description><![CDATA[Pentaho&#8217;s Matt Caster has just published a benchmarking exercise comparing Kettle and Talend.  In it he admits he&#8217;s not a Talend expert and he advises that people should perform their own benchmarks where possible as requirements differ.  Nevertheless, unlike most other benchmarks we&#8217;ve seen on the subject he publishes not just the results but the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=587&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ibridge.be/?p=150">Pentaho&#8217;s Matt Caster has just published a benchmarking exercise comparing Kettle and Talend</a>.  In it he admits he&#8217;s not a Talend expert and he advises that people should perform their own benchmarks where possible as requirements differ.  Nevertheless, unlike most <a href="http://blog.gobansaor.com/2008/10/30/open-source-metrics/">other benchmarks we&#8217;ve seen on the subject </a>he publishes not just the results but the actual transformation &#8220;code&#8221; used in the tests. </p>
<p><a href="http://www.nicholasgoodman.com/bt/blog/2008/11/26/an-arms-race-my-customers-dont-care-about/"><span style="color:#000000;text-decoration:none;">For </span></a><a href="http://www.nicholasgoodman.com/bt/blog/2008/11/26/an-arms-race-my-customers-dont-care-about/">many people these benchmarks are of no real interest</a> as long as the product does what is required within the time and resources available they&#8217;re content.  But it would be a mistake to think that benchmarks don&#8217;t matter, they do; people have and will make that final decision based on them.  Remember ETL is not life and death, the decision which tool (if any) to go with may not get the level of investigation that the developers behind such products expect of their potential clientele and this is particularly true of open source.  Busy people will use such reports to direct them down a path or to confirm their existing prejudices. So I&#8217;m really glad to see Matt responding and in particular, responding in the manner he has.</p>
<p>Databases vendors have for years played the benchmarking game, setting and breaking records either via real technological advances or simply gaming the process.  We as purchasers and users knew in many cases to take the results with a large dose of salt, but purchasing decisions where nevertheless made on the backs of these surveys.</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/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/587/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/587/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/587/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/587/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/587/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/587/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=587&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/12/04/pentaho-data-integration-kettle-v-talend-benchmark/feed/</wfw:commentRss>
		<slash:comments>6</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>Open Source Metrics and Benchmarks</title>
		<link>http://blog.gobansaor.com/2008/10/30/open-source-metrics/</link>
		<comments>http://blog.gobansaor.com/2008/10/30/open-source-metrics/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 12:24:20 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[kettle]]></category>
		<category><![CDATA[ETL benchmarks]]></category>
		<category><![CDATA[PDI 3.0]]></category>
		<category><![CDATA[WaveMaker]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=557</guid>
		<description><![CDATA[Marc Russel&#8217;s blog links to a Manapps ELT benchmark report comparing the performance of several leading ETL tools both proprietary (DataStage and Informatica) and OS (Talend and PDI (aka Kettle)).  As would be expected each tool has their own strengths and weaknesses, but one thing stands out, the venerable Kettle ETL aka PDI 3.0 is now [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=557&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://marcrussel.wordpress.com/">Marc Russel&#8217;s blog</a> links to a Manapps ELT benchmark report comparing the performance of several leading ETL tools both proprietary (DataStage and Informatica) and OS (Talend and PDI (aka Kettle)).  <span style="text-decoration:line-through;">As would be expected each tool has their own strengths and weaknesses, but one thing stands out, the venerable </span><a href="http://www.ibridge.be/?page_id=122"><span style="text-decoration:line-through;">Kettle ETL</span></a><span style="text-decoration:line-through;"> aka PDI 3.0 is now a serious contender for handling very large datasets</span>.  Oops, that&#8217;s what I get for wishing for a result and (mis-)reading the report early in the morning with a cold and bad sore throat, sadly PDI is still very much slower that its OS cousin Talend. In fact, Talend continues to play on the strength that comes from a code generated sloution, i.e. raw speed.  As a pure ETL play, Talend is well capable of playing on the same pitch as the &#8220;big kids&#8221;. </p>
<p>Interestingly, the report is also &#8220;open source&#8221; as it&#8217;s released under a <a href="http://creativecommons.org/licenses/by/3.0/us/"><span style="text-decoration:none;">Creative Commons License</span></a>, so I can link to it <span style="text-decoration:none;"><span style="text-decoration:line-through;">here</span></span><span style="color:#000000;"><a href="http://marcrussel.files.wordpress.com/2008/10/etlbenchmarks_manappsc221008.pdf">.</a></span></p>
<p><span style="color:#000000;"><strong>UPDATE: </strong></span></p>
<p><span style="color:#000000;">There&#8217;s now a new version of the report available (<a href="http://www.manapps.com/" target="_blank">www.manapps.com</a>, Topic Benchmark), it seems the original was just a work-in-progress and was not meant for public release.  The main difference appears to be a significant improvement in Informatica&#8217;s &#8216;score&#8217;, but I&#8217;m not sure as I was really only interested in comparing the two OSS products, Talend and Pentaho PDI, in that &#8216;battle&#8217; Pentaho still comes out &#8216;slower&#8217;. </span></p>
<p><span style="color:#000000;"> The original Marc Russel blog entry and a subsequent one reporting the new updated report appear to have both been removed.  </span></p>
<p><span style="color:#000000;">Also, I was informed of the &#8216;updated&#8217; report via this email from manapps, which assures vendors that they are happy to rerun any tests and provide any information re the running of such tests &#8230; </span></p>
<blockquote><p><span style="color:#000000;">Dear Sir,</span></p>
<p>You referred on your web site to the report called “Benchmark ETL” by Manapps, from November 2008. This draft report was not intended to be publicly released since just a working document.<br />
We would like you (i) publish Asap the modified version (or its related link) that supersedes the former one (on our web site (<a href="http://www.manapps.com/" target="_blank">www.manapps.com</a>, Topic Benchmark), (ii) state that Manapps had no intend to release the former report and accordingly takes no responsibility on its content, (iii) state that Manapps holds all necessary elements at the disposal of all vendors so that they can rerun some tests if wished that will then be published.</p>
<p>Regards,<br />
Philippe THOMAS</p>
<p>Time: Thursday March 5, 2009 at 5:10 pm</p></blockquote>
<p> </p>
<p><a href="http://marcrussel.files.wordpress.com/2008/10/etlbenchmarks_manappsc221008.pdf"></a><a href="http://www.keeneview.com/2008/10/open-source-marketing-metrics-from-0-to.html"><span style="text-decoration:none;">Another analysis of OSS in the wild</span></a> this time from Chris Keene, <a href="http://www.wavemaker.com/"><span style="text-decoration:none;">WaveMaker</span></a> CEO, on OSS as a marketing tool. Bottom line, 1% conversion rate, 700 paying customers in 9 months &#8230;   </p>
<div class="wp-caption aligncenter" style="width: 510px"><a href="http://www.keeneview.com/uploaded_images/metrics-783392.jpg"><img title="WaveMaker, from click to paying customer." src="http://www.keeneview.com/uploaded_images/metrics-783392.jpg" alt="WaveMaker OSS as a marketing tool" width="500" height="400" /></a><p class="wp-caption-text">WaveMaker OSS as a marketing tool</p></div>
<p> </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/557/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/557/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/557/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/557/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/557/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/557/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/557/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/557/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/557/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/557/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=557&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/10/30/open-source-metrics/feed/</wfw:commentRss>
		<slash:comments>13</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://www.keeneview.com/uploaded_images/metrics-783392.jpg" medium="image">
			<media:title type="html">WaveMaker, from click to paying customer.</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>New universal SQLite JDBC library.</title>
		<link>http://blog.gobansaor.com/2008/07/21/new-universal-sqlite-jdbc-library/</link>
		<comments>http://blog.gobansaor.com/2008/07/21/new-universal-sqlite-jdbc-library/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 16:54:42 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[kettle]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[JDBC]]></category>
		<category><![CDATA[universal]]></category>
		<category><![CDATA[zentus.com]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=417</guid>
		<description><![CDATA[Both Talend (Java) and Kettle distribute the Zentus.com pure-Java SQLite JDBC driver and for most purposes this run-anywhere version is fine. But, if you really need to take advantage of SQLite&#8217;s speed then connecting using the native JNI version is a must.  Doing this was easy enough, just change over to using a generic JDBC [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=417&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Both Talend (Java) and Kettle distribute the <a href="http://www.zentus.com/sqlitejdbc/">Zentus.com pure-Java SQLite JDBC driver</a> and for most purposes this run-anywhere version is fine. But, if you really need to take advantage of SQLite&#8217;s speed then connecting using the native JNI version is a must.  Doing this was easy enough, just change over to using a generic JDBC connection specifying the required native jar and placing the associated dll/so on your system path.</p>
<p>But now there&#8217;s an easier way, the latest version (V052, in fact from V050 on) is a universal jar, it contains native JNI libraries for Windows, Linux and MacOS alongside the pure-Java version.  It will automatically pick the correct lib for the platform and fall back to the pure-Java version if required.  You can tell if it&#8217;s picked up the native lib by calling conn.getDriverVersion(); it&#8217;ll return &#8220;native&#8221; if it has.</p>
<p>To upgrade to this jar in Kettle see <a href="http://blog.gobansaor.com/2007/10/05/using-the-latest-pure-java-sqlite-jdbc-driver-in-kettle/">this</a>, this time replacing the nested jar with <strong>sqlitejdbc-v052.jar</strong>.</p>
<p>For Talend:</p>
<ul>
<li>Either rename the new V052 jar to <strong><em>sqlitejdbc_v037_nested.jar</em></strong>, replace the existing V037 jar in the ../lib/java folder with this new renamed file.</li>
<li>Or, you could edit the Java specific XML files in the various tSQlite component folders, replacing the references to the old nested V037 jar.</li>
<li>Or, and this is what I would do, don&#8217;t use the tSQLite components, replace them with tJDBC generic components, then you can pick whatever version of the driver you require, you could even change to a different database provider!</li>
</ul>
<p>The Talend tradition of a separate set of components for each type of database, seems to be a hangover from its Perl-generating roots. It&#8217;s true that database specific components are required for certaing tasks such as  bulk-loading, ELTs and so on, but JDBC was designed to be generic and as long as the SQL syntax is compatible, it makes switching in an out database providers very easy.  So unless there&#8217;s a good reason, stick to using tJDBC.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/417/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/417/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/417/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/417/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/417/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=417&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/07/21/new-universal-sqlite-jdbc-library/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>Groovy as Talend&#8217;s scripting language</title>
		<link>http://blog.gobansaor.com/2008/07/20/groovy-as-talends-scripting-language/</link>
		<comments>http://blog.gobansaor.com/2008/07/20/groovy-as-talends-scripting-language/#comments</comments>
		<pubDate>Sun, 20 Jul 2008 18:04:57 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Palo]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[Jetty]]></category>
		<category><![CDATA[SQLite user defined functions]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=387</guid>
		<description><![CDATA[Although I had decided to use Talend (Java version) as my primary ETL tool I still had one major problem with it, its lack of a scripting tool.  Kettle (Pentaho PDI) has Javascript, Excel has VBA, Picalo has (well OK, is) Python and Talend in its Perl version has Perl.  I could have gone (and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=387&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>Although I had decided to use <a href="http://www.talend.org">Talend</a> (Java version) as my primary ETL tool I still had one major problem with it, its lack of a scripting tool.  Kettle (Pentaho PDI) has Javascript, Excel has VBA, <a href="http://www.picalo.org/">Picalo</a> has (well OK, is) Python and Talend in its Perl version has Perl.  I could have gone (and did experiment) with calling Javascript, Jython or JRuby via <a href="http://www.jcp.org/en/jsr/detail?id=223">JSR223</a>, but I wasn&#8217;t happy with the level of integration afforded by this, opting instead to make command line calls to Python (using SQLite as a data carrier).</p>
<p>Then, I discovered <a href="http://groovy.codehaus.org/">Groovy</a>, or I should say rediscovered it, as I&#8217;d come across it many years ago when it was far less developed than is now, liked it then but couldn&#8217;t see a use for it at the time and promptly forgot about it.  Then it appeared wrapped in a Talend component, prompting me to do a quick visit to the Groovy website, which turned into a deep-dive into the language; I&#8217;d found my scripting tool!</p>
<p>Groovy (by the way what a terrible name for a language, or is that just me?), is not really a stand-alone language but more an extension to Java itself; offering the full power of Java but with addition of closures, builders and dynamic types.  In fact, over time Groovy has become more and more Java like (the biggest missing being lack of support for anonymous inner-classes).</p>
<p><span style="text-decoration:line-through;">To underline this convergence, Groovy is being developed under the separate <a href="http://www.jcp.org/en/jsr/detail?id=241">JSR 241</a> rather than JSR 223.</span> There&#8217;s full interoperability between both languages; Groovy  compiles down to <a href="http://en.wikipedia.org/wiki/Java_bytecode">JVM bytecode</a> and can use Java classes and objects, Java can likewise use Groovy generated bytecode.  This allows for fast prototyping and development without compromising access to Java&#8217;s vast collection of libraries.</p>
<p>Here for example, is a piece of code to try out the <a href="http://www.jpalo.com/en/news.html">JPalo library&#8217;s</a> ability to access a <a href="http://www.palo.net">Palo</a> cube &#8230;</p>
<pre class="brush: plain;">

[sourcecode language='Java']

import org.palo.api.Connection;
import org.palo.api.ConnectionFactory;
import org.palo.api.Cube;
import org.palo.api.Database;
import org.palo.api.Element;
connection = ConnectionFactory.getInstance().newConnection(&quot;localhost&quot;,&quot;7777&quot;,&quot;admin&quot;,&quot;admin&quot;)
database = connection.getDatabaseByName(&quot;Demo&quot;);
;cube = database.getCubeByName(&quot;Sales&quot;);
rowElements = cube.getDimensionAt(0).getElementsInOrder();
columnElements = cube.getDimensionAt(1).getElementsInOrder();
dataSet = [rowElements,columnElements,]
dataSet &lt;&lt; cube.getDimensionAt(2).getElementAt(0)
dataSet &lt;&lt; cube.getDimensionAt(3).getElementAt(0)
dataSet &lt;&lt; cube.getDimensionAt(4).getElementAt(0)
dataSet &lt;&lt; cube.getDimensionAt(5).getElementAt(0)
// fetch data set
datas=cube.getDataArray(dataSet as Element[][])
connection.disconnect();
// parse the return string
rowcount = rowElements.length;
columncount = columnElements.length;
data=[]
heading=[]
// first row set to the row names (i.e. &quot;Product name&quot; followed by the country names )
heading &lt;&lt; &quot;Product&quot;
for (i in 0..columncount-1) {
    heading &lt;&lt; columnElements[i].getName()
   }
data &lt;&lt; heading
// Now  out each line
for (i in 0..rowcount-1) {
    row = []
    row &lt;&lt; rowElements[i].getName()
    for (j in 0..columncount-1) {
         row &lt;&lt; datas[((i + (j*columncount)))]
         }
    data &lt;&lt; row.flatten()
   }

//output to csv file
def csvOut= new FileOutputStream('c:/data/File.csv' )
for (lines in data) {
         lines.eachWithIndex{col,i -&gt;
                             if (i &gt; 0) {
                                 csvOut &lt;&lt; &quot;,&quot;
                             }
         csvOut &lt;&lt; col
     }
     csvOut &lt;&lt; &quot;\n&quot;
}
csvOut.close()
[/sourcecode]
</pre>
<p>This was done in the Groovy console as a proof of concept, it was then transferred to a tGroovy component where it was parametrised and instead of outputting to a CSV file, it was used to fill the globalBuffer structure (the structure used by tBufferOutput component).</p>
<p>Other things I managed to do with Talend tGroovy over a few days:</p>
<ul>
<li>Extended <a href="http://www.sqlite.org">SQLite</a> with my own user-defined Palo functions.</li>
<li>Set-up a Talend job as an Excel accessible RESTful web service using Jetty.</li>
<li>Interfaced with Amazon S3.</li>
</ul>
<p>Although I was very familiar with the S3 and the JPalo API, both <a href="http://files.zentus.com/sqlitejdbc/api/org/sqlite/Function.html">SQLite UDFs</a> and <a href="http://www.mortbay.org/jetty-6/">Jetty</a> were new to me, and that&#8217;s were scripting proves it worth, giving the developer the maximum support with the minimum of background noise.  But it&#8217;s not just weird and wonderful new APIs that scripting helps expose but as a datasmithing tool, languages such as Groovy give analysts the ability to quickly de-construct and model datasets (for example, see <a href="http://groovy.codehaus.org/Tutorial+6+-+Groovy+SQL">Groovy&#8217;s SQL database support</a> and <a href="http://groovy.codehaus.org/Collections">collections&#8217; functionality</a>).</p>
<p>As a <span style="text-decoration:line-through;">in</span>famous Irish farming-pharma TV ad of my youth put it, &#8220;<span style="font-style:italic;">It&#8217;s a queer name but great stuff</span>&#8220;.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/387/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/387/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/387/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=387&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/07/20/groovy-as-talends-scripting-language/feed/</wfw:commentRss>
		<slash:comments>8</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>Regular Expressions as an end-user programming tool?</title>
		<link>http://blog.gobansaor.com/2008/07/01/regular-expressions-as-an-end-user-programming-tool/</link>
		<comments>http://blog.gobansaor.com/2008/07/01/regular-expressions-as-an-end-user-programming-tool/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 12:24:25 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[kettle]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expressions]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=382</guid>
		<description><![CDATA[&#8220;What? Have you completely lost the plot, Gleeson?&#8221;, I hear you scream.  Jamie Zawinski&#8217;s famous quote is intoned once more .. Some people, when confronted with a problem, think “I know, I&#8217;ll use regular expressions.”   Now they have two problems. Of course the above quote could be (and probably has been) changed to&#8230; Most business [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=382&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>&#8220;What? Have you completely lost the plot, Gleeson?&#8221;, I hear you scream.  <a href="http://www.jwz.org/">Jamie Zawinski&#8217;s</a> famous quote is intoned once more ..</p>
<blockquote><p><strong>Some people, when confronted with a problem, think<br />
“I know, I&#8217;ll use regular expressions.”   Now they have two problems.</strong></p></blockquote>
<p>Of course the above quote could be (and probably has been) changed to&#8230;</p>
<blockquote><p><strong>Most business people, when confronted with a problem, think<br />
“I know, I&#8217;ll use a spreadsheet.”   Now they have two problems.</strong></p></blockquote>
<p>They are dense, single-line, single purpose, self contained mini-programs.  The previous statement applies to <a href="http://en.wikipedia.org/wiki/Regular_expression">regular expressions</a> but could equally be used to describe the single most popular end-user programming tool, spreadsheet formulae (particularly in their nested form!).</p>
<p>As somebody with the &#8220;<a href="http://blogs.msdn.com/alfredth/archive/2006/12/21/is-there-a-programming-gene.aspx">programming gene</a>&#8221; (something most, but not all, IT professionals possess, as do a significant proportion of &#8220;civilians&#8221;), such compressed logic somewhat grates compared with the power and elegance of more expressive programming languages, but that hasn&#8217;t stopped me using both spreadsheet formulae and regex to quickly and effectively solve problems when the need arose.</p>
<p>Those without the programming gene (the vast majority of business users), find traditional programming languages next to impossible to get their heads around yet find spreadsheet formulae approachable and useful.  It <a href="http://hackety.org/2007/08/15/oneLinersAreCrucial.html">seems to be something to do with approaching problems as a series of simple problems</a> and not loading the whole problem domain into one&#8217;s brain at one sitting (as <a href="http://www.paulgraham.com/head.html">most programmers and system designers are capable of</a>).</p>
<p>In the past, non-programmers would rarely come in contact with regex as its use was possible only within the realms of professional programming or Unix sys-admin toolsets (sed,<a href="http://en.wikipedia.org/wiki/Awk">awk</a> etc.).  But now, ETL tools such as <a href="http://blog.gobansaor.com/2007/05/27/talend-vs-kettle-pentaho-pdi/">Kettle and Talend</a> allow end-users to use regular expressions without the need to understand the underlying programming language.  Taking this to the next step, Talend&#8217;s <a href="http://www.talend.com/products-data-quality/talend-open-profiler.php">new data profiling product</a> uses regular expressions as its main discovery language. They could, I guess, have invented yet another XML dialect and/or <a href="http://en.wikipedia.org/wiki/Query_by_Example">query-by-example</a> dialogue, but instead they&#8217;ve taken the sensible (and cheaper) option and exposed the full power of raw regular expressions.</p>
<p>Will the great unwashed embrace regex in the same way they took to nested Excel functions, embarrassing their professional colleagues with yet more amateurish and often unmaintainable messy solutions, that just work? I think they just might&#8230;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/382/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/382/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/382/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=382&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/07/01/regular-expressions-as-an-end-user-programming-tool/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>
		<item>
		<title>What to do when Talend gets its knickers in a twist?</title>
		<link>http://blog.gobansaor.com/2008/06/30/what-to-do-when-talend-gets-its-knickers-in-a-twist/</link>
		<comments>http://blog.gobansaor.com/2008/06/30/what-to-do-when-talend-gets-its-knickers-in-a-twist/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 12:38:57 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[.item]]></category>
		<category><![CDATA[.JETEmtiters]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=380</guid>
		<description><![CDATA[If you&#8217;ve done any significant amount of work with Talend you&#8217;ll undoubtedly have experienced situations where either the generated code/JETemitters or the GUI representation of a job become unstable like so&#8230; The usual advice is to backup your projects (workspace/projectName) , delete the workspace/.Java (or .Perl) and workspace/.JETEmitters folders and restart Talend to force a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=380&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve done any significant amount of work with <a href="http://www.talend.com">Talend</a> you&#8217;ll undoubtedly have experienced situations where either the generated code/<a href="http://www.eclipse.org/articles/Article-JET/jet_tutorial1.html">JETemitters</a> or the GUI representation of a job  become unstable like so&#8230;</p>
<p><a href="http://gobansaor.files.wordpress.com/2008/06/knickers-in-twist.jpg"><img class="aligncenter size-medium wp-image-381" src="http://gobansaor.files.wordpress.com/2008/06/knickers-in-twist.jpg?w=300&#038;h=280" alt="Talend loses the plot!" width="300" height="280" /></a></p>
<p>The <a href="http://www.talendforge.org/forum/viewtopic.php?id=2389">usual advice</a> is to backup your projects (workspace/projectName) , delete the workspace/.Java (or .Perl) and workspace/<a href="http://www.eclipse.org/articles/Article-JET/jet_tutorial1.html">.JETEmitters</a> folders and restart Talend to force a rebuild of the generated code.  I&#8217;ve have varying degrees of success with this approach, from it fixing the problem to the other extreme of the project raising the dreaded &#8220;null pointer&#8221; error never to load again!  Also, in such a situation, don&#8217;t depend on the in-built backup facility (particularly if it&#8217;s showing errors on the export), make a copy of the project folder directly (in particular, the process folder).</p>
<p>I&#8217;ve found the most reliable method to untwist such messes is to create a brand new Talend installation (unzip download file into another folder), create a new project (don&#8217;t use the front screen&#8217;s import functionality); within this new project, use the import item facility, import the required jobs from the corrupted project and the resulting project should now work OK.</p>
<p>If the job wouldn&#8217;t compile due to its inability to find standard Talend classes (this applies to Java projects, switch to the code view and click on the red spots on the right hand side to see the errors), just saving the job, exiting and restarting Talend should fix this problem.</p>
<p>Sometimes however, as with the screenshot above, none of the above will work.  Remedying this required me to edit the job&#8217;s <em>.item </em>file&#8217;s XML directly (the bug that caused this was seen in a 2.4 RC release, it thankfully appears to have fixed in the production release).  Editing a job&#8217;s XML is not for the faint hearted, but it is possible and with the knowledge gained from studying the XML structure you may find such experience useful (as I did) in the mass-editing  of jobs.  In fact, I&#8217;ve used Talend&#8217;s own data integration functionality to mass generate Talend jobs, demonstrating again the power of this continually improving product!</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/380/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/380/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/380/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=380&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/06/30/what-to-do-when-talend-gets-its-knickers-in-a-twist/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>

		<media:content url="http://gobansaor.files.wordpress.com/2008/06/knickers-in-twist.jpg?w=300" medium="image">
			<media:title type="html">Talend loses the plot!</media:title>
		</media:content>
	</item>
		<item>
		<title>SQLite &#8211; the ultimate data-smithing tool!</title>
		<link>http://blog.gobansaor.com/2008/04/26/sqlite-the-ultimate-data-smithing-tool/</link>
		<comments>http://blog.gobansaor.com/2008/04/26/sqlite-the-ultimate-data-smithing-tool/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 16:21:16 +0000</pubDate>
		<dc:creator>Tom Gleeson</dc:creator>
				<category><![CDATA[AmazonAWS]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Talend]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[kettle]]></category>
		<category><![CDATA[Microsoft Access]]></category>
		<category><![CDATA[Amazon SimpleDB]]></category>

		<guid isPermaLink="false">http://gobansaor.wordpress.com/?p=363</guid>
		<description><![CDATA[Image via Wikipedia Although my data-smithing tool box is full to the brim with powerful tools such as Talend, Kettle PDI, Picalo and Excel, all backed by the cloud infrastructure of Amazon&#8217;s S3, SImpleDB and EC2, there&#8217;s one simple yet powerful tool that I always seem to gravitate back to, that tool is SQLite. Now [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=363&subd=gobansaor&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="float:right;margin:1em;"><a href="http://commons.wikipedia.org/wiki/Image:SQLite_Logo_4.png" target="_blank"><img style="border:medium none;display:block;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/19/SQLite_Logo_4.png/202px-SQLite_Logo_4.png" alt="SQLite logo as of 2007-12-15" /></a>Image via <a href="http://commons.wikipedia.org/wiki/Image:SQLite_Logo_4.png" target="_blank">Wikipedia</a></div>
<p>Although my data-smithing tool box is full to the brim with powerful tools such as <a href="http://www.talend.com">Talend</a><a href="http://blog.gobansaor.com/2007/05/27/talend-vs-kettle-pentaho-pdi/">, Kettle PDI</a>, <a href="http://blog.gobansaor.com/2008/04/11/python-the-new-vba/">Picalo</a> and Excel, all backed by the cloud infrastructure of <a href="http://www.amazonaws.com/">Amazon&#8217;s S3, SImpleDB and EC2</a>, there&#8217;s one simple yet powerful tool that I always seem to gravitate back to, that tool is <a href="http://blog.gobansaor.com/2007/02/01/whats-so-good-about-sqlite/">SQLite</a>.</p>
<p>Now obviously being a hewer of data, I need a SQL compliant database for data manipulation  and SQLite performs that task with speed and ease.  But it&#8217;s not just in the hewing, it&#8217;s in the hauling of data where SQLite also shines.</p>
<p>I use SQLite as the container for passing tabular datasets between (and within) my various tools, that data doesn&#8217;t even need to be clean (due to SQlite&#8217;s liberal <a href="http://www.sqlite.org/different.html">manifest typing</a> rules) just so long as it can be expressed as a table.</p>
<p>For example; a Talend job could store an extracted dataset in a SQLite file, pass that file on to a Python script for some special processing (for example extracting further data from a source not directly supported by Talend such as <a href="http://pypi.python.org/pypi/sapnwrfc/">SAP</a> or <a href="http://blog.gobansaor.com/2008/01/03/couchdb-ibms-simpledb-and-s3/">SimpleDB</a>), and then pass the resulting SQLite database on to Excel or <a href="http://blog.gobansaor.com/2007/04/13/proto/">a similar tool</a> to allow a business user to view and perhaps modify the data; finally Talend picking up the file again to load it into a corporate data warehouse.</p>
<p>Now you could use flat files to transport the data or store the intermediate results in a corporate database, but SQLite is as easy, if not easier than, flat files and offers the SQL processing capabilities of big-iron databases, but without the hassle of getting write access to an existing server  or setting one up from scratch.</p>
<p>And I know there are other similar file based database offerings such as MS Access and the Java only <a href="http://hsqldb.org/">HSQLDB</a>, but neither match SQLite&#8217;s ubiquitousness, sheer simplicity and powerful data processing ability.</p>
<div id="zemanta-pixie" style="width:100%;margin:5px 0;"><a id="zemanta-pixie-a" title="Zemified by Zemanta" href="http://www.zemanta.com/"><img style="border:medium none;float:right;" src="http://img.zemanta.com/pixie.png?x-id=7ccd587a-6011-4f41-b9f1-f3fb3f5821f5" alt="" /></a></div>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/gobansaor.wordpress.com/363/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/gobansaor.wordpress.com/363/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gobansaor.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gobansaor.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gobansaor.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gobansaor.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gobansaor.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gobansaor.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gobansaor.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gobansaor.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gobansaor.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gobansaor.wordpress.com/363/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gobansaor.com&blog=110633&post=363&subd=gobansaor&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gobansaor.com/2008/04/26/sqlite-the-ultimate-data-smithing-tool/feed/</wfw:commentRss>
		<slash:comments>8</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://upload.wikimedia.org/wikipedia/commons/thumb/1/19/SQLite_Logo_4.png/202px-SQLite_Logo_4.png" medium="image">
			<media:title type="html">SQLite logo as of 2007-12-15</media:title>
		</media:content>

		<media:content url="http://img.zemanta.com/pixie.png?x-id=7ccd587a-6011-4f41-b9f1-f3fb3f5821f5" medium="image" />
	</item>
	</channel>
</rss>