<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/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 'SSIS' and '2008 R2'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=SSIS,2008+R2&amp;orTags=0</link><description>Search results matching tags 'SSIS' and '2008 R2'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Forcing “Custom Properties” of a Data Flow Transformation to support DTS Expression</title><link>http://sqlblog.com/blogs/davide_mauri/archive/2013/01/30/forcing-custom-properties-of-a-data-flow-transformation-to-support-dts-expression.aspx</link><pubDate>Wed, 30 Jan 2013 16:48:22 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:47396</guid><dc:creator>manowar</dc:creator><description>&lt;p&gt;Today I was using a 3rd Party Data Flow component that has several Custom Properties for which I need to change some of their values at runtime using a DTS Expression.&lt;/p&gt;  &lt;p&gt;To mimic the situation let’s use the “Percentage Sampling” that has two Custom Properties:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/davide_mauri/image_27FF2363.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://sqlblog.com/blogs/davide_mauri/image_thumb_4E6106AE.png" width="406" height="79" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Of the two Custom Properties only some (one in this case) are available also outside that dataflow, so that they can be targeted by a DTS Expression. Such properties are listed under the “Misc.” section of Data Flow properties&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/davide_mauri/image_66F0A3FE.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://sqlblog.com/blogs/davide_mauri/image_thumb_7F140E59.png" width="399" height="318" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and also in the Property Expression Editor window:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/davide_mauri/image_2C28FB28.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://sqlblog.com/blogs/davide_mauri/image_thumb_2B50953E.png" width="574" height="344" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now, what if you need to make also the “hidden” custom properties available for DTS Expression usage? As you may have noticed, the &lt;em&gt;SamplingSeed&lt;/em&gt; is not exposed outside the Data Flow. I tried to search the web, but after several minutes I gave up since I wasn’t able to find anything that could help. I then started to look into the SSIS object model and I found a nice property named &lt;em&gt;expressionType &lt;/em&gt;in the &lt;em&gt;IDTSCustomProperty &lt;/em&gt;interface that tells to the engine if the property value can be specified using DTS Expression or not:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/bb510794.aspx" href="http://msdn.microsoft.com/en-us/library/bb510794.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb510794.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If the value is set to &lt;em&gt;Notify&lt;/em&gt; than the usage of DTS Expression is possible otherwise, if the property is set to &lt;em&gt;None&lt;/em&gt;, as the name implies, DTS Expression cannot be used.&lt;/p&gt;  &lt;p&gt;So all you need to do is to open the .dtsx file, look for the component you want to touch and its properties&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/davide_mauri/image_5C6FCFDE.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://sqlblog.com/blogs/davide_mauri/image_thumb_49BAD627.png" width="527" height="69" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and add (if not exists) or change the &lt;em&gt;expressionType&lt;/em&gt; attribute to &lt;em&gt;Notify&lt;/em&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/davide_mauri/image_221459FD.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://sqlblog.com/blogs/davide_mauri/image_thumb_7A6DDDD2.png" width="520" height="82" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Save the file and voilà, the property is now available for DTS Expression usage!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/davide_mauri/image_39CB9163.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="http://sqlblog.com/blogs/davide_mauri/image_thumb_401267F1.png" width="544" height="160" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now,&lt;strong&gt; just be aware that is a sort of an hack, so double check it works for you.&lt;/strong&gt; On the 3rd party components we’re using it works like a charm, and it just saved that day since without the ability to change some properties at run time, the deployment of our package in production could have been a nightmare.&lt;/p&gt;  &lt;p&gt;I tested this approach both on SQL Server 2012 and SQL Server 2008 and in both cases I hadn’t had any problems.&lt;/p&gt;  &lt;p&gt;Hope this helps someone &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style:none;border-left-style:none;border-bottom-style:none;border-right-style:none;" alt="Smile" src="http://sqlblog.com/blogs/davide_mauri/wlEmoticon-smile_186BEBC7.png" /&gt;, enjoy!&lt;/p&gt;</description></item><item><title>DTLoggedExec 1.1.2008.4 SP2 released!</title><link>http://sqlblog.com/blogs/davide_mauri/archive/2012/02/01/dtloggedexec-1-1-2008-4-sp2-released.aspx</link><pubDate>Wed, 01 Feb 2012 17:15:44 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:41493</guid><dc:creator>manowar</dc:creator><description>&lt;p&gt;I’ve released couple of hours ago the SP2 of my &lt;a title="DTLoggedExec" href="http://dtloggedexec.davidemauri.it" target="_blank"&gt;DTLoggedExec&lt;/a&gt; tool.&lt;/p&gt;  &lt;p&gt;For those who don’t know it, it’s a DTEXEC replacement, useful to execute SSIS and having logging provided right from the engine and not from the package itself.&lt;/p&gt;  &lt;p&gt;More info can be found here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://dtloggedexec.codeplex.com/" href="http://dtloggedexec.codeplex.com/"&gt;http://dtloggedexec.codeplex.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This SP2 release add an important feature to the CSV Log Provider. It's now possible to store a personalized label into each log, in order to make it easy to identify or group logs.&lt;/p&gt;  &lt;p&gt;Let's say, for example, that you have 10 packages in your ETL solution, and each time you have to load your data, you need to execute all those 10 packages. In other words , you have a batch made of 10 packages. It would be nice if all logs - one for each package - can be identified as a whole and grouped together, in order to quickly identify all the log of a articular batch. &lt;/p&gt;  &lt;p&gt;This will make things easier when you want to know the overal time consumed by each batch execution.&lt;/p&gt;  &lt;p&gt;The new &amp;quot;ExecutionLabel&amp;quot; attribute will help to achieve this. A useful ExecutionLabel can be obtained using SQL Server Agents Token. For example:&lt;/p&gt;  &lt;p&gt;LABEL=$(ESCAPE_SQUOTE(JOBID))_$(ESCAPE_SQUOTE(STRTDT))_$(ESCAPE_SQUOTE(STRTTM))&lt;/p&gt;  &lt;p&gt;&lt;b&gt;ChangeLog&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Updated the CSV Log Provider in order to write the status of the log file in the header.      &lt;ul&gt;       &lt;li&gt;An OPEN status means that the log file is being written. &lt;/li&gt;        &lt;li&gt;A CLOSED status means that the log files has been written correctly. &lt;/li&gt;        &lt;li&gt;A file can be loaded into the database log only if is in the CLOSED state.&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;CSV Log files have 2 additional rows in the header: one for the FileStatus and one for the ExecutionLabel values.      &lt;ul&gt;       &lt;li&gt;File format has been update to 4 from 3. (Only the header section of the file has been changed).&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;CSV Log Provider will now display EndTime value to the Console &lt;/li&gt;    &lt;li&gt;Updated the import-log-data.sql to correctly load file with format 3 (the old one) and 4 (the new one). &lt;/li&gt;    &lt;li&gt;Updated database schema to version 19 in order to store the new ExecutionLabel value&lt;/li&gt;    &lt;li&gt;Update samples in order to show how to use the new ExecuteLabel option&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As usual the download is available for free here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://dtloggedexec.codeplex.com/releases/81526/download/336490" href="http://dtloggedexec.codeplex.com/releases/81526/download/336490"&gt;http://dtloggedexec.codeplex.com/releases/81526/download/336490&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Spotlight session at PASS 2011 - Temporal Snapshot Fact Table</title><link>http://sqlblog.com/blogs/davide_mauri/archive/2011/05/29/spotlight-session-at-pass-2011-temporal-snapshot-fact-table.aspx</link><pubDate>Sun, 29 May 2011 13:44:59 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:35953</guid><dc:creator>manowar</dc:creator><description>&lt;p&gt;I’m very happy to announce that my proposal for the Spotlight session I’ve been invited to deliver at PASS 2011 has been accepted!&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Temporal Snapshot Fact Table&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;You are designing a BI Solution and your customer ask you to keep a snapshot of the status of all their documents (orders, insurances, contracts, bills...whatever the word &amp;quot;document&amp;quot; may mean) for all the days of the year. They have millions of documents and they want to have in their Data Warehouse all the data they have gathered right from the very first operating day.&lt;/p&gt;    &lt;p&gt;If you have 1 million of documents (on average) and you have to keep a snapshot of them for each one of the 365 days in a year, and you have 10 year of history, you're going to have a 3 billions table just to start with. That's a very big and challenging number, and you may have not the option to buy a Parallel Data Warehouse. &lt;/p&gt;    &lt;p&gt;In this session, we'll see how we can turn the usual snapshot tables into temporal table so that we can store time intervals in order to avoid data duplication, while keeping the Data Warehouse design usable by Analysis Services (that doesn't know what an interval is) and optimizing it to have very good performance even on standard hardware.&lt;/p&gt;    &lt;p&gt;The explained technique is a result of several month of research and has been applied to the Data Warehouse of an insurance company where we had to deal with two times the number said before. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The topic is very interesting and – I bet – very intriguing for many people working in BI and specially with Analysis Services, since it lacks the support of “time intervals” to define the validity period of a fact row. With my SolidQ Italian collegues we’ve been able to find a way to overcome this limitation, allowing the storage of daily snapshots of data with a very high efficency and performance.&lt;/p&gt;  &lt;p&gt;In this session I’m going to share everything we discovered with you. It will be really interesting, I can tell you! Probably one of the most advanced – yes simple - usage of SSAS and Many-To-Many relationship you’re going to see.&lt;/p&gt;</description></item><item><title>PASS Summit 2010 – BI Workshop</title><link>http://sqlblog.com/blogs/davide_mauri/archive/2010/06/30/pass-summit-2010-bi-workshop.aspx</link><pubDate>Wed, 30 Jun 2010 12:01:10 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:26596</guid><dc:creator>manowar</dc:creator><description>&lt;p&gt;PASS Summit 2010 Pre &amp;amp; Post conference &lt;a href="http://sqlpass.eventpoint.com/PrePostConferenceSessions"&gt;are out&lt;/a&gt;! This year I’ll deliver the “&lt;a href="http://sqlpass.eventpoint.com/topic/details/TF1588"&gt;Creating BI Solution from A to Z&lt;/a&gt;” seminar in which, as the title implies, attendees will see how to create a BI solution starting from scratch. Going through the dimensional modeling and the creation of the Datawarehouse, the implementation of the ETL process with SSIS, the creation of cube with Analysis Services and reports with Reporting Services with, if time permits, also a glance at PowerPivot, attendees will get a solid ground on the whole process that drives the creation of a BI solution.&lt;/p&gt;  &lt;p&gt;The workshop will also show all the best practices and the best methodological approach matured in more than 5 years of working in the BI field.&lt;/p&gt;  &lt;p&gt;If you’ll be working on BI or you already have a created an initial BI solution and you want to be sure you’re following the right path, this is workshop is for you!&lt;/p&gt;  &lt;p&gt;Don’t miss it!&lt;/p&gt;</description></item><item><title>DTLoggedExec 1.0 Stable Released!</title><link>http://sqlblog.com/blogs/davide_mauri/archive/2010/05/09/dtloggedexec-1-0-stable-released.aspx</link><pubDate>Sun, 09 May 2010 08:51:43 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:24955</guid><dc:creator>manowar</dc:creator><description>&lt;p&gt;After serveral years of development I’ve finally released the first non-beta version of &lt;a title="DTLoggedExec" href="http://dtloggedexec.davidemauri.it" target="_blank"&gt;DTLoggedExec&lt;/a&gt;! I’m now very confident that the product is stable and solid and has all the feature that are important to have (at least for me).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;DTLoggedExec 1.0     &lt;br /&gt;&lt;/strong&gt;&lt;a title="http://dtloggedexec.codeplex.com/releases/view/44689" href="http://dtloggedexec.codeplex.com/releases/view/44689"&gt;http://dtloggedexec.codeplex.com/releases/view/44689&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here’s the release notes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;FIRST NON-BETA RELEASE! :)&lt;/li&gt;    &lt;li&gt;Code cleaned up &lt;/li&gt;    &lt;li&gt;Added SetPackageInfo method to ILogProvider interface to make easier future improvements&lt;/li&gt;    &lt;li&gt;Deprecated the arguments 'ProfileDataFlow', 'ProfilePath', 'ProfileFileName'&lt;/li&gt;    &lt;li&gt;Added the new argument 'ProfileDataFlowFileName' that replaces the old 'ProfileDataFlow', 'ProfilePath', 'ProfileFileName' arguments&lt;/li&gt;    &lt;li&gt;Updated database scripts to support new reports&lt;/li&gt;    &lt;li&gt;Split releases in three different packages for easier maintenance and updates: DTLoggedExec Executable, Samples &amp;amp; Reports&lt;/li&gt;    &lt;li&gt;Fixed Issue #25738 (&lt;a href="http://dtloggedexec.codeplex.com/WorkItem/View.aspx?WorkItemId=25738"&gt;http://dtloggedexec.codeplex.com/WorkItem/View.aspx?WorkItemId=25738&lt;/a&gt;)&lt;/li&gt;    &lt;li&gt;Fixed Issue #26479 (&lt;a href="http://dtloggedexec.codeplex.com/WorkItem/View.aspx?WorkItemId=26479"&gt;http://dtloggedexec.codeplex.com/WorkItem/View.aspx?WorkItemId=26479&lt;/a&gt;)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To make things easier to maintain I’ve divided the original package in three different releases. One is the DTLoggedExec executable; samples and reports are now available in separate packages so that I can update them more frequently without having to touch the engine.&lt;/p&gt;  &lt;p&gt;Source code of everything is available through Source Code Control:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://dtloggedexec.codeplex.com/SourceControl/list/changesets" href="http://dtloggedexec.codeplex.com/SourceControl/list/changesets"&gt;http://dtloggedexec.codeplex.com/SourceControl/list/changesets&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As usual, comments and feebacks are more than welcome! (Just use Codeplex, please, so it will be easier for me to keep track of requests and issues)&lt;/p&gt;</description></item></channel></rss>