<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<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/"
	>

<channel>
	<title>Jens Bleuel about Kettle aka Pentaho Data Integration (PDI) &#038; Pentaho BI</title>
	<link>http://kettle.bleuel.com</link>
	<description>Fun Stuff about the Open Source ETL Tool Kettle aka Pentaho Data Integration (PDI)</description>
	<pubDate>Fri, 20 Apr 2012 23:18:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>How to deal with Kettle bugs?</title>
		<link>http://kettle.bleuel.com/2012/04/21/how-to-deal-with-kettle-bugs/</link>
		<comments>http://kettle.bleuel.com/2012/04/21/how-to-deal-with-kettle-bugs/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 23:18:07 +0000</pubDate>
		<dc:creator>Jens Bleuel</dc:creator>
		
		<category><![CDATA[Kettle (PDI)]]></category>

		<guid isPermaLink="false">http://kettle.bleuel.com/2012/04/21/how-to-deal-with-kettle-bugs/</guid>
		<description><![CDATA[I&#8217;m always amazed about our great community: finding bugs and even fixing them!
That&#8217;s the way it goes:

Thanks to Paul for making my day by this post.
When you want to learn more about bug reports, have a look at: Bug Reports and Feature Requests FAQ
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m always amazed about our great community: finding bugs and even fixing them!</p>
<p>That&#8217;s the way it goes:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/04/foundakettlebug.jpg" title="Found a Kettle bug"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/04/foundakettlebug.jpg" alt="Found a Kettle bug" /></a></p>
<p>Thanks to <a href="https://twitter.com/#!/pstoellberger" target="_blank">Paul</a> for making my day by <a href="https://twitter.com/#!/pstoellberger/status/193295813009612801" target="_blank">this post</a>.</p>
<p>When you want to learn more about bug reports, have a look at: <a href="http://wiki.pentaho.com/display/EAI/Bug+Reports+and+Feature+Requests+FAQ" target="_blank">Bug Reports and Feature Requests FAQ</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kettle.bleuel.com/2012/04/21/how-to-deal-with-kettle-bugs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Data Profiling and Data Quality (Human Inference) Integration with Kettle</title>
		<link>http://kettle.bleuel.com/2012/04/17/data-profiling-and-data-quality-human-inference-integration-with-kettle/</link>
		<comments>http://kettle.bleuel.com/2012/04/17/data-profiling-and-data-quality-human-inference-integration-with-kettle/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 13:04:46 +0000</pubDate>
		<dc:creator>Jens Bleuel</dc:creator>
		
		<category><![CDATA[Kettle (PDI)]]></category>

		<guid isPermaLink="false">http://kettle.bleuel.com/2012/04/17/data-profiling-and-data-quality-human-inference-integration-with-kettle/</guid>
		<description><![CDATA[Data Profiling with DataCleaner (Human Inference) and Kettle
It was already possible to profile your data in an easy way with Kettle: Open the Database Explorer, chose a table and right click in the context menu on Data Profile. The result was basic information about the data like Min, Max, Count all for strings and additional [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Data Profiling with DataCleaner (Human Inference) and Kettle</strong></p>
<p>It was already possible to profile your data in an easy way with Kettle: Open the Database Explorer, chose a table and right click in the context menu on <em>Data Profile</em>. The result was basic information about the data like <em>Min</em>, <em>Max</em>, <em>Count all</em> for strings and additional information for numeric data but these were only basic metrics about your data. We have a much more better solution now:</p>
<p>Human Inference (DataCleaner) and Pentaho (Kettle) worked together to integrate their tools and the result is a nice and seamless integration of DataCleaner into Kettle. A <strong>sample</strong> for introduction and <strong>FAQ</strong> can be found at <a href="http://wiki.pentaho.com/display/EAI/Kettle+Data+Profiling+with+DataCleaner" target="_blank" title="Kettle Data Profiling with DataCleaner">Kettle Data Profiling with DataCleaner</a></p>
<p>You can right click on any step within your transformation and profile your data. It is also possible to clean or harmonize your data and check the result directly within your transformation.</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dc_profile_context_menu.PNG" title="DC context menu"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dc_profile_context_menu.PNG" alt="DC context menu" /></a></p>
<p>Here are some screen shots:</p>
<ul>
<li>Number Analyzer</li>
</ul>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dc_sample1_number.PNG" title="DC Number Analyzer"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dc_sample1_number.PNG" title="DC Number Analyzer" alt="DC Number Analyzer" width="600" /></a></p>
<ul>
<li>String Analyzer</li>
</ul>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dc_sample1_string.PNG" title="DC String Analyzer"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dc_sample1_string.PNG" title="DC String Analyzer" alt="DC String Analyzer" width="600" /></a></p>
<ul>
<li>Pattern Analyzer (e.g. you see how many single words with first capital letters etc. exist in your data):</li>
</ul>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dc_pattern1.PNG" title="DC Pattern Analyzer"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dc_pattern1.PNG" title="DC Pattern Analyzer" alt="DC Pattern Analyzer" width="600" /></a></p>
<p>And there are much more Analyzers you can choose from: Matching &amp; Deduplication, Boolean, Character Set Distribution, Data Gap, Date/Time, Reference Data Matcher, Value &amp; Weekday DistributionAnalyzers</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dc_analyze.PNG" title="DC Analyzers"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dc_analyze.PNG" alt="DC Analyzers" /></a></p>
<p>For a complete reference look at <a href="http://datacleaner.eobjects.org/" class="external-link" rel="nofollow">http://datacleaner.eobjects.org</a> and for a quick introduction and sample check out: <a href="http://wiki.pentaho.com/display/EAI/Kettle+Data+Profiling+with+DataCleaner" target="_blank">http://wiki.pentaho.com/display/EAI/Kettle+Data+Profiling+with+DataCleaner</a></p>
<p><strong>Data Quality with EasyDQ (Human Inference) and Kettle</strong></p>
<p>Additional to the Data Profiling capabilities, a couple of steps for Data Quality have been introduced into Kettle as plug-ins. This covers <!--[if gte mso 9]><xml>  <o:OfficeDocumentSettings>   <o:TargetScreenSize>800&#215;600</o:TargetScreenSize>  </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:TrackMoves/>   <w:TrackFormatting/>   <w:HyphenationZone>21</w:HyphenationZone>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:DoNotPromoteQF/>   <w:LidThemeOther>DE</w:LidThemeOther>   <w:LidThemeAsian>X-NONE</w:LidThemeAsian>   <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>    <w:SplitPgBreakAndParaMark/>    <w:EnableOpenTypeKerning/>    <w:DontFlipMirrorIndents/>    <w:OverrideTableStyleHps/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>   <m:mathPr>    <m:mathFont m:val="Cambria Math"/>    <m:brkBin m:val="before"/>    <m:brkBinSub m:val="--"/>    <m:smallFrac m:val="off"/>    <m:dispDef/>    <m:lMargin m:val="0"/>    <m:rMargin m:val="0"/>    <m:defJc m:val="centerGroup"/>    <m:wrapIndent m:val="1440"/>    <m:intLim m:val="subSup"/>    <m:naryLim m:val="undOvr"/>   </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267">   <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal"/>   <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>   <w:LsdException Locked="false" Priority="39" Name="toc 1"/>   <w:LsdException Locked="false" Priority="39" Name="toc 2"/>   <w:LsdException Locked="false" Priority="39" Name="toc 3"/>   <w:LsdException Locked="false" Priority="39" Name="toc 4"/>   <w:LsdException Locked="false" Priority="39" Name="toc 5"/>   <w:LsdException Locked="false" Priority="39" Name="toc 6"/>   <w:LsdException Locked="false" Priority="39" Name="toc 7"/>   <w:LsdException Locked="false" Priority="39" Name="toc 8"/>   <w:LsdException Locked="false" Priority="39" Name="toc 9"/>   <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>   <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title"/>   <w:LsdException Locked="false" Priority="0" Name="Default Paragraph Font"/>   <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>   <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong"/>   <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>   <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid"/>   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>   <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>   <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>   <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote"/>   <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>   <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>   <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>   <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>   <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>   <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>   <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>   <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>  </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]></p>
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman","serif";} </style>
<p> <![endif]--></p>
<ul>
<li><span style="font-family: Symbol" lang="EN-US"><span><span style="font: 7pt 'Times New Roman'"></span></span></span><span lang="EN-US">Name Validation, Standardization and Cleansing</span></li>
<li><span style="font-family: Symbol" lang="EN-US"><span><span style="font: 7pt 'Times New Roman'"></span></span></span><span lang="EN-US">Address Validation, Standardization and Cleansing</span></li>
<li><span style="font-family: Symbol" lang="EN-US"><span><span style="font: 7pt 'Times New Roman'"></span></span></span><span lang="EN-US">E-Mail and Telephone Validation, Standardization and Cleansing</span></li>
<li><span style="font-family: Symbol" lang="EN-US"><span><span style="font: 7pt 'Times New Roman'"></span></span></span><span lang="EN-US">Duplicate Detection and Merge Duplicates</span></li>
</ul>
<p>Here is a validation example:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dq_sample1.PNG" title="DQ Sample 1"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/04/dq_sample1.PNG" title="DQ Sample 1" alt="DQ Sample 1" width="600" /></a></p>
<p><!--[if gte mso 9]><xml>  <o:OfficeDocumentSettings>   <o:TargetScreenSize>800&#215;600</o:TargetScreenSize>  </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:TrackMoves/>   <w:TrackFormatting/>   <w:HyphenationZone>21</w:HyphenationZone>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:DoNotPromoteQF/>   <w:LidThemeOther>DE</w:LidThemeOther>   <w:LidThemeAsian>X-NONE</w:LidThemeAsian>   <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>    <w:SplitPgBreakAndParaMark/>    <w:EnableOpenTypeKerning/>    <w:DontFlipMirrorIndents/>    <w:OverrideTableStyleHps/>   </w:Compatibility>   <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>   <m:mathPr>    <m:mathFont m:val="Cambria Math"/>    <m:brkBin m:val="before"/>    <m:brkBinSub m:val="--"/>    <m:smallFrac m:val="off"/>    <m:dispDef/>    <m:lMargin m:val="0"/>    <m:rMargin m:val="0"/>    <m:defJc m:val="centerGroup"/>    <m:wrapIndent m:val="1440"/>    <m:intLim m:val="subSup"/>    <m:naryLim m:val="undOvr"/>   </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267">   <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal"/>   <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>   <w:LsdException Locked="false" Priority="39" Name="toc 1"/>   <w:LsdException Locked="false" Priority="39" Name="toc 2"/>   <w:LsdException Locked="false" Priority="39" Name="toc 3"/>   <w:LsdException Locked="false" Priority="39" Name="toc 4"/>   <w:LsdException Locked="false" Priority="39" Name="toc 5"/>   <w:LsdException Locked="false" Priority="39" Name="toc 6"/>   <w:LsdException Locked="false" Priority="39" Name="toc 7"/>   <w:LsdException Locked="false" Priority="39" Name="toc 8"/>   <w:LsdException Locked="false" Priority="39" Name="toc 9"/>   <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>   <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title"/>   <w:LsdException Locked="false" Priority="0" Name="Default Paragraph Font"/>   <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>   <w:LsdException Locked="false" Priority="0" Name="Hyperlink"/>   <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong"/>   <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>   <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid"/>   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>   <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>   <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>   <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote"/>   <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>   <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>   <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>   <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>   <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>   <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>   <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>   <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>  </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]></p>
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman","serif";} </style>
<p> <![endif]--></p>
<p><span lang="EN-US"></span><br />
<strong>More details, download instructions, a sample video and examples can be found over here:</strong></p>
<ul>
<li><span lang="EN-US">Data Profiling and Data Quality for Kettle are <a href="http://wiki.pentaho.com/display/EAI/Human+Inference" target="_blank">available immediately</a> and can be downloaded as a plug-in for the existing Pentaho Data Integration / Kettle releases 4.2.x and later.</span></li>
<li> <a href="http://www.easydq.com/pentaho" class="external-link" rel="nofollow">http://www.easydq.com/pentaho</a></li>
<li><a href="http://datacleaner.eobjects.org/newsitem/data-profiling-and-data-quality-for-pentaho" target="_blank">http://datacleaner.eobjects.org/newsitem/data-profiling-and-data-quality-for-pentaho</a></li>
<li><a href="http://wiki.pentaho.com/display/EAI/Human+Inference" target="_blank">http://wiki.pentaho.com/display/EAI/Human+Inference </a></li>
<li><span lang="EN-US"><strong>Register for the Webinar</strong>: Better Data for Better Analytics, led by Human Inference and Pentaho on Thursday, May 10<sup>th</sup> 2012 </span><span style="color: #1f497d" lang="EN-US"><a href="http://www.pentaho.com/resources/events/20120510-better-data-for-better-analytics/"><span>Pentaho.com/human-inference-webinar </span></a></span><span style="font-size: 13pt; line-height: 115%; font-family: 'Tahoma','sans-serif'" lang="EN-US"><span> </span></span><span lang="EN-US"></span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://kettle.bleuel.com/2012/04/17/data-profiling-and-data-quality-human-inference-integration-with-kettle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pentaho Kettle for Big Data</title>
		<link>http://kettle.bleuel.com/2012/01/30/pentaho-kettle-for-big-data/</link>
		<comments>http://kettle.bleuel.com/2012/01/30/pentaho-kettle-for-big-data/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 14:54:13 +0000</pubDate>
		<dc:creator>Jens Bleuel</dc:creator>
		
		<category><![CDATA[Kettle (PDI)]]></category>

		<guid isPermaLink="false">http://kettle.bleuel.com/2012/01/30/pentaho-kettle-for-big-data/</guid>
		<description><![CDATA[All of Pentaho&#8217;s big data capabilities will be available as open source in the new Pentaho Kettle 4.3 release: Big data capabilities include the ability to input, output, manipulate and report on data using the following Hadoop and NoSQL stores: Cassandra, Hadoop HDFS, Hadoop MapReduce, Hadapt, HBase, Hive, HPCC Systems and MongoDB.
With regard to Hadoop, [...]]]></description>
			<content:encoded><![CDATA[<p>All of Pentaho&#8217;s big data capabilities will be available as open source in the new Pentaho Kettle 4.3 release: Big data capabilities include the ability to input, output, manipulate and report on data using the following Hadoop and NoSQL stores: Cassandra, Hadoop HDFS, Hadoop MapReduce, Hadapt, HBase, Hive, HPCC Systems and MongoDB.</p>
<p>With regard to Hadoop, Pentaho Kettle makes available job orchestration steps for Hadoop, Amazon Elastic MapReduce, Pentaho MapReduce, HDFS File Operations, and Pig scripts. All major Hadoop distributions are supported including: Amazon Elastic MapReduce, Apache Hadoop, Cloudera&#8217;s Distribution including Apache Hadoop (CDH), Cloudera Enterprise, EMC Greenplum HD, HortonWorks Data Platform powered by Apache Hadoop, and MapR&#8217;s M3 Free and M5 Edition. Pentaho Kettle can execute ETL transforms outside the Hadoop cluster or within the nodes of the cluster, taking advantage of Hadoop&#8217;s distributed processing and reliability.</p>
<p>Download, how-to docs, videos and more at <a href="http://community.pentaho.com/BigData" target="_blank">http://community.pentaho.com/BigData</a>, see also Matt&#8217;s blog at <a href="http://www.ibridge.be/?p=207" target="_blank">http://www.ibridge.be/?p=207</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kettle.bleuel.com/2012/01/30/pentaho-kettle-for-big-data/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Things to avoid with PDI (Part 1 to 5)</title>
		<link>http://kettle.bleuel.com/2012/01/13/things-to-avoid-with-pdi-part-1-to-5/</link>
		<comments>http://kettle.bleuel.com/2012/01/13/things-to-avoid-with-pdi-part-1-to-5/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 17:24:49 +0000</pubDate>
		<dc:creator>Jens Bleuel</dc:creator>
		
		<category><![CDATA[Kettle (PDI)]]></category>

		<guid isPermaLink="false">http://kettle.bleuel.com/2012/01/13/things-to-avoid-with-pdi-part-1-to-5/</guid>
		<description><![CDATA[Just watch&#8230;





]]></description>
			<content:encoded><![CDATA[<p>Just watch&#8230;</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/01/pdi2avoid-001.JPG" title="Things to avoid with PDI - Part 1"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/01/pdi2avoid-001.thumbnail.JPG" alt="Things to avoid with PDI - Part 1" /></a></p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/01/pdi2avoid-002.JPG" title="Things to avoid with PDI - Part 2"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/01/pdi2avoid-002.thumbnail.JPG" alt="Things to avoid with PDI - Part 2" /></a></p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/01/pdi2avoid-003.JPG" title="Things to avoid with PDI - Part 3"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/01/pdi2avoid-003.thumbnail.JPG" alt="Things to avoid with PDI - Part 3" /></a></p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/01/pdi2avoid-004.jpg" title="Things to avoid with PDI - Part 4"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/01/pdi2avoid-004.thumbnail.jpg" alt="Things to avoid with PDI - Part 4" /></a></p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2012/01/pdi2avoid-005.jpg" title="Things to avoid with PDI - Part 5"><img src="http://kettle.bleuel.com/__oneclick_uploads/2012/01/pdi2avoid-005.thumbnail.jpg" alt="Things to avoid with PDI - Part 5" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kettle.bleuel.com/2012/01/13/things-to-avoid-with-pdi-part-1-to-5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ExeBatLauncher: Calling .bat Files by .exe Executables (e.g. Having a Spoon.exe)</title>
		<link>http://kettle.bleuel.com/2011/12/14/exebatlauncher-calling-bat-files-by-exe-executables-eg-having-a-spoonexe/</link>
		<comments>http://kettle.bleuel.com/2011/12/14/exebatlauncher-calling-bat-files-by-exe-executables-eg-having-a-spoonexe/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 00:13:52 +0000</pubDate>
		<dc:creator>Jens Bleuel</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://kettle.bleuel.com/2011/12/14/exebatlauncher-calling-bat-files-by-exe-executables-eg-having-a-spoonexe/</guid>
		<description><![CDATA[The ExeBatLauncher is a simple way of calling .bat files as .exe files in creating an .exe command that calls the same .bat command.
For example you want to call the Spoon.bat file by Spoon.exe, simply rename the ExeBatLauncher.exe (that is found in the distrib folder) to Spoon.exe and copy it to the same directory and [...]]]></description>
			<content:encoded><![CDATA[<p>The <strong>ExeBatLauncher </strong>is a simple way of calling .bat files as .exe files in creating an .exe command that calls the same .bat command.</p>
<p>For example you want to call the Spoon.bat file by Spoon.exe, simply rename the ExeBatLauncher.exe (that is found in the distrib folder) to Spoon.exe and copy it to the same directory and you are done.</p>
<p>If you want it now, just <a href="http://kettle.bleuel.com/__oneclick_uploads/2011/12/exebatlauncher.zip" title="ExeBatLauncher.zip">download</a> it and use it, it&#8217;s free <img src='http://kettle.bleuel.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>If you want to have a polished <a href="http://jira.pentaho.com/secure/attachment/31408/Spoon.exe" target="_blank">Spoon.exe</a> with the right icon to test with, just download it from the PDI-6949 attachment.</p>
<p>The reason why I created this was a Pentaho Data Integration JIRA case: <a href="http://jira.pentaho.com/browse/PDI-6949">PDI-6949</a> - &#8220;While in <a href="http://jira.pentaho.com/browse/PDI-2925" title="kettle.exe does not work in the Agile BI branch">PDI-2925</a>  the feature of kettle.exe was removed, you cannot add a .bat file to  the quick launch of Windows 7.   The workaround is to add a cmd.exe to  the quick launch and add /c &lt;path to .bat&gt; to modify it.  This is  due to microsoft security in Win 7.&#8221;</p>
<p>I also thought a lot of launching Kettle just by clicking on a .ktr or .kjb file and accomplished this by a wrapper .bat (calling the target bat with the /file: option). There are also nasty ways of launching .bat files by creating self extracting exe archives (nice trick), but this is just too dirty to be professional. But I tried also this and it worked even with the Spoon icon, but some limitations like having to extract the.bat file from the self extracting archive into the distribution folder are not a good solution. Further investigation into existing solutions of calling Java from .exe brought some nice projects but that is not the solution we want at this time.</p>
<p>I wanted to have a pretty simple .exe that just calls the .bat with the same name and here is the code for this:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/12/exebatlauncher_cpp.png" title="ExeBatLauncher.cpp"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/12/exebatlauncher_cpp.png" alt="ExeBatLauncher.cpp" /></a></p>
<p>As you see it supports:</p>
<ul>
<li>calling the .exe/.bat from every folder</li>
<li>passing all arguments from the caller</li>
<li>returning the return code to the caller</li>
</ul>
<p>If you want to compile it, follow the instructions in the _README.txt file in the attachment: <a href="http://kettle.bleuel.com/__oneclick_uploads/2011/12/exebatlauncher.zip" title="ExeBatLauncher.zip">ExeBatLauncher.zip</a></p>
<p>I look forward to your experiences!</p>
]]></content:encoded>
			<wfw:commentRss>http://kettle.bleuel.com/2011/12/14/exebatlauncher-calling-bat-files-by-exe-executables-eg-having-a-spoonexe/feed/</wfw:commentRss>
		</item>
		<item>
		<title>First German Pentaho Customer Meeting in Munich</title>
		<link>http://kettle.bleuel.com/2011/12/07/first-german-pentaho-customer-meeting-in-munich/</link>
		<comments>http://kettle.bleuel.com/2011/12/07/first-german-pentaho-customer-meeting-in-munich/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 23:07:58 +0000</pubDate>
		<dc:creator>Jens Bleuel</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://kettle.bleuel.com/2011/12/07/first-german-pentaho-customer-meeting-in-munich/</guid>
		<description><![CDATA[
Today was our first German Customer Meeting that Bruno initiated and it took place at one of our customer locations @Wirecard AG (many thanks!).
A nice (and squeezed…) agenda and around 20 attendees discussed the presented customer solutions, their experiences and what Pentaho can do better, but also: what really works well and this is a [...]]]></description>
			<content:encoded><![CDATA[<p><!--[if gte mso 9]><xml>  <o:OfficeDocumentSettings>   <o:RelyOnVML/>   <o:AllowPNG/>  </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:TrackMoves/>   <w:TrackFormatting/>   <w:HyphenationZone>21</w:HyphenationZone>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:DoNotPromoteQF/>   <w:LidThemeOther>DE</w:LidThemeOther>   <w:LidThemeAsian>X-NONE</w:LidThemeAsian>   <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>    <w:SplitPgBreakAndParaMark/>    <w:EnableOpenTypeKerning/>    <w:DontFlipMirrorIndents/>    <w:OverrideTableStyleHps/>   </w:Compatibility>   <m:mathPr>    <m:mathFont m:val="Cambria Math"/>    <m:brkBin m:val="before"/>    <m:brkBinSub m:val="--"/>    <m:smallFrac m:val="off"/>    <m:dispDef/>    <m:lMargin m:val="0"/>    <m:rMargin m:val="0"/>    <m:defJc m:val="centerGroup"/>    <m:wrapIndent m:val="1440"/>    <m:intLim m:val="subSup"/>    <m:naryLim m:val="undOvr"/>   </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267">   <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal"/>   <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>   <w:LsdException Locked="false" Priority="39" Name="toc 1"/>   <w:LsdException Locked="false" Priority="39" Name="toc 2"/>   <w:LsdException Locked="false" Priority="39" Name="toc 3"/>   <w:LsdException Locked="false" Priority="39" Name="toc 4"/>   <w:LsdException Locked="false" Priority="39" Name="toc 5"/>   <w:LsdException Locked="false" Priority="39" Name="toc 6"/>   <w:LsdException Locked="false" Priority="39" Name="toc 7"/>   <w:LsdException Locked="false" Priority="39" Name="toc 8"/>   <w:LsdException Locked="false" Priority="39" Name="toc 9"/>   <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>   <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title"/>   <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>   <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>   <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong"/>   <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>   <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid"/>   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>   <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>   <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>   <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote"/>   <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>   <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>   <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>   <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>   <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>   <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>   <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>   <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>  </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]></p>
<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} </style>
<p> <![endif]--></p>
<p class="MsoNormal"><span lang="EN-US">Today was our first German Customer Meeting that Bruno initiated and it took place at one of our customer locations @Wirecard AG (many thanks!).</span></p>
<p class="MsoNormal"><span lang="EN-US">A nice (and squeezed…) agenda and around 20 attendees discussed the presented customer solutions, their experiences and what Pentaho can do better, but also: what really works well and this is a lot and proven in medium and large deployments. Here are some examples in addition to &#8220;normal&#8221; BI:</span></p>
<ul>
<li><span lang="EN-US">Processing 500 thousand transactions per day (credit card and alternative payment methods)</span><span lang="EN-US"></span></li>
<li><span lang="EN-US">Merchant deposit monitoring including fraud detection of merchants (!)</span><span lang="EN-US"></span></li>
<li><span lang="EN-US">Application and data row level role based security in a m</span><span lang="EN-US">ulti-tenant solution using special role management via a Mondrian plug-in</span><span lang="EN-US"></span></li>
<li><span lang="EN-US">Highly performant solutions with load balancing servers and high availability (99.95%), one of them with a failover with two complete separate locations</span><span lang="EN-US"></span></li>
<li><span lang="EN-US">Pentaho integrates very well in existing IT infrastructures</span><span lang="EN-US"></span></li>
<li><span lang="EN-US">Event triggered ETL by an ESB (Enterprise Service Bus) / SOA architecture: JBoss ESB triggers PDI Jobs for application integration (JMS, File, HTTP, SMTP, FTP etc.). At this time via the Kettle API but it is planned to use Kettle Web-Services</span><span lang="EN-US"></span></li>
<li><span lang="EN-US">PDI is used as a data source for reporting, just a nice EAI use case</span></li>
<li>Pentaho is integrated into JBoss EAP (the customer version of JBoss AS, everything in this platform is secured by default)</li>
<li>3 of the attendees are using Infobright</li>
<li>Report bursting was accomplished by 3 different methods: 1) using xActions, 2) using <span lang="EN-US">ant scripts, 3) using Kettle</span></li>
</ul>
<p class="MsoNormal"><span lang="EN-US">Major discussed improvements: </span></p>
<ul>
<li><span lang="EN-US">More integrated and consistent security throughout all products (it’s possible but special requirements are tricky to implement)</span><span lang="EN-US"></span></li>
<li><span lang="EN-US">Report bursting with scheduling should be more standardized and </span><span lang="EN-US">user friendly</span><span lang="EN-US"> </span></li>
<li><span lang="EN-US">Since Pentaho can be extended and embedded very well via extension APIs, the upgrade to next versions should be more seamless by special dedicated documentation for OEM and stable API extension points [this will be addressed in the road map by the SDK]</span></li>
<li><span lang="EN-US">Upgrade process: upgrade tools would be a huge benefit for supporting it, also when some releases were not installed (e.g. jump from 3.x to 4.1 instead of 4.0)</span></li>
</ul>
<p class="MsoNormal"><span lang="EN-US">As part of the Pentaho Product Management team, I presented the product <a href="http://wiki.pentaho.com/display/PMOPEN/Product+Management" target="_blank">road map</a> and gave some quick insights in the Kettle <a href="http://www.ibridge.be/?p=206" target="_blank">Star Modeler</a>.</span></p>
<p class="MsoNormal">I look forward to the next event of this type for <span lang="EN-US">knowledge sharing between Pentaho customers and users. We found already one volunteer (Guy) to take it from here <img src='http://kettle.bleuel.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
</span></p>
<p class="MsoNormal"><span lang="EN-US"> BTW: This event was only in German language (at this time!) and thanks again to Wirecard, Rob &amp; Bruno for organizing this and to the attendees for their presentations and active participation!</span></p>
<p class="MsoNormal">Here are some impressions&#8230;.</p>
<p class="MsoNormal"> <a href="http://kettle.bleuel.com/__oneclick_uploads/2011/12/2011-12-06-munic-a.jpg" title="2011-12-06 Munic A"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/12/2011-12-06-munic-a.thumbnail.jpg" alt="2011-12-06 Munic A" />  </a><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/12/2011-12-06-munic-b.jpg" title="2011-12-06 Munic B"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/12/2011-12-06-munic-b.thumbnail.jpg" alt="2011-12-06 Munic B" />  </a><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/12/2011-12-06-munic-c.jpg" title="2011-12-06 Munic C"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/12/2011-12-06-munic-c.thumbnail.jpg" alt="2011-12-06 Munic C" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://kettle.bleuel.com/2011/12/07/first-german-pentaho-customer-meeting-in-munich/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The new XML Input Stream (StAX) step in PDI 4.2</title>
		<link>http://kettle.bleuel.com/2011/06/24/the-new-xml-input-stream-stax-step-in-pdi-42/</link>
		<comments>http://kettle.bleuel.com/2011/06/24/the-new-xml-input-stream-stax-step-in-pdi-42/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 22:25:16 +0000</pubDate>
		<dc:creator>Jens Bleuel</dc:creator>
		
		<category><![CDATA[Kettle (PDI)]]></category>

		<guid isPermaLink="false">http://kettle.bleuel.com/2011/06/24/the-new-xml-input-stream-stax-step-in-pdi-42/</guid>
		<description><![CDATA[This step provides the ability to read data from any type of XML file using the StAX parser. The existing Get Data from XML  step is easier to use but uses DOM parsers that need  in memory  processing and even the purging of parts of the file is not  sufficient  [...]]]></description>
			<content:encoded><![CDATA[<p>This step provides the ability to read data from any type of XML file using the StAX parser. The existing <a href="http://wiki.pentaho.com/display/EAI/Get+Data+From+XML" title="Get Data From XML">Get Data from XML</a>  step is easier to use but uses DOM parsers that need  in memory  processing and even the purging of parts of the file is not  sufficient  when these parts are very big.</p>
<p><strong>The XML Input Stream (StAX) step uses a completely different  approach to solve use cases with very big and complex data stuctures and  the need for very fast data loads</strong>: Since Kettle has so many own  steps to process data in different ways, the processing logic has been  moved more into the transformation and the step itself provides the raw  XML data stream together with additional and helpful processing  information.</p>
<p>Since the processing logic of some XML files can sometimes be very  tricky, a good knowledge of the existing Kettle steps is recommended to  use this step. Please see the different samples at the Kettle Wiki  for illustrations of the usage.</p>
<blockquote><p>Note: In almost all use cases, a Set/Reset functionality was needed.  At this time it can be accomplished by the Modified Java Script Value  step or the User Defined Java Class step where the latter one is  recommended and much more faster. An own Kettle step with Set/Reset  functionality is one the road map to solve these and other similar use  cases, see <a href="http://jira.pentaho.com/browse/PDI-6389" class="external-link" rel="nofollow">PDI-6389</a> for more details.</p></blockquote>
<p>Choose this step, whenever you have limitations with other steps or  when you are in need of parsing XML with the following conditions:</p>
<ul>
<li>Very fast and independend of the memory regardless of the file size (GBs and more are possible due to the streaming approach)</li>
<li>Very flexible reading different parts of the XML file in different ways (and avoid parsing the file many times)</li>
</ul>
<p>Here is an example of parsing the following XML file with 2 main sample data blocks (Analyzer Lists &amp; Products):</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks.png" title="XML Input Stream (StAX) Test 2 - XML"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks.png" title="XML Input Stream (StAX) Test 2 - XML" alt="XML Input Stream (StAX) Test 2 - XML" width="700" /></a></p>
<p>A preview on the step may look like this (depending on the selected fields):</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks-preview.png" title="XML Input Stream (StAX) Test 2 - Preview"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks-preview.png" title="XML Input Stream (StAX) Test 2 - Preview" alt="XML Input Stream (StAX) Test 2 - Preview" width="700" /></a></p>
<p>You see you really get almost the original streaming information with  Elements and Attributes from the XML file together with helpful other  fields like the element level.</p>
<p>Since the processing logic of some XML files can sometimes be very  tricky, a good knowledge of the existing Kettle steps is recommended to  use this step. Please see the different samples of this step for  illustrations of the usage.</p>
<p>The transformation looks like this:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks-transformation.png" title="XML Input Stream (StAX) Test 2 - Transformation"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks-transformation.png" title="XML Input Stream (StAX) Test 2 - Transformation" alt="XML Input Stream (StAX) Test 2 - Transformation" width="700" /></a></p>
<p>The end result for the <strong>Analyzer List</strong> block:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks-analyzerlists.png" title="XML Input Stream (StAX) Test 2 - Analyzer List"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks-analyzerlists.png" alt="XML Input Stream (StAX) Test 2 - Analyzer List" /></a></p>
<p>The end result for the <strong>Products</strong> block (splitted for example into two separate data streams for the end system):</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks-both-products-and-attributes.png" title="XML Input Stream (StAX) Test 2 - Both Products And Attributes"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks-both-products-and-attributes.png" alt="XML Input Stream (StAX) Test 2 - Both Products And Attributes" /></a></p>
<p>And there are a lot more options in the step to help to solve your needs:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks-step-options.png" title="XML Input Stream (StAX) Test 2 - Step Options"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/06/xml-input-stream-stax-test-2-element-blocks-step-options.png" title="XML Input Stream (StAX) Test 2 - Step Options" alt="XML Input Stream (StAX) Test 2 - Step Options" width="700" /></a></p>
<p>More details about this step can be found in the <a href="http://wiki.pentaho.com/display/EAI/XML+Input+Stream+%28StAX%29" target="_blank">XML Input Stream (StAX)</a> documentation.</p>
<p>And for more details on the features for the upcoming PDI 4.2, please have a look at <a href="http://www.ibridge.be/?p=203" target="_blank">Matt&#8217;s blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://kettle.bleuel.com/2011/06/24/the-new-xml-input-stream-stax-step-in-pdi-42/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pentaho BI 4 Delivers Power to the User</title>
		<link>http://kettle.bleuel.com/2011/06/22/pentaho-bi-4-delivers-power-to-the-user/</link>
		<comments>http://kettle.bleuel.com/2011/06/22/pentaho-bi-4-delivers-power-to-the-user/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 15:38:26 +0000</pubDate>
		<dc:creator>Jens Bleuel</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://kettle.bleuel.com/2011/06/22/pentaho-bi-4-delivers-power-to-the-user/</guid>
		<description><![CDATA[New interactive reporting and enhanced visualizations enable fast and affordable user-driven BI
More details can be found over here: http://www.pentaho.com/power-to-the-user
Watch the video !
]]></description>
			<content:encoded><![CDATA[<p><strong>New interactive reporting and enhanced visualizations enable fast and affordable user-driven BI</strong></p>
<p>More details can be found over here: <a href="http://www.pentaho.com/power-to-the-user" target="_blank">http://www.pentaho.com/power-to-the-user</a></p>
<p>Watch the video !</p>
]]></content:encoded>
			<wfw:commentRss>http://kettle.bleuel.com/2011/06/22/pentaho-bi-4-delivers-power-to-the-user/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Security Considerations and Encryption with Kettle</title>
		<link>http://kettle.bleuel.com/2011/06/07/security-considerations-and-encryption-with-kettle/</link>
		<comments>http://kettle.bleuel.com/2011/06/07/security-considerations-and-encryption-with-kettle/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 22:37:17 +0000</pubDate>
		<dc:creator>Jens Bleuel</dc:creator>
		
		<category><![CDATA[Kettle (PDI)]]></category>

		<guid isPermaLink="false">http://kettle.bleuel.com/2011/06/07/security-considerations-and-encryption-with-kettle/</guid>
		<description><![CDATA[Kettle is used more and more in enterprises where the standard  obfuscation of credentials is not sufficient enough. There are  requirements to use strong encryption methods and even to store internal  data encrypted (covered in PDI-6168 and PDI-6170). The above use cases  inspired me to create some simple transformations to test [...]]]></description>
			<content:encoded><![CDATA[<p>Kettle is used more and more in enterprises where the standard  obfuscation of credentials is not sufficient enough. There are  requirements to use strong encryption methods and even to store internal  data encrypted (covered in <a href="http://jira.pentaho.com/browse/PDI-6168" target="_blank">PDI-6168</a> and <a href="http://jira.pentaho.com/browse/PDI-6170" target="_blank">PDI-6170</a>). The above use cases  inspired me to create some simple transformations to test and play  around with encryption.</p>
<p>The transformations and some test data are <a href="http://wiki.pentaho.com/download/attachments/22184852/cryptography.zip" target="_blank">attached </a>to the <a href="http://wiki.pentaho.com/display/EAI/Kettle+Exchange" target="_blank">Kettle Exchange</a> page <a href="http://wiki.pentaho.com/display/EAI/Security+Considerations+and+Encryption+with+Kettle" target="_blank">Security Considerations and Encryption with Kettle</a>.</p>
<p>Let&#8217;s start with creating a key by the <em>cryptographyCreateSecretKey </em>transformation:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/06/cryptographycreatesecretkey.png" title="cryptographyCreateSecretKey"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/06/cryptographycreatesecretkey.png" alt="cryptographyCreateSecretKey" /></a></p>
<p>The <em>generateKey</em> step uses the <em>User Defined Java Class</em> step and implements sample code for AES, the  Advanced Encryption Standard is a symmetric-key encryption standard, see also <a href="http://java.sun.com/developer/technicalArticles/Security/AES/AES_v1.html" class="external-link" rel="nofollow">http://java.sun.com/developer/technicalArticles/Security/AES/AES_v1.html</a>. The key serialization to file is a little trick to obfuscate the key. Other methods can be included instead of the clear text file output.</p>
<p>Now that we have the key file, we can encrypt our secret data:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/06/cryptographysampleunencryptedinput.png" title="cryptographySampleUnencryptedInput"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/06/cryptographysampleunencryptedinput.png" alt="cryptographySampleUnencryptedInput" /></a></p>
<p>With the transformation <em>cryptographyEncrypt</em>:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/06/cryptographyencrypt.png" title="cryptographyEncrypt"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/06/cryptographyencrypt.png" alt="cryptographyEncrypt" /></a></p>
<p>We keep it simple and assume the key is available in each row (accomplished by the Join Key).</p>
<p>The encrypted result looks like this:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/06/cryptographysampleencrypted.png" title="cryptographySampleEncrypted"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/06/cryptographysampleencrypted.png" alt="cryptographySampleEncrypted" /></a></p>
<p>Let&#8217;s decrypt it with the transformation <em>cryptographyDecrypt</em>:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/06/cryptographydecrypt.png" title="cryptographyDecrypt"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/06/cryptographydecrypt.png" alt="cryptographyDecrypt" /></a></p>
<p>The result is correct but only when the key file is the same and the encrypted data was not modified. You can test it yourself and see what error messages come up or the resulting files look like when the key file or data was modified.</p>
<p>Instead of storing the decrypted data to a file there are a lof of other options, e.g.:</p>
<ul>
<li> use the decrypted data as credentials in subsequent steps or transformations</li>
<li> put the decrypted data into variables visible in a limited scope (e.g.  parent job) and use them as credentials for databases, repository etc.  (see <a href="http://jira.pentaho.com/browse/PDI-6168" class="external-link" rel="nofollow">PDI-6168</a>)</li>
<li> and many more options</li>
</ul>
<p>We may consider:</p>
<ul>
<li> Symmetric-key algorithm vs. asymmetric key algorithms (public-key cryptography)</li>
<li> Diffie-Hellman key exchange is a specific method of exchanging keys.</li>
<li> Ensure integrity e.g. by hash-codes</li>
<li> Key file handling could be optimized in different ways.</li>
<li> Please keep in mind that unencrypted data is in RAM (see <a href="http://jira.pentaho.com/browse/PDI-6170" target="_blank">PDI-6170</a> for a circumvention to prevent heap dumps)</li>
<li> Beneath the binary or indexed storage type, an encrypted storage type may be possible in Kettle core.</li>
</ul>
<p>In the end: Don&#8217;t lose your key!</p>
<p class="wysiwyg-macro">
<blockquote><p><strong>Update since Kettle 4.2:</strong> There are two steps in the experimental section: Secret key generator, Symmetric Cryptography that cover this use case.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kettle.bleuel.com/2011/06/07/security-considerations-and-encryption-with-kettle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>iPhone Tracking: How to read the consolidated.db with Kettle</title>
		<link>http://kettle.bleuel.com/2011/04/26/iphone-tracking-how-to-read-the-consolidateddb-with-kettle/</link>
		<comments>http://kettle.bleuel.com/2011/04/26/iphone-tracking-how-to-read-the-consolidateddb-with-kettle/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 22:15:51 +0000</pubDate>
		<dc:creator>Jens Bleuel</dc:creator>
		
		<category><![CDATA[Kettle (PDI)]]></category>

		<guid isPermaLink="false">http://kettle.bleuel.com/2011/04/26/iphone-tracking-how-to-read-the-consolidateddb-with-kettle/</guid>
		<description><![CDATA[I will not discuss about the buzz about the iPhone tracking - all that needs to be discussed is already out. That iPhone is storing locations in the consolidated.db was known a long time ago, but now we got a prove of concept by Pete Warden and Alasdair Allan and this inspired me to dig [...]]]></description>
			<content:encoded><![CDATA[<p>I will not discuss about the buzz about the iPhone tracking - all that needs to be discussed is already out. That iPhone is storing locations in the consolidated.db was known a long time ago, but now we got a <a href="http://petewarden.github.com/iPhoneTracker/" target="_blank">prove of concept by Pete Warden and Alasdair Allan</a> and this inspired me to dig into this a bit more.</p>
<p>After an amazing short time of less than one hour I made it possible to read in my own iPhone consolidated.db with Kettle. [It takes more time to write about this&#8230; and the other real hard thing was to locate this file in my file system.] When we can read this file with Kettle we are open and can look up any additional data, filter by any criteria, store this in another database, use the Pentaho BI Suite to create maps and anything else that can a human being imagine. Just have a look at the <a href="http://sandbox.pentaho.com/" target="_blank">Pentaho Sandbox</a> or more general to the <a href="http://www.pentaho.com/" target="_blank">Pentaho</a> site.</p>
<p>Here are my findings and steps to reproduce:</p>
<p><strong>1) Locate the consolidated.db in your filesystem.</strong></p>
<p>This is a little bit tricky, since the filename is mapped to an ID. I found it very easy by just searching for the string &#8220;CellLocation&#8221; in the iTunes backup folder, described over <a href="http://andykn.blogspot.com/2011/04/iphone-tracker.html" target="_blank">here</a> for Windows:</p>
<p><em>findstr /M CellLocation C:\Users\[Username]\AppData\Roaming\Apple Computer\MobileSync\Backup\[latest backup folder]\*.*</em></p>
<p>I copied the file <em>4096c9ec676f2847dc283405900e284a7c815836 (this was my sample filename, yours will be most likely different) </em>to <em>consolidated.db</em> to another folder.</p>
<p>A more robust and flexible solution is to read in and analyze the <a href="http://code.google.com/p/iphonebackupbrowser/wiki/MbdbMbdxFormat" target="_blank">Manifest.mbdb / Manifest.mbdx</a> as described over <a href="http://stackoverflow.com/questions/3085153/how-to-parse-the-manifest-mbdb-file-in-an-ios-4-0-itunes-backup" target="_blank">here in a Python script</a>. It shouldn&#8217;t be too hard to port this to Java or JavaScript for a flexible Kettle solution.</p>
<p><strong>2) Read in the </strong><strong>consolidated.db</strong><strong> with</strong><strong> Kettle</strong></p>
<p>Create a transformation with a SQLite connection type. The database name is the location of the filename as shown below as a sample:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/04/consolidated_db.png" title="SQLite connection type for consolidated.db"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/04/consolidated_db.thumbnail.png" alt="SQLite connection type for consolidated.db" /></a></p>
<p>Let&#8217;s create a simple transformation (<a href="http://bleuel.com/blogdata/consolidated_db.ktr" target="_blank">attached</a>): Read in the Cell data, convert the Mac Absolute Time to a Java time and just group on a daily basis for simplification:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/04/consolidated_db_trans.png" title="Transformation for consolidated.db"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/04/consolidated_db_trans.thumbnail.png" alt="Transformation for consolidated.db" /></a></p>
<p>Let&#8217;s do a preview and browse the data a bit. Well I&#8217;m located in Mainz, known to be exactly at Latitude 50. So every other data is of interest and here comes a sample:</p>
<p><a href="http://kettle.bleuel.com/__oneclick_uploads/2011/04/consolidated_db_sample.png" title="Sample Result for consolidated.db"><img src="http://kettle.bleuel.com/__oneclick_uploads/2011/04/consolidated_db_sample.png" alt="Sample Result for consolidated.db" /></a></p>
<p>Where I have been there? My forensic research on my own calendar found that I have been at the Pentaho <a href="http://blog.pentaho.com/2010/09/" target="_blank">EMEA Partner Summit</a> &amp; <a href="http://wiki.pentaho.com/display/COM/Pentaho+Community+Gathering+-+Portugal+2010" target="_blank">Community Event in Lisbon</a>&#8230;. or was it only my iPhone?</p>
]]></content:encoded>
			<wfw:commentRss>http://kettle.bleuel.com/2011/04/26/iphone-tracking-how-to-read-the-consolidateddb-with-kettle/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

