<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Data Warehouse Junkie</title>
	<atom:link href="http://dwjunkie.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dwjunkie.wordpress.com</link>
	<description>Business Intelligence on Microsoft platform</description>
	<lastBuildDate>Tue, 14 May 2013 15:45:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='dwjunkie.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Data Warehouse Junkie</title>
		<link>http://dwjunkie.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dwjunkie.wordpress.com/osd.xml" title="Data Warehouse Junkie" />
	<atom:link rel='hub' href='http://dwjunkie.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Rock your data with SQL Server 2012 Parallel Data Warehouse (PDW) &#8211; What&#8217;s new?</title>
		<link>http://dwjunkie.wordpress.com/2013/05/09/rock-your-data-with-sql-server-2012-parallel-data-warehouse-pdw-whats-new/</link>
		<comments>http://dwjunkie.wordpress.com/2013/05/09/rock-your-data-with-sql-server-2012-parallel-data-warehouse-pdw-whats-new/#comments</comments>
		<pubDate>Thu, 09 May 2013 13:25:08 +0000</pubDate>
		<dc:creator>dwjunkie</dc:creator>
				<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Data Warehouse]]></category>
		<category><![CDATA[MPP]]></category>
		<category><![CDATA[Parallel Data Warehouse]]></category>
		<category><![CDATA[PDW]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">https://dwjunkie.wordpress.com/?p=411</guid>
		<description><![CDATA[As I already stated out in my first post I want share some insights about the new SQL Server 2012 &#8230;<p><a href="http://dwjunkie.wordpress.com/2013/05/09/rock-your-data-with-sql-server-2012-parallel-data-warehouse-pdw-whats-new/">Continue reading &#187;</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=411&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>As I already stated out in my first post I want share some insights about the new SQL Server 2012 version of Parallel Data Warehouse. In this post I will talk about some new features as well as architecture changes.</p>
<h3>Architecture Update</h3>
<p>The SQL Server 2012 version of PDW introduces some major architecture changes:</p>
<ul>
<li>As show in the picture below the Landing Zone and the Backup node have been removed from the appliance and there good reasons for. The standard sizing of these component didn’t met most of the customer requirements and it was very hard to find a configuration that meets 80% of PDW customers. So decision has been made to remove these components and customers have now more flexibilities to size the ETL and the Backup node to their needs.</li>
</ul>
<p><a href="http://dwjunkie.files.wordpress.com/2013/05/image.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/05/image_thumb.png?w=530&#038;h=304" width="530" height="304"></a></p>
<ul>
<li>Expensive storage components have been replace by an economical high density Direct Attached Storage
<li><strong>Virtualization of the Software Components</strong> based on Windows Server 2012 and Hyper-V
<li><strong>Modular Design and Smarter Scale Out:</strong> SQL Server 2012 PDW has reshaped the very hardware specifications required of an appliance through innovations from the software to deliver optimal value to customers. The new version introduces a new modular design, as show in the following picture:</li>
</ul>
<p><a href="http://dwjunkie.files.wordpress.com/2013/05/image16.png"><img title="image" style="background-image:none;float:none;padding-top:0;padding-left:0;margin:0 auto;display:block;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/05/image16_thumb.png?w=507&#038;h=392" width="507" height="392"></a></p>
<p>The smallest PDW appliance consists of a Base Scale Unit (with a Passive Scale Unit for HA) and can be extended by a number of Capacity Units. If you reach the physical space limit of the rack you can add up to 6 more racks. </p>
<p>Depending of the vendor the units are shipped differently: HP offers a Base Scale Unit with 2 compute nodes and every Capacity Unit is also shipped with 2 compute nodes (left side of the picture). Dell offers the Base Scale Unit and the Capacity Unit with 3 compute nodes each (right side of the picture).</p>
<p>If we have a look at the capacity the smallest PDW appliance from HP (Quarter Rack with only the Base Scale Unit) offers a capacity of 53 – 227 TB (depending on the compression rates) and a raw disk space of 45 TB (with 3 TB disks). The Quarter Rack of DELL provides a capacity of 79 – 3470 TB (depending on the compression rates) and a raw disk space of 68 TB (with 3 TB disks).</p>
<ul>
<li><strong>Further Scale:</strong> Based on the new modular hardware design and a hardware refresh PDW offers now a scale out capacity up to 5 Petabytes. </li>
</ul>
<h3>Software Architecture Overview</h3>
<p>The new version of PDW provides also some major software updates. As the product name already states PDW is now running on SQL Server 2012. The operating system on all hosts is Windows Server 2012 Standard edition. All fabric and workload activity happens in Hyper-V virtual machines which also run on Windows Server 2012 Standard edition. A PDW Agent runs on all hosts and all VMs and collects appliance health data on fabric and workload.</p>
<p><a href="http://dwjunkie.files.wordpress.com/2013/05/image1.png"><img title="image" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/05/image_thumb1.png?w=279&#038;h=333" width="279" height="333"></a></p>
<p>A special PDW version of SQL Server 2012 Enterprise Edition is used on the Control node and on all Compute nodes to provide high scale database capabilities.</p>
<h3>New Features</h3>
<p>Additionally to the new hardware and software architecture I want to highlight some more very interesting features for customers:</p>
<ul>
<li><strong>Columnar Storage:</strong> Microsoft continues the rollout of xVelocity and provides with SQL Server 2012 PDW a new primary storage type for databases. Customers can now choose between a row store and a new updateable version of the xVelocity memory optimized columnstore as table storage format. This means that we can define a writable Clustered Columnstore Index (Updates and bulk load are fully supported) at a table so that the whole table is stored into memory and we benefit of a much higher compression by the column oriented storage format.
<li><strong>Visual Studio 2012 Integration:</strong> As you probably know the tool used for database administration and database development in PDW Version 1 was Nexus. With the new version of PDW we have now full support for <a href="http://www.microsoft.com/en-us/download/details.aspx?id=36843" target="_blank">SQL Server Data Tools for Visual Studio 2012</a>.</li>
</ul>
<p>&nbsp;<a href="http://dwjunkie.files.wordpress.com/2013/05/image2.png"><img title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;padding-top:0;padding-left:0;border-left:0;display:inline;padding-right:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/05/image_thumb2.png?w=197&#038;h=244" width="197" height="244"></a>&nbsp;&nbsp; <a href="http://dwjunkie.files.wordpress.com/2013/05/image3.png"><img title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;padding-top:0;padding-left:0;margin:0;border-left:0;display:inline;padding-right:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/05/image_thumb3.png?w=244&#038;h=231" width="244" height="231"></a>&nbsp;</p>
<p>Also the project types for SSIS, SSRS &amp; SSAS are fully supported with Visual Studio 2012.</p>
<ul>
<li><strong>Monitoring Enhancements:</strong> The whole monitoring of sessions, queries, loads, appliance health status and performance information has been completely redesign. Microsoft did a very good job here and the design looks like the Azure Portal. This means also for customers that monitoring and operations will look like the same On Premises as well as in the Cloud on Windows Azure. The following screenshot gives an impression of the new web user interface:</li>
</ul>
<p><a href="http://dwjunkie.files.wordpress.com/2013/05/image4.png"><img title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;padding-top:0;padding-left:0;border-left:0;display:inline;padding-right:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/05/image_thumb4.png?w=530&#038;h=289" width="530" height="289"></a>&nbsp;</p>
<ul>
<li><strong>Polybase &amp; Hadoop Integration:</strong> Today almost every big database vendor also provide a “Big Data” solutions based on Hadoop. Whether it’s a vendor specific distribution like IBM’s BigInsights solution, which is based on Cloudera or Microsoft&#8217;s specific implementation of Hortonworks Hadoop distribution called HDInsight or a full appliance which comes pre-installed with Hadoop. No matter which Hadoop platform you choose you still have the challenge of integration. Some type of data and analytics will happen on Hadoop (like text, log or sensor analysis) but we will still use databases for BI &amp; Reporting. </li>
<p>While this might be something you have decided to do, you realize that there is a big learning curve when your IT department needs to re-orient themselves around HDFS, MapReduce, Hive, Hbase, etc. rather than T-SQL and a standard RDBSMS design. It will require a significant re-training around Hadoop and the ecosystem as well as a major effort to integrate the Hadoop implementation with the data warehouse.
<p>In order to meet the requirements of a modern data platform, it must provide insights to your end users without having to acquire another tool from a third party or another expensive appliance offering to purchase.
<p>The unfortunate reality is that no one vendor can deliver on all the options you need at a cost that you want to pay. They either have a data warehouse solution but no BI or provide BI but no data warehousing. Some vendors provide a Big Data solution but is disconnected with their data warehouse solution. Finally, some vendors might have a solution for each workload and will happily charge you millions of euros or dollars for them all.
<p><a href="http://dwjunkie.files.wordpress.com/2013/05/image5.png"><img title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:left;padding-top:0;padding-left:0;margin:0 10px 0 0;border-left:0;display:inline;padding-right:0;" border="0" alt="image" align="left" src="http://dwjunkie.files.wordpress.com/2013/05/image_thumb5.png?w=215&#038;h=244" width="215" height="244"></a>
<p>Microsoft goes a different way and brings with SQL Server 2012 PDW an integrated query layer called “<a href="http://www.microsoft.com/en-us/sqlserver/solutions-technologies/data-warehousing/polybase.aspx" target="_blank">Polybase</a>” which enables queries across Hadoop and SQL Server. Data structures stored in Hadoop are described by tables in PDW and customers can consume these data by standard T-SQL and can also join those tables with normal relational ones. So to end users that only consume this data it’s totally transparent where the data comes from and IT departments can use their normal database skillset to work with Hadoop. How does those kind of tables look like?
<p><a href="http://dwjunkie.files.wordpress.com/2013/05/image6.png"><img title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;padding-top:0;padding-left:0;border-left:0;display:inline;padding-right:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/05/image_thumb6.png?w=512&#038;h=129" width="512" height="129"></a>
<p>Now we can easily query and join this table.
<p><a href="http://dwjunkie.files.wordpress.com/2013/05/image7.png"><img title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/05/image_thumb7.png?w=413&#038;h=226" width="413" height="226"></a></p>
</ul>
<p><a href="http://www.microsoft.com/en-us/sqlserver/solutions-technologies/data-warehousing/polybase.aspx" target="_blank">Polybase</a> is developed by the PDW team together with the <a href="http://gsl.azurewebsites.net/Home.aspx" target="_blank">Gray System Lab</a> and its famous team lead <a href="http://gsl.azurewebsites.net/People/dewitt.aspx" target="_blank">David DeWitt</a>. More detailed information can be found on the project page: <a title="http://gsl.azurewebsites.net/Projects/Polybase.aspx" href="http://gsl.azurewebsites.net/Projects/Polybase.aspx">http://gsl.azurewebsites.net/Projects/Polybase.aspx</a> or in the video of the PASS 2012 conference <a title="http://www.sqlpass.org/summit/2012/DavidDewittSpotlight.aspx" href="http://www.sqlpass.org/summit/2012/DavidDewittSpotlight.aspx">http://www.sqlpass.org/summit/2012/DavidDewittSpotlight.aspx</a></p>
<h3>Summary</h3>
<p>As you can see from this post Microsoft did very heavy investments in its modern Big Data platform and gives customers the possibility to invest build high scale solutions on SQL Server 2012 PDW as well as on HDInsight for Hadoop based workloads. With Polybase customers get a fully integrated Hadoop query engine into the Data Warehouse Layer that can easily consumed with T-SQL knowledge. </p>
<p>The new architecture and the modular design of the appliance gives customers the possibility to start with small investments and scale very cost efficient on demand. </p>
<p>In my next post I will talk in more detail about a POC I did with the new version and the results and lessons learned. </p>
<p>Source: Microsoft slide decks of SQL Server 2012 Parallel Data Warehouse</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dwjunkie.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dwjunkie.wordpress.com/411/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=411&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dwjunkie.wordpress.com/2013/05/09/rock-your-data-with-sql-server-2012-parallel-data-warehouse-pdw-whats-new/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f689d3738d06abf2088d70dbf03b69f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dwjunkie</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/05/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/05/image16_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/05/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/05/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/05/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/05/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/05/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/05/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/05/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Rock your data with SQL Server 2012 Parallel Data Warehouse (PDW)</title>
		<link>http://dwjunkie.wordpress.com/2013/04/26/rock-your-data-with-sql-server-2012-parallel-data-warehouse-pdw/</link>
		<comments>http://dwjunkie.wordpress.com/2013/04/26/rock-your-data-with-sql-server-2012-parallel-data-warehouse-pdw/#comments</comments>
		<pubDate>Fri, 26 Apr 2013 13:24:36 +0000</pubDate>
		<dc:creator>dwjunkie</dc:creator>
				<category><![CDATA[Big Data]]></category>
		<category><![CDATA[MPP]]></category>
		<category><![CDATA[Parallel Data Warehouse]]></category>
		<category><![CDATA[PDW]]></category>

		<guid isPermaLink="false">https://dwjunkie.wordpress.com/?p=385</guid>
		<description><![CDATA[I had the chance to do a customer POC on a very early version of SQL Server 2012 Parallel Data &#8230;<p><a href="http://dwjunkie.wordpress.com/2013/04/26/rock-your-data-with-sql-server-2012-parallel-data-warehouse-pdw/">Continue reading &#187;</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=385&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.worldwithlove.org/wp-content/uploads/2011/09/RocktheGreen1.jpg"><img title="RocktheGreen1" alt="" src="http://www.worldwithlove.org/wp-content/uploads/2011/09/RocktheGreen1.jpg" width="534" height="356"></a></p>
<p>I had the chance to do a customer POC on a very early version of SQL Server 2012 Parallel Data Warehouse and like to share the new features for PDW as well as the impressive results we got. The good thing with this POC is, that we did the same POC also on the SQL Server 2008R2 version of PDW so we have a direct comparison on the results. </p>
<p>If you are not familiar with Parallel Data Warehouse I can suggest my further post list about PDW to get a step into it: <a title="http://dwjunkie.wordpress.com/pdw/" href="http://dwjunkie.wordpress.com/pdw/">http://dwjunkie.wordpress.com/pdw/</a></p>
<p>I will split this post into several topics that I will explain in more details in my next posts:</p>
<ul>
<li>What’s new in SQL Server 2012 PDW?
<li>Scope &amp; Customer Expectations of the POC
<li>SQL Server 2008 R2 PDW vs. SQL Server 2012 PDW
<li>Performance Results and lessons learned (SSIS vs. TSQL, Querying, Cube Processing, Compression, Limitations, etc.)</li>
</ul>
<p>Source: <a title="http://www.worldwithlove.org/blog/lets-rock-the-green-music-festival/" href="http://www.worldwithlove.org/blog/lets-rock-the-green-music-festival/">http://www.worldwithlove.org/blog/lets-rock-the-green-music-festival/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dwjunkie.wordpress.com/385/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dwjunkie.wordpress.com/385/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=385&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dwjunkie.wordpress.com/2013/04/26/rock-your-data-with-sql-server-2012-parallel-data-warehouse-pdw/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f689d3738d06abf2088d70dbf03b69f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dwjunkie</media:title>
		</media:content>

		<media:content url="http://www.worldwithlove.org/wp-content/uploads/2011/09/RocktheGreen1.jpg" medium="image">
			<media:title type="html">RocktheGreen1</media:title>
		</media:content>
	</item>
		<item>
		<title>SSIS 2012 Configuration Guide &#8211; Part 2: Scenarios, Setup and Migration</title>
		<link>http://dwjunkie.wordpress.com/2013/01/22/ssis-2012-configuration-guide-part-2-scenarios-setup-and-migration/</link>
		<comments>http://dwjunkie.wordpress.com/2013/01/22/ssis-2012-configuration-guide-part-2-scenarios-setup-and-migration/#comments</comments>
		<pubDate>Tue, 22 Jan 2013 15:55:14 +0000</pubDate>
		<dc:creator>dwjunkie</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://dwjunkie.wordpress.com/?p=383</guid>
		<description><![CDATA[This post is the second part of the SSIS 2012 configuration Guide. The first part gave a general introduction about &#8230;<p><a href="http://dwjunkie.wordpress.com/2013/01/22/ssis-2012-configuration-guide-part-2-scenarios-setup-and-migration/">Continue reading &#187;</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=383&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This post is the second part of the SSIS 2012 configuration Guide. The first part gave a general introduction about the new deployment models, parameters, environments and the SSIS catalog. </p>
<p>In the second part of the guide I will describe the configuration scenario in general, recommended default configurations, how to setup parameters and environments and migration options for existing SQL Server based configurations.</p>
<h3>Configuration Scenario</h3>
<p>As mentioned in my first post in previous versions of SSIS 2012 we had several possibilities how to configure our SSIS packages. With new concept of parameters and environments in SSIS 2012 the way to use configurations is now standardized, as shown in the picture below.</p>
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image11.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb11.png?w=530&#038;h=315" width="530" height="315"></a></p>
<p>If you follow the design of master and child packages all configurable parameters are now stored in one environment, that is stored in the SSIS catalog. A SQL Server agent job, which triggers the master package of your ETL process, has an environment assigned, which will be used for package execution. All child packages can then use the parameters of the assigned environment. </p>
<p>This also means that the old concept of assigning different configurations also to child packages is not possible anymore. Shared configuration parameters used by several packages should be defined on a project level. If you want to share parameters across projects you need to stored them redundant in different environments and manage it on your own. I know that this is a small loose of flexibility but it is currently the only way to go.</p>
<h3>Default Configurations</h3>
<p>The following list contains recommended SSIS properties which should be made dynamic configurable by default in every SSIS project / package:
<li>Connection Strings for all Connection Managers
<li>BLOBTempStoragePath
<li>BufferTempStoragePath
<li>DefaultBufferMaxRows of each dataflow (optional on package level)
<li>DefaultBufferSize of each dataflow (optional on package level)
<li>EngineThread of each dataflow (optional on package level)
<li>Delta or Inital Load flag (optional on package level)
<li>Transaction Handling (optional on package level)
<p><font style="background-color:#ffff00;"></font>For a better understanding I added two screenshots to visualize the default configuration on project level…<font style="background-color:#ffff00;"></font><a href="http://dwjunkie.files.wordpress.com/2013/01/image12.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb12.png?w=532&#038;h=143" width="532" height="143"></a></p>
<p>and on package level:</p>
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image13.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb13.png?w=532&#038;h=136" width="532" height="136"></a></p>
<p>As the temporary storage paths usually are the same for all packages within a project they can be created as parameters at project scope. The default buffer properties and the engine threads can differ between the packages and therefore should be created at package scope.
<p>If packages are designed to handle both, delta and initial loads, it is recommended to configure the execution mode in order to switch between them during runtime. Therefore this table can be used to automatically create new environments. How this can be done will be explained later.
<p>For configuration purposes all used connection managers are created on project level, so they are available for all packages. This is not mandatory, but makes it later easier to configure needed connection managers, at least when they are used in more than one package.<br />
<h3>Deployment</h3>
<p><font style="background-color:#ffff00;"></font><font>Before you can use Environments you need to deploy your project to the SSIS Catalog. If you only want to test your parameters on your developer box, you can use the parameter default values that you can define in Visual Studio.</font></p>
</li>
<p>In order to deploy your project you just right-click on your project and press click “<em>Deploy</em>”, which will open the deployment wizard where you need to specify the SSIS server name and the target path, like in my sample below.</p>
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image14.png"><img title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;padding-top:0;padding-left:0;border-left:0;display:inline;padding-right:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb14.png?w=491&#038;h=223" width="491" height="223"></a></p>
<p>After you are done with the wizard you should see your project and all containing SSIS packages in the SSIS catalog.</p>
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image15.png"><img title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;padding-top:0;padding-left:0;border-left:0;display:inline;padding-right:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb15.png?w=355&#038;h=241" width="355" height="241"></a></p>
<h3>Environment Setup</h3>
<p>If you look carefully to your “<em>Environments</em>” folder you will recognize that it’s empty. In order to configure your project you need to create an environment first. Typically you will then add all defined parameters to your project environment. In larger projects this can take some time, if you do it manually. In order to make it a little bit more comfortable you can also use this stored procedure that analyzes all defined parameters of a project in the SSIS catalog (from the “<em>internal.object_parameters</em>” table in the SSISDB) and adds them to your new environment. </p>
<p>
<pre class="csharpcode"><span class="kwrd">USE</span> [SSISDB]
<span class="kwrd">GO</span>

<span class="kwrd">DECLARE</span> @RC <span class="kwrd">int</span>
<span class="kwrd">DECLARE</span> @environment nvarchar(128)
<span class="kwrd">DECLARE</span> @folder nvarchar(128)
<span class="kwrd">DECLARE</span> @project nvarchar(128)

<span class="rem">-- TODO: Set parameter values here.</span>

<span class="kwrd">EXECUTE</span> @RC = [dbo].[CreateEnvironmentFromParameters] 
   <span class="str">'MyEnvironmnent'</span> <span class="rem">-- name of the environment</span>
  ,<span class="str">'Test'</span> <span class="rem">-- project folder </span>
  ,<span class="str">'Configuration_SQL2012'</span> <span class="rem">-- project name</span>
GO</pre>
</p>
<p><font style="background-color:#ffff00;"></font><font>This and all following stored procedures can be found here:</font><font style="background-color:#ffff00;"></font></p>
<p><a href="https://skydrive.live.com/redir?resid=EDD20A747F7B8FDE!32835&amp;authkey=!AFvRzY5jzfphR_Y">https://skydrive.live.com/redir?resid=EDD20A747F7B8FDE!32835&amp;authkey=!AFvRzY5jzfphR_Y</a> </p>
<p>“<em>CreateEnvironmentFromParameters_SP.sql</em><font style="background-color:#ffffff;">”</font> </p>
<p>The stored procedure has four input parameters, each one is mandatory: </p>
<li><b>environment: </b>Determines the environment name for which the variables will be created. The name can be existing or new. If it is new it will be created. Otherwise the current variables will be deleted and the new configuration will be loaded.
<li><b>folder_project: </b>Determines the SSIS catalog folder name in which the project is stored. The folder has to be existent, if a non-existing name is provided, the stored procedure will raise an error.
<li><b>folder_environment: </b>Determines the SSIS catalog folder name in which the environment is stored or should be created. It can be existing or new. If it is new it will be created. Otherwise the folder will be created and the environment will be added.
<li><b>project: </b>Determines the project name, holding the parameter values which should be used for the environmental variables. The project has to be existent, as it is the reference used to create the variables. If a non-existing name is provided, the stored procedure will raise an error.
<p>The stored procedure creates for all used connection managers and parameters within the project and all packages a variable in the defined environment. The value assigned to each variable is the design default value currently stored in the “internal.object_parameters” table. If another value should be assigned, this has to be changed manually. </p>
<h3>Naming Conventions</h3>
<p>As mentioned before with SSIS 2012 it is not possible to assign more than one environment during runtime. This means that all parameters, on project and on package level, for the whole ETL process that the master package triggers, need to be stored in on environment. In order to be able to differentiate between the different parameters within each package, we need to agree on a certain naming convention. I will make just a suggestion how it could look like, but feel free to take your own specific one.</p>
<p>So the naming convention I use has the following syntax:</p>
<pre class="csharpcode">General + _ + ParameterName
PackageName + _ + ParameterName
</pre>
<p>All project level parameters have the prefix “<em>General_</em>” and all package level parameters have the prefix “<em>&lt;PackageName&gt;_</em>”.</p>
<p>As an example I added a screenshot for my suggested default parameters.</p>
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image16.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;margin:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb16.png?w=529&#038;h=219" width="529" height="219"></a></p>
<h3>Map environment variables to project parameters</h3>
<p>After the environments and variables have been created, they have to be mapped to the according project and parameters. This can be done manually by defining the references between projects and environments in the “Configuration” window and by mapping the environmental variables to each parameter and connection string in the project and its’ packages. </p>
<p>As this can get very time consuming, especially for bigger projects containing many packages and parameters, it is recommended to use the following stored procedure in order to create the references and variable mappings. </p>
<p>“<em>CreateVariableParameterMapping_SP.sql</em>” </p>
<p>(<strong><u>Important</u></strong>: The stored procedure can only be used, if the creation of the environment and its variables has been done by the stored procedure “<em>CreateEnvironmentFromParameter_SP.sql</em>”) </p>
<p>The stored procedure has four input parameters, each one is mandatory: </p>
<li><b>environment: </b>Determines the environment which holds the variables to be mapped. The environment has to be existent, if a non-existing name is provided, the stored procedure will raise an error.
<li><b>folder_project: </b>Determines the SSIS catalog folder name in which the project is stored. The folder has to be existent, if a non-existing name is provided, the stored procedure will raise an error.
<li><b>folder_environment: </b>Determines the SSIS catalog folder name in which the environment is stored. The folder has to be existent, if a non-existing name is provided, the stored procedure will raise an error.
<li><b>project: </b>Determines the project name, holding the parameter values, which should be mapped. The project has to be existent, if a non-existing name is provided, the stored procedure will raise an error.
<p>The stored procedure checks each of the parameters for existence and raises an error, if only one is missing. It also checks, if between the declared project and environment already a reference is defined. If not, it will be created automatically by the stored procedure. Afterwards the mapping between environmental variables and project parameters will be performed. </p>
<h3>Migration of old SSIS configurations</h3>
<p>In order to migrate configurations from projects using prior versions of SSIS 2012, the following stored procedure can be used to migrate existing SQL Server configurations. If you use XML configuration files you can transform them to SQL Server configuration and then apply the script: </p>
<p>“<em>CreateEnvironmentFromConfiguration_SP.sql</em>” </p>
<p>The stored procedure has four input parameters: </p>
<li><b>environment: </b>Determines the environment to which the configuration values should by migrated. If the specified environment does not exist, it will be created.
<li><b>folder: </b>Determines the SSIS catalog folder name in which the environment is stored. If the specified folder does not exist, it will be created.
<li><b>database: </b>Determines the database storing the configuration values of the prior SQL Server version. The database has to be existent, otherwise an error will be raised.
<li><b>configuration filter: </b>This parameter is optional. If it is not specified, the whole configuration table will be loaded into the specified environment. If a value is provided for this parameter, only the corresponding values will be added to the environment.
<p>The stored procedure also offers the possibility to migrate certain configurations to one environment. Therefore it has to be executed several times with different configuration filter settings. So all defined configuration filters will be loaded into the same environment. </p>
<p>If a non-existing configuration filter is provided, only an empty environment will be created. </p>
<h3>Conclusion</h3>
<p>SSIS package configurations deliver a common way to implement ETL packages in a highly dynamic manner and to reduce direct adaptions after implementation has been finished and the packages have been rolled out to an environment. In combination with the new deployment model, the SSIS catalog and the also newly introduced environments configuration management becomes more comfortable and standardized. </p>
<p>Normally the creation and setup of the new configuration method would take a lot of time, at least for bigger projects, but with the delivered guidelines and stored procedures you can easily create and migrate new environments, variables and parameter references. Therefore it is recommended to migrate prior versions to the new deployment and configuration model. </p>
<p>If you have further questions, recommendations or tips please let me know.</p>
</li>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dwjunkie.wordpress.com/383/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dwjunkie.wordpress.com/383/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=383&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dwjunkie.wordpress.com/2013/01/22/ssis-2012-configuration-guide-part-2-scenarios-setup-and-migration/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f689d3738d06abf2088d70dbf03b69f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dwjunkie</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb11.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb12.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb13.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb14.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb15.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb16.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>SSIS 2012 Configuration Guide &#8211; Part 1: Introduction</title>
		<link>http://dwjunkie.wordpress.com/2013/01/14/ssis-2012-configuration-guide-part-1-introduction/</link>
		<comments>http://dwjunkie.wordpress.com/2013/01/14/ssis-2012-configuration-guide-part-1-introduction/#comments</comments>
		<pubDate>Mon, 14 Jan 2013 10:36:55 +0000</pubDate>
		<dc:creator>dwjunkie</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false">https://dwjunkie.wordpress.com/?p=369</guid>
		<description><![CDATA[Configuration handling in SSIS was not always the easiest part. One of the problems were the different possibilities we had &#8230;<p><a href="http://dwjunkie.wordpress.com/2013/01/14/ssis-2012-configuration-guide-part-1-introduction/">Continue reading &#187;</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=369&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Configuration handling in SSIS was not always the easiest part. One of the problems were the different possibilities we had before SQL Server 2012:</p>
<ul>
<li>XML configuration files
<li>Environment variables
<li>Registry entries
<li>Parent package variables
<li>SQL Server configurations</li>
</ul>
<p>In SSIS 2012 the configuration handling has been totally redesigned and there is now one common standard way how to do this.
<p>This guide will show how to use the new way of configuration, how parameters and environments can be used to build dynamic SSIS packages, how they simplify the deployment process and how to migrate old configurations to the new world.
<p> A special thanks goes to my colleague Christian Jurjut, who wrote this guide with me.<br />
<h3>Introduction</h3>
<p>In SSIS 2012 parameters on project and package level have been introduced. In combination with the also new “environments” in the SSIS catalog, they offer a new opportunity to configure packages during runtime. This new method was introduced in order to have only a single way to apply configurations and so to eliminate the bugs and weaknesses of the old configurations.<br />
<h3>Deployment Models</h3>
<p>The deployment model helps to deploy SSIS packages and projects to different environments, like a development, test and production system. Therefore it is possible to provide different configurations for each system already in the solution during design time, also to be able to test packages with different parameter settings. In order to provide those configurations it is necessary to create different scenarios in the project’s configuration manager. It is reachable under the project properties.
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image1.png"><img title="image" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb1.png?w=453&#038;h=283" width="453" height="283"></a>
<p>In the appearing window it is possible to create new configuration scenarios by selecting “<em>&lt;New…&gt;</em>” from the “<em>Active solution configuration</em>” drop down field.
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image2.png"><img title="image" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb2.png?w=514&#038;h=159" width="514" height="159"></a>
<p>Usually the “<em>Server Name</em>” and the “<em>Server Project Path</em>” differ between the environments. So by setting those values it is possible to deploy the SSIS packages to different systems only by choosing a value from a drop down field.
<p>The deployment model is not completely new to SSIS projects, but with SSIS 2012 a new model was introduced to the already existing package deployment model. It is called “<strong>project deployment model</strong>” and it is mandatory to create projects using this deployment model in order to be able to use parameters and deploy SSIS packages to the SSIS catalog. The “old” package deployment model can still be used but it is not possible to apply the new configuration methods, as it does not support parameters or the SSIS catalog.
<p>In combination with parameters the project deployment model gets more useful, as it is possible to assign different values to parameters for each scenario. So, for example, it is possible to create a scenario for each environment, like development, test and production, and to assign different connection strings to those scenarios via parameters. This gives you the opportunity to execute SSIS packages against different systems during design time only by choosing another scenario from the drop down box. But it also offers the possibility to deploy the project and packages with already the right configuration to the different environments.<br />
<h3>Parameters</h3>
<p>Parameters are newly introduced to SSIS with SQL Server 2012. They can be created on project or package level, according to the assigned scope. If a parameter is defined on project level, it can be used in all SSIS packages within this project. If it is created on package level, the parameter can only be accessed within the according package.
<p>Parameters can be used like variables, with a few exceptions. It is possible to assign values to them and to use them within expressions for different components. So they can be used for configuration purposes. Unfortunately it is not possible to replace variables at all by parameters, as they cannot store results from “<em>Execute SQL Tasks</em>”.
<p>On project level parameters can be created by using the “<em>Project.params</em>” entry in the solution explorer.
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image3.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb3.png?w=524&#038;h=102" width="524" height="102"></a>
<p>By clicking the “<em>Add Parameter</em>” button, new parameters will be added to the list below. The following properties can be provided for them:
<ul>
<li>The <b>name</b> of the parameter
<li>The according <b>data</b> <b>type</b>
<li>The default <b>value</b>, used during design time
<li>A <b>sensitive</b> flag
<li>A <b>required</b> flag
<li>And a <b>description</b> </li>
</ul>
<p>If the parameter is marked as sensitive, its value will be encrypted when the project is deployed to the SSIS catalog. The required flag indicates that it is mandatory to pass a value to this parameter before the package can be executed.
<p>To create parameters at package scope, you just have to choose the “<em>Parameters</em>” tab in the according package, where you can also add them by using the “<em>Add parameter</em>” button.
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image4.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb4.png?w=531&#038;h=193" width="531" height="193"></a>
<p>If different scenarios have been applied to the project, it is possible to assign different values to parameters for each scenario. This can be achieved by clicking the “<em>Add Parameters to Configurations</em>” button. The following window gives an overview of all available scenarios (columns) and the configured parameters (rows).
<p>&nbsp;<a href="http://dwjunkie.files.wordpress.com/2013/01/image28.png"><img title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;padding-top:0;padding-left:0;border-left:0;display:inline;padding-right:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image28_thumb.png?w=505&#038;h=338" width="505" height="338"></a>
<p>By clicking the “<em>Add</em>” button a list of all available parameters appears, which can be added to the configuration.<br />
<h3>Integration Services Catalog</h3>
<p>The SSIS catalog is new to SQL Server 2012 and it is used to store, manage and monitor deployed packages. The SSIS repository is now an integrated part of SQL Server and the old SSIS Service is only there for compatibility issues. This also means that we can now easily backup and restore the whole repository as a database and all the packages, configuration settings and logging information is included.
<p>In order to be able to deploy SSIS packages to SQL Server, the integration services catalog has to be created on the server. The catalog uses CLR stored procedures, so you will need to enable CLR integration on the database engine, if it is not enabled already. After CLR integration has been enabled, you can use SQL Server Management Studio Object Explorer in order to create the catalog. As shown in the following image, right-click the Integration<b> S</b>ervices<b> </b>node and then click “<em>Create Catalog</em>”<b>.</b>
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image5.png"><img title="image" style="background-image:none;float:left;padding-top:0;padding-left:0;margin:0 10px 5px 0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" align="left" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb5.png?w=315&#038;h=258" width="315" height="258"></a>
<p align="left">In the create catalog dialog box you will be asked to supply a password. This password is used to create a database master key, which will be used to encrypt sensitive data in the catalog. The master key has to be backed up separately from the database. So it is recommended to create a backup as soon as it is created. Therefore the master key has to be decrypted and an encrypted backup has to be created. The following script can be used for this purpose: </p>
<pre class="csharpcode"><span class="kwrd">OPEN</span> MASTER <span class="kwrd">KEY</span> DECRYPTION <span class="kwrd">BY</span> PASSWORD = <span class="str">'password'</span>; 

<span class="kwrd">BACKUP</span> MASTER <span class="kwrd">KEY</span> <span class="kwrd">TO</span> <span class="kwrd">FILE</span> = <span class="str">'c:\temp\exportedmasterkey'</span> 

ENCRYPTION <span class="kwrd">BY</span> PASSWORD = <span class="str">'new password'</span>; </pre>
<p>After creation the object explorer displays the catalog twice, first in the databases node and then in the Integration Services node. In the databases node, you can work with the catalog, SSISDB, like any other user database. In the integration services node, you can administer the catalog by right-clicking the corresponding child nodes.&nbsp;&nbsp;
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image6.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb6.png?w=313&#038;h=356" width="313" height="356"></a> </p>
<p>Within the catalog projects and packages are stored in folders. On each folder it is possible to delegate user rights in order to permit administration. The catalog also stores all environments which will be used later to configure packages during runtime. So each folder, created in the SSIS catalog contains two subfolders. The “<em>Projects</em>” folder, where SSIS packages will be deployed and stored, and the “<em>Environments</em>” folder, which manages the different environments, created for certain projects. </p>
<p>After deploying and executing SSIS packages the integration services catalog provides information regarding versioning, execution results and monitoring. The information can be retrieved by using the provided standard reports or by querying the SSISDB. For this reason some example queries are supplied here: </p>
<p><a title="https://skydrive.live.com/redir?resid=EDD20A747F7B8FDE!32835&amp;authkey=!AFvRzY5jzfphR_Y" href="https://skydrive.live.com/redir?resid=EDD20A747F7B8FDE!32835&amp;authkey=!AFvRzY5jzfphR_Y">https://skydrive.live.com/redir?resid=EDD20A747F7B8FDE!32835&amp;authkey=!AFvRzY5jzfphR_Y</a> </p>
<ul>
<li>The following query selects the execution events and messages created by SSIS package execution: “<em>Check Execution Events and Messages.sql</em>”
<li>The following query provides the runtime duration for each package executed: “<em>Check Package Execution and Duration Per Package.sql</em>”
<li>The following query provides the duration for each task executed within SSIS packages: “<em>Check Package Execution and Duration Per Task.sql</em>”
<li>The last query combines the event messages with the execution duration: “<em>Check Execution Messages and Durations.sql</em>”</li>
</ul>
<h3>Environments</h3>
<p>In SSIS 2012 environments in the SSIS catalog can be used to assign different configurations to deployed projects and packages during runtime. After the SSIS catalog has been created and configured and at least one custom folder has been created, in order to store projects and packages, environments can be created in the according subfolder. Each custom folder can store different projects and environments. So it is possible to reuse already defined environments in certain projects as well as to define more than one environment per project. So, for example, you can define a delta and an initial environment for your projects, if your packages can handle both. </p>
<p>An environment can be created by right-clicking the “<em>Environments</em>” folder and selecting “<em>Create Environment</em>” from the context menu. In the first step you can only name the new environment. Now a new entry appears in the “<em>Environments</em>” folder. When you open it a new window appears, which provides some general information and the ability to assign variables and permissions. </p>
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image7.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb7.png?w=500&#038;h=334" width="500" height="334"></a> </p>
<p>Variables have the same properties as parameters, except the “<em>required</em>” option. In the example above two variables were used to store the source and destination connection string and one variable, “<em>DeltaLoad</em>” is a used as indicator either the package is executed in delta or in initial mode. </p>
<p>By adding the environment as reference to a deployed project, it can be used to configure parameters and connections. </p>
<p>Information regarding environments can also be retrieved from the SSISDB. It is stored in the following four tables: </p>
<ul>
<li><b>internal.environments: </b>Stores the unique id, the name and the folder in which the environment is located.
<li><b>internal.environment_variables: </b>Provides information about variables used in environments, like the name, data type and the current value.
<li><b>internal.environment_references: </b>Stores the relationship between projects and environments. It provides the information which project references which environment.
<li><b>internal.environment_permissions: </b>Stores information about permissions for each environment. </li>
</ul>
<p>These tables also offer the possibility to modify existing environments or to create new ones. So, for example, they can be used to migrate the “<em>SSIS Configurations</em>” table to new environments. How this can be done will be explained later on. </p>
<h3>Package and project configuration</h3>
<p>After a project has been deployed to the SSIS catalog, it is possible to configure it by right-clicking the project or one of the package entries and choosing “<em>Configure…</em>” from the context menu. The arising window manages all parameters and connection managers on project and on package scope. </p>
<p>If a project contains many packages and therefore many parameters, the default layout might be confusing, because it contains all available parameters and connection managers. But the current scope can easily be changed by choosing another value from the according drop down field. </p>
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image8.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb8.png?w=530&#038;h=362" width="530" height="362"></a> </p>
<p>For parameters the following information is provided: </p>
<ul>
<li>the <b>container</b> determines either the parameter is on project level or belongs to a package
<li>the <b>name</b> of the parameter
<li>its current <b>value</b> </li>
</ul>
<p>For connection managers the following information is provided: </p>
<ul>
<li>the <b>connection string</b> of the connection manager
<li>the <b>initial catalog</b> and the <b>server name</b> as single values
<li><b>user name </b>and <b>password</b> for authentication purposes
<li>the “<b>RetainSameConnection</b>” property </li>
</ul>
<p>The value of these properties can by changed here, so that the changes take effect on the project and the corresponding packages. </p>
<p>Under the reference section it is possible to assign environments to the project, which can be used to configure the values of the different properties. The assignment of the environmental variables to parameters or connection manager properties can be done in the according section by choosing the “<em>…</em>” button next to each of these values. </p>
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image9.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb9.png?w=526&#038;h=354" width="526" height="354"></a> </p>
<p>In the upcoming “<em>Set Parameter Value</em>” window you can choose between, editing the value manually, using the default value or assigning a variable from the used environments. </p>
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image10.png"><img title="image" style="background-image:none;padding-top:0;padding-left:0;display:inline;padding-right:0;border-width:0;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb10.png?w=345&#038;h=324" width="345" height="324"></a> </p>
<p>For each parameter, which has to be configurable, one variable has to be created in the according environments. So, for example, if you want to dynamically configure which packages are executed in initial or delta mode, you have to create one variable per package. If you would create only one variable for the whole project, all packages would be executed either in initial or in delta mode. </p>
<p>Contrary to this, if more than one environment is used within a project and each of them should configure the same parameters and connection managers, it is mandatory that the variable names are equal in all environments. Otherwise the assignment cannot be performed uniquely. </p>
<p>Information about parameters can be also retrieved from the SSISDB table “<em>internal.object_parameters</em>”. It provides information about the project, to which the parameter belongs, the scope the parameter was created at, the used data type and the default value at design time.</p>
<h3>Summary</h3>
<p>This first chapter introduced the new configuration possibilities in SSIS 2012 and how to use them. Within the next part I will show some Best Practices which parameters you should always make configurable, how to create environment more efficiently and how to migrate existing configuration for older SSIS version to the new SSIS catalog.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dwjunkie.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dwjunkie.wordpress.com/369/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=369&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dwjunkie.wordpress.com/2013/01/14/ssis-2012-configuration-guide-part-1-introduction/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f689d3738d06abf2088d70dbf03b69f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dwjunkie</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image28_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb10.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Vote for SQLBits Sessions</title>
		<link>http://dwjunkie.wordpress.com/2013/01/10/vote-for-sqlbits-sessions/</link>
		<comments>http://dwjunkie.wordpress.com/2013/01/10/vote-for-sqlbits-sessions/#comments</comments>
		<pubDate>Thu, 10 Jan 2013 16:28:27 +0000</pubDate>
		<dc:creator>dwjunkie</dc:creator>
				<category><![CDATA[Conference]]></category>

		<guid isPermaLink="false">https://dwjunkie.wordpress.com/?p=344</guid>
		<description><![CDATA[The next SQLBits conference will talk place in May in Nottingham and it’s time for session voting. And because it’s &#8230;<p><a href="http://dwjunkie.wordpress.com/2013/01/10/vote-for-sqlbits-sessions/">Continue reading &#187;</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=344&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The next <a href="http://www.sqlbits.com/" target="_blank">SQLBits</a> conference will talk place in May in Nottingham and it’s time for <a title="session voting" href="http://www.sqlbits.com/information/PublicSessions.aspx" target="_blank">session voting</a>. And because it’s a community conference the community can vote for the sessions they love to see.</p>
<p><a href="http://dwjunkie.files.wordpress.com/2013/01/image.png"><img style="background-image:none;padding-top:0;padding-left:0;margin:0;display:inline;padding-right:0;border:0;" title="image" alt="image" src="http://dwjunkie.files.wordpress.com/2013/01/image_thumb.png?w=244&#038;h=117" width="244" height="117" border="0" /></a></p>
<p>I also submitted two sessions, so please vote, if you are interested:</p>
<ul>
<li><a href="http://www.sqlbits.com/Sessions/Event11/Germans_favour-Microsoft_BI_on_top_of_SAP" target="_blank">Germans favour &#8211; Microsoft BI on top of SAP</a></li>
<li><a href="http://www.sqlbits.com/Sessions/Event11/Build_more_efficient_Data_Warehouses_via_trial_and_error_2" target="_blank">Build more efficient Data Warehouses via trial and error?</a></li>
</ul>
<p>See you @SQLBits…</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dwjunkie.wordpress.com/344/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dwjunkie.wordpress.com/344/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=344&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dwjunkie.wordpress.com/2013/01/10/vote-for-sqlbits-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f689d3738d06abf2088d70dbf03b69f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dwjunkie</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2013/01/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Microsofts Big Data Appliance</title>
		<link>http://dwjunkie.wordpress.com/2012/11/23/microsofts-big-data-appliance/</link>
		<comments>http://dwjunkie.wordpress.com/2012/11/23/microsofts-big-data-appliance/#comments</comments>
		<pubDate>Fri, 23 Nov 2012 14:50:02 +0000</pubDate>
		<dc:creator>dwjunkie</dc:creator>
				<category><![CDATA[Big Data]]></category>
		<category><![CDATA[MPP]]></category>
		<category><![CDATA[Parallel Data Warehouse]]></category>
		<category><![CDATA[PDW]]></category>

		<guid isPermaLink="false">https://dwjunkie.wordpress.com/?p=339</guid>
		<description><![CDATA[As you probably already heard there will a new version of the Microsoft Parallel Data Warehouse available in the first &#8230;<p><a href="http://dwjunkie.wordpress.com/2012/11/23/microsofts-big-data-appliance/">Continue reading &#187;</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=339&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>As you probably already <a href="http://blogs.technet.com/b/dataplatforminsider/archive/2012/11/07/pass-summit-2012-accelerating-business-through-data-insights.aspx">heard</a> there will a new version of the <a href="https://www.microsoft.com/sqlserver/en/us/solutions-technologies/data-warehousing/pdw.aspx">Microsoft Parallel Data Warehouse</a> available in the first half of 2013. So let me quickly go through the highlights of Version 2.</p>
<h1>Functionality</h1>
<p>The new version will be based on SQL Server 2012 and will also include the enhancements of the column store index. This means Microsoft ships also in-memory technology within it’s product. Most of the T-SQL limitations that we know from version 1 will be also gone. </p>
<h1>Architecture &amp; Hardware</h1>
<p>Additionally the new version will have some architectural changes, a hardware refresh (<a href="http://h30507.www3.hp.com/t5/Rethink-BI-Business-Insights/The-EDW-evolution-continues-and-it-is-Bigger-Faster-and-Better/ba-p/126293">HP EDW v2</a>) and a new Quarter Rack, which is more attractive also for smaller Data Warehouse projects and customers.</p>
<h1>Big Data &amp; more</h1>
<p>As you probably also heard from the PASS Summit PDW Version 2 will ship with <a href="http://gsl.azurewebsites.net/Projects/Polybase.aspx">Polybase</a>. Polybase provides users the ability to query against structured data that is stored in PDW and unstructured data that is stored in Hadoop in the same way (T-SQL).</p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/11/image.png"><img title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2012/11/image_thumb.png?w=238&#038;h=244" width="238" height="244"></a></p>
<p>This means that Parallel Data Warehouse is and will be Microsoft&#8217;s strategic Big Data Platform and Appliance that combines the scale and performance of a relational Data Warehouse with the velocity, variety and volume of unstructured data stored in Hadoop.&nbsp; And as <a href="http://highscalability.com/blog/2012/9/24/google-spanners-most-surprising-revelation-nosql-is-out-and.html">Google already figured out</a> NoSQL will not be the solution to handle all kind of data in a way that query performance will be acceptable by business users. If there is a certain structure in your data, you probably want to use it. <img class="wlEmoticon wlEmoticon-smile" style="border-style:none;" alt="Smile" src="http://dwjunkie.files.wordpress.com/2012/11/wlemoticon-smile.png?w=529"></p>
<p>If you are interested in more details about Polybase have a look at the session of David DeWitt: <a title="http://www.sqlpass.org/summit/2012/DavidDewittSpotlight.aspx" href="http://www.sqlpass.org/summit/2012/DavidDewittSpotlight.aspx">http://www.sqlpass.org/summit/2012/DavidDewittSpotlight.aspx</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dwjunkie.wordpress.com/339/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dwjunkie.wordpress.com/339/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=339&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dwjunkie.wordpress.com/2012/11/23/microsofts-big-data-appliance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f689d3738d06abf2088d70dbf03b69f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dwjunkie</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/11/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/11/wlemoticon-smile.png" medium="image">
			<media:title type="html">Smile</media:title>
		</media:content>
	</item>
		<item>
		<title>Time to catch up</title>
		<link>http://dwjunkie.wordpress.com/2012/11/23/time-to-catch-up/</link>
		<comments>http://dwjunkie.wordpress.com/2012/11/23/time-to-catch-up/#comments</comments>
		<pubDate>Fri, 23 Nov 2012 14:17:32 +0000</pubDate>
		<dc:creator>dwjunkie</dc:creator>
				<category><![CDATA[Conference]]></category>

		<guid isPermaLink="false">https://dwjunkie.wordpress.com/?p=334</guid>
		<description><![CDATA[It was a little bit quite here in the last weeks. The reason for this was a trip to Seattle &#8230;<p><a href="http://dwjunkie.wordpress.com/2012/11/23/time-to-catch-up/">Continue reading &#187;</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=334&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>It was a little bit quite here in the last weeks. The reason for this was a trip to Seattle that needed to be prepared. I visited the Product Advisory Summit of SQL Server, which was a small conference with around 200 people from world wide, that had the chance to provide feedback to the Microsoft product group on areas like BI, Data Warehouse and Cloud. On the other hand the product group presented us topics they are currently working on. Unfortunately I’m not able to give further details, since all the content is under NDA. </p>
<p>I also took the chance to visit the <a href="http://www.sqlpass.org/summit/2012">PASS Conference</a> and was very impressed about this fast growing community. I remember when I was there in 2009 the room of the key not was only have of the size is has been now, that was really fascinating. Along with all the new stuff like Hekaton, writable Column Index Store, PDW Version 2 and all the other new things Microsoft has been shown us I believe we will have a fantastic year 2013 with lot’s of exciting projects. So it’s time for me to catch up here.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dwjunkie.wordpress.com/334/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dwjunkie.wordpress.com/334/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=334&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dwjunkie.wordpress.com/2012/11/23/time-to-catch-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f689d3738d06abf2088d70dbf03b69f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dwjunkie</media:title>
		</media:content>
	</item>
		<item>
		<title>Parallel Data Warehouse &#8211; POC lessons learned Part 3</title>
		<link>http://dwjunkie.wordpress.com/2012/09/12/parallel-data-warehouse-poc-lessons-learned-part-3/</link>
		<comments>http://dwjunkie.wordpress.com/2012/09/12/parallel-data-warehouse-poc-lessons-learned-part-3/#comments</comments>
		<pubDate>Wed, 12 Sep 2012 14:17:13 +0000</pubDate>
		<dc:creator>dwjunkie</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Data Warehouse]]></category>
		<category><![CDATA[ETL]]></category>
		<category><![CDATA[MPP]]></category>
		<category><![CDATA[Parallel Data Warehouse]]></category>
		<category><![CDATA[PDW]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false">https://dwjunkie.wordpress.com/?p=325</guid>
		<description><![CDATA[The first part of the PDW lessons learned series gave an introduction about the goals of the POC, a customer &#8230;<p><a href="http://dwjunkie.wordpress.com/2012/09/12/parallel-data-warehouse-poc-lessons-learned-part-3/">Continue reading &#187;</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=325&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The <a href="http://dwjunkie.wordpress.com/2012/02/22/parallel-data-warehouse-pdw-poc-lessons-learned/" target="_blank">first part</a> of the <a href="http://dwjunkie.wordpress.com/pdw/" target="_blank">PDW lessons learned series</a> gave an introduction about the goals of the POC, a customer introduction, an overview of the requirements and the test cases. Within the <a href="http://dwjunkie.wordpress.com/2012/05/11/parallel-data-warehouse-pdw-poc-lessons-learned-part-2/" target="_blank">second part</a> I gave some more insights on how to migrate the existing code base I used for the POC (relational structures, stored procedures, SSIS packages) in order to work with PDW. The last post will concentrate on the results and a summary of our findings.</p>
<h3>ETL Performance</h3>
<p>As shown in my series “<a href="http://dwjunkie.wordpress.com/ssis/" target="_blank">SSIS Design for Performance and Scale</a>” a typically designed SSIS package with only 1 stream in the dataflow will give us a write performance of around 25 MB/s. Because data load performance is a critical issue in the current customer environment one of the original SSIS packages looked like this:</p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image8.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb8.png?w=531&#038;h=219" alt="image" width="531" height="219" border="0" /></a></p>
<p>What we can see here are 6 sequence container that are executed as 6 threads in parallel, every container handles a subset of the data. But there are several disadvantages with that kind of design:</p>
<ul>
<li>Complex parallel loads of partitions (partition by quarter)</li>
<li>Manual parallelism within package design</li>
<li>Multiple implementation of business logic per thread</li>
</ul>
<p>With PDW we wanted to see how much the engine itself can help us in order to parallelize data loads. So we decided to remove all parallelism from the package so that it looks like this:</p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image9.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb9.png?w=529&#038;h=273" alt="image" width="529" height="273" border="0" /></a></p>
<p>This gives us the following advantages:</p>
<ul>
<li>Parallelism of load processes is handled by PDW (let’s see)</li>
<li>Much simpler SSIS Design -&gt; less implementation effort</li>
<li>Business logic exists only once -&gt; simpler and faster maintainability</li>
</ul>
<p>So far so good, but what about the performance numbers? Let’s have a quick look at the 2 scenarios we have tested. We used the Landing Zone as host for Integration Services and executed all packages on this server.</p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image10.png"><img style="background-image:none;margin:0 0 0 75px;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb10.png?w=368&#038;h=342" alt="image" width="368" height="342" border="0" /></a></p>
<h4>Scenario 1</h4>
<p>In the original customer scenario the SSIS package loads data from on table to another table within the same database. The whole database is stored in PDW.</p>
<h4>Scenario 2</h4>
<p>Because we had some trouble with the read performance we decided to put a backup of the database to the landing zone and load the data from the landing zone to the PDW nodes.</p>
<h4>Performance Results</h4>
<p>The following matrix shows the performance numbers we got during our tests.</p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image11.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb11.png?w=531&#038;h=116" alt="image" width="531" height="116" border="0" /></a></p>
<p>The column “Production Duration” shows the reference value from the current customer environment. This is our baseline number.</p>
<p>Now we can see 2 interesting behaviors. The first scenario is 2x slower, but the second one up to 4x faster. So what is the reason for these big differences in performance?</p>
<ul>
<li>Read data from PDW is slow, around 8 MB/s (OleDB driver) –&gt; Scenario 1</li>
<li>Load data into PDW is fast, around 45 MB/s –&gt; Scenario 2</li>
<li>PDW automatically distributes loading processes</li>
</ul>
<p><span style="text-decoration:underline;"><strong>Important:</strong></span> The product group is aware of the slow OleDB driver and is working hard to make it faster. We have already seen a much better performance on a later Appliance Update.</p>
<h4>Summary</h4>
<p>I always hear people saying that SSIS is not the right tool for data loading scenarios with PDW. It’s maybe not the fastest option, but we have seen nevertheless good performance measures. Just to remember the easiest SSIS package on a normal SQL Server gives us a write performance of 25 MB/s. With PDW we get 45MB/s, so performance is nearly doubled. If this performance is good enough for you, SSIS is still a good choice and of course additionally you can apply the same parallelism techniques for further scale. And sometimes you don’t have the option to migrate all existing SSIS packages to a T-SQL based ETL.</p>
<p>My feeling is, that there is much more possible in case of performance, if the driver becomes faster and more efficient in the future.</p>
<p>Very often also the BCP tool (bulk copy utility) is recommended for data loading. This is a very fast option if you get your source data as flat file. But when you first need to create flat files before you can use BCP you better use SSIS for direct connectivity.</p>
<h3>Relational Query Performance</h3>
<p>Now let’s have a look at the relational query part. We got 3 reference queries from the customer that we used for our tests. In order to make the queries work with the PDW database we only had to change the schema name (because only the “dbo” schema is currently supported) and that’s it. And the performance? Awesome, as you can see here:</p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image12.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="image" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb12.png?w=424&#038;h=168" alt="image" width="424" height="168" border="0" /></a></p>
<p>The column “Production Duration” shows the reference value from the current customer environment. This is our baseline number.</p>
<p>All queries are up to 8 times faster. This is the real power that PDW offers us. A highly scalable SQL engine with lot’s of query power. So no surprises here, it works as we had expect it.</p>
<h3>Summary</h3>
<p>So what do we learn from this POC. I’d like to address the most important things we have seen again in a short bullet list.</p>
<h4>Usability</h4>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/einfachheit.jpg"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="einfachheit" src="http://dwjunkie.files.wordpress.com/2012/09/einfachheit_thumb.jpg?w=244&#038;h=124" alt="einfachheit" width="244" height="124" border="0" /></a></p>
<ul>
<li>PDW is not (yet) a normal SQL Server. So you need to understand the architecture of a MPP system and why it works differently to a SMP system</li>
<li>It’s not a no brainer. You need to think about, why would you need to buy a MPP System and which problem should it solve. It’s not a “one size fit’s all” thing.</li>
<li>Plan for migration effort. There are features in SQL Server that are currently not supported in PDW. Work closely with the Microsoft team to understand your specific case and there are already a lot of good design pattern you can use to overcome the missing features.</li>
</ul>
<p><strong>Performance</strong></p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/powerranger.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border:0;" title="PowerRanger" src="http://dwjunkie.files.wordpress.com/2012/09/powerranger_thumb.png?w=244&#038;h=118" alt="PowerRanger" width="244" height="118" border="0" /></a></p>
<ul>
<li>The relational query engine is fast. You have seen the results, but you can also write statements that do not well perform. Think about data distribution and other techniques and avoid data shuffling.</li>
<li>Plan your ETL. As we have see we get good parallelism support for SSIS, although the read problem has to be solved. So the system helps us with built-in parallelism support and we can keep our SSIS packages much simpler for a longer time.</li>
<li>Think about ELT.  I think in a MPP environment the SSIS engine itself becomes the bottleneck. We take out the data from a highly parallelized engine pump it through a buffer oriented SSIS engine and put it back to our highly parallelized engine. This works like a funnel which scales only to a certain point. If you can start from scratch or optimize certain packages try to use SSIS to bring the data into PDW and do the transformations within the engine.</li>
</ul>
<p>You are free to draw your own conclusion out of the presented results or you can also contact we for further questions or feedback. Don’t hesitate, just let me know.</p>
<h2>References</h2>
<ul>
<li><a href="http://dwjunkie.wordpress.com/2011/05/04/sql-server-parallel-data-warehouse/">Parallel Data Warehouse – Overview</a></li>
<li><a href="http://dwjunkie.wordpress.com/2011/05/05/sql-server-parallel-data-warehouse-part-2-architecture-components/">Parallel Data Warehouse – Architecture Components</a></li>
<li><a href="http://dwjunkie.wordpress.com/2011/05/10/sql-server-parallel-data-warehouse-part-3-hardware-components/">Parallel Data Warehouse &#8211; Hardware Components</a></li>
<li><a href="http://dwjunkie.wordpress.com/2012/02/22/parallel-data-warehouse-pdw-poc-lessons-learned/">Parallel Data Warehouse &#8211; POC lessons learned Part 1</a></li>
<li><a href="http://dwjunkie.wordpress.com/2012/05/11/parallel-data-warehouse-pdw-poc-lessons-learned-part-2/">Parallel Data Warehouse – POC lessons learned Part 2</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dwjunkie.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dwjunkie.wordpress.com/325/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=325&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dwjunkie.wordpress.com/2012/09/12/parallel-data-warehouse-poc-lessons-learned-part-3/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f689d3738d06abf2088d70dbf03b69f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dwjunkie</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb10.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb11.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb12.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/einfachheit_thumb.jpg" medium="image">
			<media:title type="html">einfachheit</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/powerranger_thumb.png" medium="image">
			<media:title type="html">PowerRanger</media:title>
		</media:content>
	</item>
		<item>
		<title>Design SSIS for Performance and Scale &#8211; Parallelism strategies, Part 1</title>
		<link>http://dwjunkie.wordpress.com/2012/09/07/design-ssis-for-performance-and-scale-parallelism-strategies-part-1/</link>
		<comments>http://dwjunkie.wordpress.com/2012/09/07/design-ssis-for-performance-and-scale-parallelism-strategies-part-1/#comments</comments>
		<pubDate>Fri, 07 Sep 2012 09:14:53 +0000</pubDate>
		<dc:creator>dwjunkie</dc:creator>
				<category><![CDATA[ETL]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false">https://dwjunkie.wordpress.com/?p=308</guid>
		<description><![CDATA[After looking at our baseline numbers I will now explain the parallelism strategies we are able to use with SSIS. &#8230;<p><a href="http://dwjunkie.wordpress.com/2012/09/07/design-ssis-for-performance-and-scale-parallelism-strategies-part-1/">Continue reading &#187;</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=308&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>After looking at our <font></font><font><a href="http://dwjunkie.wordpress.com/2012/07/04/design-ssis-for-performance-and-scale-baseline-tests/" target="_blank">baseline numbers</a></font><font></font> I will now explain the parallelism strategies we are able to use with SSIS. For this purpose I introduce my scale map.</p>
<h3>Scale map</h3>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/scale-map.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="Scale map" border="0" alt="Scale map" src="http://dwjunkie.files.wordpress.com/2012/09/scale-map_thumb.png?w=494&#038;h=298" width="494" height="298" /></a></p>
<p>The map is divided into partition strategies and insert strategies. I will start with functional partitioned tables, since a single partition behaves similar to a non-partitioned table. </p>
<h3>Direct inserts into single partition</h3>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image.png"><img style="background-image:none;margin:0 10px 5px 0;padding-left:0;padding-right:0;display:inline;float:right;padding-top:0;border-width:0;" title="image" border="0" alt="image" align="right" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb.png?w=100&#038;h=89" width="100" height="89" /></a>The focus of this design pattern is to achieve the maximum performance when loading into a single partition / table. The target table is partitioned by month and I load with multiple streams directly into one partition (heap and clustered Index). The design looks like this: </p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image19.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2012/09/image19_thumb.png?w=505&#038;h=145" width="505" height="145" /></a></p>
<p>The data is split equally into multiple streams within the dataflow and I tested 4, 8 and 16 streams in parallel.&#160; In order to split the data I use a modulo function within the “<em>conditional split</em>” task:</p>
<pre class="csharpcode"><span class="kwrd">DAY</span>(L_SHIPDATE) % 4 == 0</pre>
<p>If you need more then 4 destinations you have to add more dataflows to your package because the data source is limited with ~200MB/s. So a good balance between source and destination is 1:4. </p>
<p>Let’s have a look at the performance numbers:</p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image1.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb1.png?w=532&#038;h=196" width="532" height="196" /></a></p>
<p>As you can see I got a nearly linear performance scale when loading into a heap table with no fragmentation (blue line). What’s interesting is, that even for a clustered index table I have a linear scale with no fragmentation, if it is a <a href="http://dwjunkie.wordpress.com/2012/07/04/design-ssis-for-performance-and-scale-baseline-tests/" target="_blank">minimal logged operation</a> (orange line)! The difference in case of speed is the sort that I have to pay for a clustered index.</p>
<p>If we are not minimal logged, we see no performance increase but the fragmentation becomes higher and higher.</p>
<h4>Choose the right distribution key</h4>
<p>In order to create multiple data streams I use a modulo function as mentioned before. But be careful which column you choose for data distribution. In case of a clustered index table the distribution column has to match the clustered index column. You can see the performance differences below:</p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image2.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb2.png?w=456&#038;h=228" width="456" height="228" /></a></p>
<p>Why? Because if the data distribution is not align with the clustered index the parallel bulk inserts hit the same pages and are blocked by each other. You can see this behavior in the following picture with lots of resource locks on the same pages. </p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image3.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb3.png?w=498&#038;h=146" width="498" height="146" /></a></p>
<h4>Sorting on a heap</h4>
<p>During investigations of the execution plans I also saw a sort for a heap load. </p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image4.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb4.png?w=518&#038;h=75" width="518" height="75" /></a></p>
<p>This sort appears because the heap table is partitioned. And there is nothing we can do about, even pre-sorting the data by partition key does not help.</p>
<h4>Conclusion</h4>
<p>As a summary the main important things you should remember: </p>
<ul>
<li>Loading with multiple streams into a heap table is the fastest option </li>
<li>Loading into a clustered index is acceptable if it is minimally logged and ranges are not overlapping (hard to achieve). </li>
<li>The SSIS data source is limited with ~200MB/s </li>
<li>A good balance of sources &amp; destinations is 1:4. If you need more, create more dataflows.</li>
<li>Choose the right data distribution key</li>
</ul>
<h3>Partition switch &#8211; strategy to avoid sort</h3>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image5.png"><img style="background-image:none;margin:0 10px 0 0;padding-left:0;padding-right:0;display:inline;float:right;padding-top:0;border-width:0;" title="image" border="0" alt="image" align="right" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb5.png?w=100&#038;h=72" width="100" height="72" /></a></p>
<p>The next pattern I want to take a closer look is partition switch. The test case itself looks like this:</p>
<ul>
<li>Target table is partitioned by month </li>
<li>Load with 1 stream into staging table </li>
<li>Switch staging table into target heap or clustered index table </li>
<li>1, 8, 16 month in parallel </li>
</ul>
<p>The corresponding SSIS package looks like this. Every data flow is responsible for one month of data. The T-SQL tasks handles the partition switch command.</p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image6.png"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb6.png?w=529&#038;h=140" width="529" height="140" /></a></p>
<p>So let’s see what performance we get out of this pattern. The two pictures below show the overall duration in seconds and the write performance in rows per second. The time I measured was the load time from the beginning till data was available in the partition table, which means that the switch operation is included.</p>
<p><a href="http://dwjunkie.files.wordpress.com/2012/09/image7.png"><img style="background-image:none;margin:0 0 5px;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="http://dwjunkie.files.wordpress.com/2012/09/image_thumb7.png?w=531&#038;h=229" width="531" height="229" /></a> </p>
<p>The blue line shows the performance of a heap table and the red one of clustered index load. Just for comparison the blue dotted lines show the performance of a heap load with direct inserts. I compare on moth of data to a direct insert with 1 stream and 8 month of data to 8 parallel streams and so on.</p>
<h4>Conclusion</h4>
<p>Compared to the first design pattern, what do we learn from this one:</p>
<ul>
<li>As we can see partition switch is faster then direct inserts, because we avoid the sort by partition key now </li>
<li>The clustered index load is a bit slower, because we have to also pay the price for the sort by the clustered index </li>
<li>We have a nearly linear scale </li>
</ul>
<h3>Summary</h3>
<p>This article introduced the design pattern for non- und functional partitioned tables. We have seen how we can apply these techniques in SSIS, what the advantages and disadvantages are and how they perform.</p>
<p>But what if loading one month of data is not fast enough? I will take up this question in my next post where we will have a look on hash partitioning and how this technique can help us for further scale.</p>
<h4>References</h4>
<ul>
<li><a href="http://dwjunkie.wordpress.com/2012/05/03/design-ssis-for-performance-and-scale/">Design SSIS for Performance and Scale</a></li>
<li><a href="http://dwjunkie.wordpress.com/2012/07/04/design-ssis-for-performance-and-scale-baseline-tests/">Design SSIS for Performance and Scale – Baseline tests</a></li>
<li><a href="http://dwjunkie.wordpress.com/2011/12/21/ssis-performance-tuning-methodology-and-general-approach/">SSIS Performance Tuning – Methodology and general approach</a></li>
<li><a href="http://dwjunkie.wordpress.com/2012/06/12/ssis-performance-tuningmonitoring-data-collection/">SSIS Performance Tuning – Monitoring &amp; Data Collection</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dwjunkie.wordpress.com/308/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dwjunkie.wordpress.com/308/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=308&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dwjunkie.wordpress.com/2012/09/07/design-ssis-for-performance-and-scale-parallelism-strategies-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f689d3738d06abf2088d70dbf03b69f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dwjunkie</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/scale-map_thumb.png" medium="image">
			<media:title type="html">Scale map</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image19_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Back to business</title>
		<link>http://dwjunkie.wordpress.com/2012/09/06/back-to-business/</link>
		<comments>http://dwjunkie.wordpress.com/2012/09/06/back-to-business/#comments</comments>
		<pubDate>Thu, 06 Sep 2012 09:42:47 +0000</pubDate>
		<dc:creator>dwjunkie</dc:creator>
				<category><![CDATA[Big Data]]></category>
		<category><![CDATA[Cloud]]></category>

		<guid isPermaLink="false">https://dwjunkie.wordpress.com/?p=286</guid>
		<description><![CDATA[It was a little bit quite here in the last few weeks, which does not mean that there is nothing &#8230;<p><a href="http://dwjunkie.wordpress.com/2012/09/06/back-to-business/">Continue reading &#187;</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=286&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>It was a little bit quite here in the last few weeks, which does not mean that there is nothing more to write about. I decided to take a little break during the summertime and get some fresh ideas. Before start talking about some new stuff, I first need to finish some open topics:</p>
<ul>
<li><a href="http://dwjunkie.wordpress.com/ssis/" target="_blank">SSIS Design for Performance &amp; Scale</a>: A follow up on the parallelism strategies will be published very soon.</li>
<li><a href="http://dwjunkie.wordpress.com/pdw/" target="_blank">Parallel Data Warehouse – POC lessons learned</a>: The 3rd part of this series is still missing, but I promise to deliver very soon.</li>
</ul>
<p>What’s next? I’m currently do some testing and investigation in new technology trends like Big Data and Windows Azure<a href="http://dwjunkie.files.wordpress.com/2012/09/bigdata.jpg"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;float:right;border-top:0;border-right:0;padding-top:0;" title="bigdata" border="0" alt="bigdata" align="right" src="http://dwjunkie.files.wordpress.com/2012/09/bigdata_thumb.jpg?w=244&#038;h=121" width="244" height="121" /></a>.</p>
<p>It think there is a lot of confusion around Big Data out there. This is now a hype topic like SOA has been. But my hope is, and I’m convinced, that it will have a happy end. If you tell people right now you are a Big Data architect they will probably say “Cool”. But don’t mention you are a SOA guy, I guess they will start laughing “poor boy”. </p>
<p>The point with Big Data is, that everybody talks about, but I don’t see any projects around Big Data technologies like Hadoop, Hive, Pig, etc. Currently Big Data is often used as synonym of handling large amount of data. But it’s much more then a data size topic. So I will take up this trend and give some insights how it could fit to classical data warehouse architectures. I think it’s time that these technologies <a href="http://www.hadapt.com/" target="_blank">get closer together</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dwjunkie.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dwjunkie.wordpress.com/286/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dwjunkie.wordpress.com&#038;blog=22255561&#038;post=286&#038;subd=dwjunkie&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://dwjunkie.wordpress.com/2012/09/06/back-to-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/f689d3738d06abf2088d70dbf03b69f3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">dwjunkie</media:title>
		</media:content>

		<media:content url="http://dwjunkie.files.wordpress.com/2012/09/bigdata_thumb.jpg" medium="image">
			<media:title type="html">bigdata</media:title>
		</media:content>
	</item>
	</channel>
</rss>
