<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://richmondsql.org/cs2007/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'data warehouse', 'technical', and 'presentation'</title><link>http://richmondsql.org/cs2007/search/SearchResults.aspx?o=DateDescending&amp;tag=data+warehouse,technical,presentation&amp;orTags=0</link><description>Search results matching tags 'data warehouse', 'technical', and 'presentation'</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Re: 7/17/2008's Presentation - Lessons learned from the Colonial Williamsburg Data Warehouse Project</title><link>http://richmondsql.org/cs2007/forums/p/44/65.aspx#65</link><pubDate>Mon, 21 Jul 2008 14:29:48 GMT</pubDate><guid isPermaLink="false">2e8a3759-4cfd-4c9f-8103-2483fc393c1e:65</guid><dc:creator>rptodd</dc:creator><description>&lt;p&gt;Sorry it took me so long to reply.&amp;nbsp; I spent about an hour putting together a reply, only to receive an error when I clicked post, and not being able to go &amp;quot;back&amp;quot; to it in my browser history.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Here&amp;#39;s the recreation of the post:&lt;/p&gt;
&lt;p&gt;Thanks for the kind words.&amp;nbsp; I definitely enjoyed doing the presentation, and am glad it was timely.&amp;nbsp; You should make sure you attend next month&amp;#39;s meeting, as I believe Steve is going to be talking about package frameworks exclusively.&lt;/p&gt;
&lt;p&gt;As for how we&amp;#39;re grouping our configurations, we have the one DB: SSISConfig, and then inside we roughly group the configurations into tables, with 1 table per package.&amp;nbsp; Then within the packages/tables we&amp;#39;re breaking things down into logical groupings using the ConfigurationFilter column in the table (I&amp;#39;ll show examples in a second), which corresponds to the Configuration String which you can see here, from the Package Configuration dialog in the package:&lt;/p&gt;
&lt;p&gt;&lt;img height="451" alt="Package Configurations" src="http://s9s.net/Package%20Configurations%201.JPG" width="632" align="left" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This is a screen capture from the package I talked about in the presenatation: the MasterPackage, which controls the execution of all the packages we execute in our ETL process.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s some data from that table, which is SSISConfig.dbo.MasterPackage.&amp;nbsp; It&amp;#39;s got the column headers in the first row, followed by comma separated values in the subsequent rows:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;&lt;u&gt;ConfigurationFilter&lt;/u&gt;,&amp;nbsp;&lt;u&gt;ConfiguredValue&lt;/u&gt;,&amp;nbsp;&lt;u&gt;PackagePath&lt;/u&gt;,&amp;nbsp;&lt;u&gt;ConfiguredValueType,&lt;/u&gt;&amp;nbsp;&lt;u&gt;DefaultConfiguredValue&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;ConnectionStrings,&amp;nbsp;&amp;lt;connection string stuff&amp;gt;,&amp;nbsp;\Package.Connections[Ticketing DataMart].Properties[ConnectionString],&amp;nbsp;String,&amp;nbsp;&amp;lt;connection string stuff&amp;gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;ConnectionStrings,&amp;lt;connection string stuff&amp;gt;,&amp;nbsp;\Package.Connections[Foundation Datawarehouse ADO.net].Properties[ConnectionString],&amp;nbsp;String,&amp;nbsp;&amp;lt;connection string stuff&amp;gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;DisableFlags,&amp;nbsp;False,&amp;nbsp;\Package.Variables[User::DisableTicketing].Properties[Value],&amp;nbsp;Boolean,&amp;nbsp;False&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;DisableFlags,&amp;nbsp;False,&amp;nbsp;\Package.Variables[User::DisableMergeProcess].Properties[Value],&amp;nbsp;Boolean,&amp;nbsp;False&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;DisableFlags,&amp;nbsp;False&amp;nbsp;\Package.Variables[User::DisableHouseholding].Properties[Value],&amp;nbsp;Boolean,&amp;nbsp;False&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;It&amp;#39;s not the best example of how we utilize the configurations, but it&amp;#39;s still useful.&amp;nbsp; The entries I&amp;#39;ve chosen to show can be used to change the settings&amp;nbsp;of the various connection strings the package uses, and to enable and disable entire steps of the ETL quite easily.&amp;nbsp; Trust me, this has been very useful on a regular basis.&amp;nbsp; You may also notice that we don&amp;#39;t have the TruncateConfiguredValue column in this table.&amp;nbsp; That&amp;#39;s because we don&amp;#39;t have any special settings in this table for when we want to Truncate the values in our data warehouse.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s another example using one of the individual dimensions in our data warehouse, which is where we do a lot more utilization of the Default and Truncate columns.&amp;nbsp; This is from SSISConfig.dbo.DimCustomer, which controls the settings for the conformed Customer package/dimension that I talked so much about in the presentation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;&lt;strong&gt;&lt;u&gt;ConfigurationFilter&lt;/u&gt;,&amp;nbsp;&lt;u&gt;ConfiguredValue&lt;/u&gt;,&amp;nbsp;&lt;u&gt;PackagePath&lt;/u&gt;,&amp;nbsp;&lt;u&gt;ConfiguredValueType,&lt;/u&gt;&amp;nbsp;&lt;u&gt;DefaultConfiguredValue&lt;/u&gt;,&lt;/strong&gt;&amp;nbsp;&lt;strong&gt;&lt;u&gt;TruncateConfiguredValue&lt;/u&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;ConnectionStrings,&amp;nbsp;E:\SSIS\ETL\FDW\Test\Customer\,&amp;nbsp;\Package.Variables[User::OutputFilePath].Properties[Value],&amp;nbsp;String,&amp;nbsp;E:\SSIS\ETL\FDW\Test\Customer\,&amp;nbsp;E:\SSIS\ETL\FDW\Test\Customer\&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;ConnectionStrings,&amp;lt;connection string stuff&amp;gt;&amp;nbsp;\Package.Connections[Ticketing Transaction Source System - OLEDB].Properties[ConnectionString],&amp;nbsp;String,&amp;lt;connection string stuff&amp;gt;,&amp;lt;connection string stuff&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;RawFile,&amp;nbsp;E:\SSIS\ETL\FDW\Test\Customer\Checksum.raw,&amp;nbsp;\Package.Variables[User::RawFileLocation].Properties[Value],&amp;nbsp;String,&amp;nbsp;E:\SSIS\ETL\FDW\Test\Customer\Checksum.raw,&amp;nbsp;E:\SSIS\ETL\FDW\Test\Customer\Checksum.raw&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;div&gt;Truncate,&amp;nbsp;True,&amp;nbsp;\Package\Truncate DimCustomer.Properties[Disable],&amp;nbsp;Boolean,&amp;nbsp;True,&amp;nbsp;False&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;
&lt;div&gt;Here you can see a couple more ways that we leverage the SSIS package configurations.&amp;nbsp; Not only are we still using the Connection Strings like we were in the MasterPackage: to control which DBs and servers the package was connecting to.&amp;nbsp; We&amp;#39;re also using it to control where the package is physically located on the server itself.&amp;nbsp; This way we can have multiple versions of packages residing on the same server.&amp;nbsp; This is great for running both Test and Production on the same server, for example.&amp;nbsp; The last line also shows how we can control the execution of an individual package using the Disable property.&amp;nbsp; I have to make a quick caveat here.&amp;nbsp; Some people feel this is not a best practice, and have run into problems with it.&amp;nbsp; It&amp;#39;s worked well for us, but if you wanted to do things differently, such as putting a variable into your package, then checking that variable in your step, most commonly in an Execute SQL Task or an OLE DB Source, go for it.&amp;nbsp; That last entry enables or disables an Execute SQL Task in the package which contains TRUNCATE dbo.DimCustomer.&amp;nbsp; If it&amp;#39;s enabled, it truncates, if it&amp;#39;s disabled it doesn&amp;#39;t get executed.&amp;nbsp; Simple.&amp;nbsp; Handy.&amp;nbsp; We then use the Default and Truncate columns from the stored procedures we&amp;#39;ve built for controlling the configurations.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Last thing for this post.&amp;nbsp; This is not a concept we came up with ourselves.&amp;nbsp; We took an existing concept, the 2 pass configuration using SQL Server Tables for storage of the configurations, and added a simple idea, which is storing the typical configurations with the current configurations.&amp;nbsp; This means that the majority of information on how to set this all up is contained both in BOL and on the web.&amp;nbsp; Just take those tutorials and add a couple of columns, and your&amp;#39;e off and running.&amp;nbsp; Here&amp;#39;s a good article, for example: &lt;a href="http://www.mssqltips.com/tip.asp?tip=1405"&gt;http://www.mssqltips.com/tip.asp?tip=1405&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Hope this helps, and post any other questions you have,&lt;/div&gt;
&lt;div&gt;Rick&lt;/div&gt;</description></item><item><title>7/17/2008's Presentation - Lessons learned from the Colonial Williamsburg Data Warehouse Project</title><link>http://richmondsql.org/cs2007/forums/p/44/63.aspx#63</link><pubDate>Fri, 18 Jul 2008 17:21:31 GMT</pubDate><guid isPermaLink="false">2e8a3759-4cfd-4c9f-8103-2483fc393c1e:63</guid><dc:creator>rptodd</dc:creator><description>&lt;p&gt;&amp;nbsp;Hey guys, I really enjoyed presenting last night, and look forward to doing it again at some point in the future!&lt;/p&gt;&lt;p&gt;&amp;nbsp;I wanted to get everyone the presentations, but I couldn&amp;#39;t figure out a way to upload a file here, so I put them here instead: &lt;a href="http://s9s.net/SSIS%20Configurations.pptx" title="SSIS Configurations" target="_blank"&gt;ssis configurations&lt;/a&gt; and &lt;a href="http://s9s.net/The%20Conformed%20Customer%20Dimension.pptx" title="The Conformed Customer Dimension"&gt;The Conformed Customer Dimension&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&amp;nbsp;If you have any questions or comments about the presentation please post them here, and I&amp;#39;ll do my best to answer you.&lt;/p&gt;&lt;p&gt;&amp;nbsp;Cheers,&lt;/p&gt;&lt;p&gt;Rick&lt;/p&gt;&lt;p&gt;P.S. If you come to Colonial Williamsburg, drop me a line, and I&amp;#39;ll try to spare a little time to show you around! &lt;br /&gt;&lt;/p&gt;</description></item></channel></rss>