<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-21258359</id><updated>2012-02-09T08:02:50.453-06:00</updated><category term='Madison'/><category term='Derived Column'/><category term='ETL Design'/><category term='SQL Saturday'/><category term='Code Camp'/><category term='Data Mining'/><category term='Dimensional Model'/><category term='SharePoint'/><category term='PerformancePoint'/><category term='Gemini'/><category term='Oracle'/><category term='Presentations'/><category term='PASS'/><category term='BI Conference'/><category term='Steel City SQL'/><category term='Excel Services'/><category term='sparsity'/><category term='Travel'/><category term='Configurations'/><category term='Conference'/><category term='SSAS'/><category term='BI'/><category term='Kilimanjaro'/><category term='SQL Server Magazine'/><category term='Lookup Transform'/><category term='Process'/><category term='SSIS'/><category term='Execute SQL'/><title type='text'>SQL BI</title><subtitle type='html'>An effort to synthesize and share experiences with Microsoft Business Intelligence and Data Mining software.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21258359.post-708665957615739777</id><published>2010-02-26T00:13:00.002-06:00</published><updated>2010-02-26T00:15:12.061-06:00</updated><title type='text'>Moving to Serve You Better</title><content type='html'>I am in the process of moving my blog to &lt;a href="http://www.sqlbipro.com"&gt;www.sqlbipro.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-708665957615739777?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/708665957615739777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=708665957615739777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/708665957615739777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/708665957615739777'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2010/02/moving-to-serve-you-better.html' title='Moving to Serve You Better'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-1722419715839209724</id><published>2009-06-17T15:33:00.001-05:00</published><updated>2009-06-17T15:33:32.348-05:00</updated><title type='text'>SQL Server Version Numbers</title><content type='html'>&lt;p&gt;A colleague of mine was setting up a development environment to mirror the deployment environment of our client.&amp;#160; In the course of his activities, he needed to know the version number for SQL Server 2005 with SP3.&amp;#160; Here is a handy link for decoding version number information in the future: &lt;a title="http://support.microsoft.com/default.aspx/kb/321185" href="http://support.microsoft.com/default.aspx/kb/321185"&gt;http://support.microsoft.com/default.aspx/kb/321185&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-1722419715839209724?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/1722419715839209724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=1722419715839209724' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1722419715839209724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1722419715839209724'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2009/06/sql-server-version-numbers.html' title='SQL Server Version Numbers'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-7415709368627110078</id><published>2009-06-10T11:51:00.001-05:00</published><updated>2009-06-10T11:51:28.589-05:00</updated><title type='text'>Pensacola SQL Saturday 14</title><content type='html'>&lt;p&gt;Thanks to my attentive and brilliant audience at my &lt;em&gt;Introduction to MDX for SQL Programmers&lt;/em&gt; presentation at SQL Saturday 14, Pensacola.&amp;#160; Should you desire assistance with any of the examples, feel free to contact me with SQL Saturday in the subject line.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-7415709368627110078?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/7415709368627110078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=7415709368627110078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7415709368627110078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7415709368627110078'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2009/06/pensacola-sql-saturday-14.html' title='Pensacola SQL Saturday 14'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-5372798168844609103</id><published>2009-06-10T11:47:00.002-05:00</published><updated>2009-06-10T11:53:20.189-05:00</updated><title type='text'>BI Solutions for a Tough Economy</title><content type='html'>&lt;p&gt;My colleague Derek Comingore and myself will be presenting our three-part series of BI Solutions for a Tough Economy, sponsored via SQL Server and Windows IT Pro magazines in July.&amp;#160; &lt;/p&gt;  &lt;p&gt;We will be covering three main solutions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Predictive Analytics with Data Mining&lt;/li&gt;    &lt;li&gt;Metric visibility with Excel Services&lt;/li&gt;    &lt;li&gt;Dashboard creation with PerformancePoint Services&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can register here at &lt;a href="http://windowsitpro.com/elearning/index.cfm?fuseaction=dynamic&amp;amp;v=5168&amp;amp;p=5209&amp;amp;code=&amp;amp;eventid=29&amp;amp;code=EPTrdBIelearnJuly09061009_PASS"&gt;Windows IT Pro&lt;/a&gt;.&amp;#160; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-5372798168844609103?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/5372798168844609103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=5372798168844609103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/5372798168844609103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/5372798168844609103'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2009/06/bi-solutions-for-tough-economy.html' title='BI Solutions for a Tough Economy'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-1933300530133444261</id><published>2009-03-28T15:51:00.001-05:00</published><updated>2009-03-28T15:52:19.774-05:00</updated><title type='text'>If Surgical Teams worked like Some Software Teams</title><content type='html'>&lt;object id="MediaPlayer" width=320 height=240 type="application/x-ms-wmp"&gt; &lt;param name="URL" value="http://mediadl.microsoft.com/mediadl/www/d/defyallchallenges/vsts/v2a/Spots/SXVS_0149_30_320x175.wmv"&gt;&lt;param name="AutoStart" value="true"&gt;&lt;param name="uiMode" value="full"&gt;&lt;param name="stretchToFit" value="true"&gt;&lt;script type='text/javascript'&gt;&lt;/script&gt;&lt;object id="MediaPlayer" width=320 height=240 classid="CLSID:6BF52A52-394A-11D3-B153-00C04F79FAA6" visible="true"&gt; &lt;param name="URL" value="http://mediadl.microsoft.com/mediadl/www/d/defyallchallenges/vsts/v2a/Spots/SXVS_0149_30_320x175.wmv"&gt;&lt;param name="AutoStart" value="true"&gt;&lt;param name="uiMode" value="full"&gt;&lt;param name="stretchToFit" value="true"&gt;&lt;/object&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-1933300530133444261?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/1933300530133444261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=1933300530133444261' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1933300530133444261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1933300530133444261'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2009/03/if-surgical-teams-worked-like-some.html' title='If Surgical Teams worked like Some Software Teams'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-6379847049107542797</id><published>2009-01-29T17:00:00.001-06:00</published><updated>2009-01-29T17:00:35.640-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSAS'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle Date Numbers to SQL Server Datetime</title><content type='html'>&lt;p&gt;File this under ‘blogging so I never have to recall this from memory’.&amp;#160; One of my current clients is extracting data from an Oracle database to be loaded into a SQL Server Analysis Services (SSAS) cube.&amp;#160; Of course, the date columns contain floats, representing the number of days since January 1, 1900 in the integer portion and the fraction is the portion of the date (time of day) for this datetime.&lt;/p&gt;  &lt;p&gt;Fortunately, we are only concerned with the date grain of data, so I am able to use dateadd(day, &amp;lt;&amp;lt;column with oracle&amp;gt;&amp;gt;,’1/1/1900’) to calculate a SQL Server date time (this is a 2005 project).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-6379847049107542797?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/6379847049107542797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=6379847049107542797' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/6379847049107542797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/6379847049107542797'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2009/01/oracle-date-numbers-to-sql-server.html' title='Oracle Date Numbers to SQL Server Datetime'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-2116755528418571074</id><published>2009-01-28T08:00:00.000-06:00</published><updated>2009-01-28T08:00:00.489-06:00</updated><title type='text'>Thank You Sara Ford</title><content type='html'>&lt;p&gt;I owe a quick thanks to Sara Ford, author of the book &lt;a href="http://www.amazon.com/Microsoft-Visual-Studio-Tips-Sara/dp/0735626405/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1232822714&amp;amp;sr=8-1"&gt;Microsoft Visual Studio Tips&lt;/a&gt; in addition to creating the Visual Studio ‘Tip of the Day’ feed.&amp;#160; That said, while reading her book, I picked up on a particularly helpful tidbit that is helping me maintain this blog, Windows Live Writer.&amp;#160; Live Writer is a great solution for creating and publishing blog posts, it even allows me to author a post ‘on the fly’, scheduling it for later or simply storing it for further refinement.&amp;#160; Even better, it plays exceptionally well with a non-MSFT blogging environment like Blogspot.&lt;/p&gt;  &lt;p&gt;You can follow Sara’s other work on her blog at &lt;a title="http://blogs.msdn.com/saraford/" href="http://blogs.msdn.com/saraford/"&gt;http://blogs.msdn.com/saraford/&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-2116755528418571074?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/2116755528418571074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=2116755528418571074' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2116755528418571074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2116755528418571074'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2009/01/thank-you-sara-ford.html' title='Thank You Sara Ford'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-7089514019579332946</id><published>2009-01-27T11:45:00.001-06:00</published><updated>2009-01-27T11:45:47.042-06:00</updated><title type='text'>HP Mini 1035nr</title><content type='html'>&lt;p&gt;As Circuit City continues to circle the drain, on their way to a corporate version of a Darwin Award, I had the opportunity to pickup a netbook.&amp;#160; In particular, the HP Mini 1035nr.&amp;#160; At a very attractive price point, the device has a 95% keyboard, critical to touch-typing things like this blog post.&amp;#160; Which, I am doing while seated at lunch at the Nashville, TN location of the &lt;a href="http://beerknurd.com"&gt;Flying Saucer&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The device has stellar battery life, i have gone over 3 hours without a charge, using wireless sporadically and wailing away on Word and Excel.&lt;/p&gt;  &lt;p&gt;I was able to install the beta of Windows 7, per instructions &lt;a href="http://blogs.msdn.com/dglover/archive/2008/09/11/creating-a-bootable-usb-windows-vista-drive.aspx"&gt;here&lt;/a&gt;.&amp;#160; I am amazed as to the cold boot time from flicking a switch to the Windows desktop.&amp;#160; So far, these ‘stats’ are 1-gig of RAM per the licensing agreement allowing HP to equip these devices with Windows XP.&lt;/p&gt;  &lt;p&gt;I have ordered a 2-gig RAM stick for $20.&amp;#160; Stay tuned for updates on other mods, including swapping my 60-gig, 4200 rpm drive for SSD storage.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-7089514019579332946?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/7089514019579332946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=7089514019579332946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7089514019579332946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7089514019579332946'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2009/01/hp-mini-1035nr.html' title='HP Mini 1035nr'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-1609339793635596596</id><published>2009-01-24T08:38:00.000-06:00</published><updated>2009-01-24T08:39:30.558-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server Magazine'/><title type='text'>SQL Server Magazine Blog</title><content type='html'>&lt;p&gt;Last week, I was invited to share my thoughts on Microsoft BI on the SQL Server Magazine, Business Intelligence Blog.&amp;#160; I have no immediate plans to halt posting here at sqlbi.blogspot.com, but the majority of my writing last week was posted to SQL Mag.&amp;#160; You can read my initial SQL Server Magazine posts &lt;a href="http://www.sqlmag.com/businessintelligence/bi/"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-1609339793635596596?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/1609339793635596596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=1609339793635596596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1609339793635596596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1609339793635596596'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2009/01/sql-server-magazine-blog.html' title='SQL Server Magazine Blog'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-6869697237330091740</id><published>2009-01-11T07:37:00.003-06:00</published><updated>2009-01-11T07:43:56.668-06:00</updated><title type='text'>Resolutions, Resolutions</title><content type='html'>&lt;span style="font-family: arial;"&gt;After a rather interesting first full week back in the office, following my two week vacation to close out the year, I am announcing to the vast audience here my only professional resolutions for 2009.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;Update this blog with relevant content more frequently. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;To further hone and refine my public speaking skills by presenting at least quarterly.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-6869697237330091740?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/6869697237330091740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=6869697237330091740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/6869697237330091740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/6869697237330091740'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2009/01/resolutions-resolutions.html' title='Resolutions, Resolutions'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-4739823250220415958</id><published>2008-11-30T08:58:00.002-06:00</published><updated>2008-11-30T09:03:02.481-06:00</updated><title type='text'>Upcoming Event - Pensacola SQL Users Group</title><content type='html'>&lt;span style="font-family:arial;"&gt;I am looking forward to my presentation this week on "MDX for SQL Programmers".  I am at this very moment finishing some new demos for my upcoming session at the &lt;a href="http://www.pensacolasql.com/2008/11/08/holiday-users-group-meeting-last-one-for-2008/"&gt;Pensacola SQL Users Group&lt;/a&gt; on December 4.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-4739823250220415958?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/4739823250220415958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=4739823250220415958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/4739823250220415958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/4739823250220415958'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/11/upcoming-event-pensacola-sql-users.html' title='Upcoming Event - Pensacola SQL Users Group'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-2155758414519216024</id><published>2008-10-07T07:39:00.002-05:00</published><updated>2008-10-07T07:55:04.149-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Madison'/><category scheme='http://www.blogger.com/atom/ns#' term='Kilimanjaro'/><category scheme='http://www.blogger.com/atom/ns#' term='BI Conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Gemini'/><title type='text'>Microsoft BI Conference, Day One</title><content type='html'>&lt;span style="font-family:verdana;font-size:130%;"&gt;&lt;strong&gt;Gemini, Madison, Kilimanjaro and More&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I know when a company puts on a show like the &lt;a href="http://www.msbiconference.com/Pages/default.aspx"&gt;Microsoft BI Conference&lt;/a&gt;, there are going to be announcements, and pre-announcements of new products and features.  The bullets:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;strong&gt;Project Gemini&lt;/strong&gt; - A self-serve BI application, rooted in Excel and an in-memory datastore the primary goal of which is to allow user creation of SSAS databases.  Databases that are then managable and not 'spread marts' or 'spreadsheet purgatory'.  Donald Farmer actually demonstrated filtering and sorting 20 millon rows on a thousand dollar quad-core pc.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;strong&gt;Project Madison - &lt;/strong&gt;With the &lt;a href="http://www.blogger.com/www.datallegro.com"&gt;DATAllegro&lt;/a&gt; purchase, Microsoft is quickly integrating the newly aquired MPP capability into the Madison release targeted for the first half of 2010.  Jesse Franklin demonstrated clean-cache queries against a 150 terabyte data store accross 24 instances of SQL Server.  The response times were screaming.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;strong&gt;Project Kilimanjoro - &lt;/strong&gt;This will be a focused release of SQL Server, that I understand to be a re-architecture (read euthanasia) of the failed Report Builder functionality in SQL 2005.  Instead, a set of task focused add-ins to Excel that will pave the way for component based report writing.  No demo, but very exciting rhetoric.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-2155758414519216024?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/2155758414519216024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=2155758414519216024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2155758414519216024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2155758414519216024'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/10/microsoft-bi-conference-day-one.html' title='Microsoft BI Conference, Day One'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-2567767659063265761</id><published>2008-09-12T17:10:00.002-05:00</published><updated>2008-09-12T17:16:18.250-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PerformancePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>Countdown to Microsoft BI Conference</title><content type='html'>&lt;span style="font-family:verdana;"&gt;The project scheduling fates have smiled upon me and I will be attending the &lt;a href="http://www.msbiconference.com/Pages/default.aspx"&gt;2nd Annual Microsoft Business Intelligence Conference&lt;/a&gt;, October 6-8 in Seattle, WA.  As I will not be presenting, this is the first conference in years, that I will be attending as a pure attendee.  If anyone out there is attending or if you have any tips for visitors to the Seattle area, please let me know.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-2567767659063265761?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/2567767659063265761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=2567767659063265761' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2567767659063265761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2567767659063265761'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/09/countdown-to-microsoft-bi-conference.html' title='Countdown to Microsoft BI Conference'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-4728623373961857944</id><published>2008-09-09T14:01:00.002-05:00</published><updated>2008-09-09T14:09:41.895-05:00</updated><title type='text'>Caffeine and WiFi, Wooo hooo</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Thanks to Starbucks and AT&amp;amp;T, you can trade a little personal information for free wifi nearly anywhere on the planet.  Get a &lt;/span&gt;&lt;a href="https://www.starbucks.com/card/default.asp"&gt;&lt;span style="font-family:verdana;"&gt;Starbucks Card&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;, use it once a month, and get 2-hours of free wifi Internet access from AT&amp;amp;T.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;Knowing my profession, personal coffee habits, and the amount of travel I do, getting into a Starbucks to use the card is not going to be a problem.  Second, with a location within walking distance of every point on the globe, we are one step closer to universal Internet access.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-4728623373961857944?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/4728623373961857944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=4728623373961857944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/4728623373961857944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/4728623373961857944'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/09/caffeine-and-wifi-wooo-hooo.html' title='Caffeine and WiFi, Wooo hooo'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-7647293203472731268</id><published>2008-08-22T05:15:00.003-05:00</published><updated>2008-08-22T05:28:12.649-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Process'/><title type='text'>When Processes Break</title><content type='html'>&lt;span style="font-family:verdana;"&gt;I was on-site with one of my current clients, an instantly recognized leader in insurance.  The cube my team was using for the day was a typical 'hotel cube' given to traveling consultants.  As we cleared the desk to do some work, I noticed a snappy little publication covered in 3-D graphics.  The purpose of the document seemed to communicate the virtues of finding defects early, as opposed to late in the software develolpment process.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;The priceless comment from one of my senior team members was something like "...everybody knows that, but nobody does anything about it..."&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-7647293203472731268?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/7647293203472731268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=7647293203472731268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7647293203472731268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7647293203472731268'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/08/when-processes-break.html' title='When Processes Break'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-7406305305678242943</id><published>2008-08-21T06:20:00.003-05:00</published><updated>2008-08-21T06:29:57.317-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dimensional Model'/><category scheme='http://www.blogger.com/atom/ns#' term='SSAS'/><category scheme='http://www.blogger.com/atom/ns#' term='sparsity'/><title type='text'>File Under SSAS Demo Creation</title><content type='html'>&lt;span style="font-family:verdana;"&gt;In the course of creating a demo for a potential client, my team made the following observation. While the time dimension is always crucial to a BI solution, for a laptop portable demo stay away from models that incorporate two (or more) time dimensions. For example, in Hospitality refrain from using a model with Check-In and Check-Out dates, instead consider using Check-In Date (or Check-Out Date) and a measure indicating the interval, for example Nights. This helps avoid a sparse cube with few aggregatable date pair combinations.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;Obviously, in a production environment the client may have valid reasons to employ both a Check-In and Check-Out date dimension role.  However, production hardware deployment won't have the constraints of an all-up demo environment executing SQL Server, SharePoint and PerformancePoint an a single (laptop) machine.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-7406305305678242943?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/7406305305678242943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=7406305305678242943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7406305305678242943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7406305305678242943'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/08/file-under-ssas-demo-creation.html' title='File Under SSAS Demo Creation'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-5254791001212767099</id><published>2008-08-19T19:15:00.002-05:00</published><updated>2008-08-19T19:19:30.610-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel Services'/><title type='text'>Techmixer University</title><content type='html'>&lt;span style="font-family:verdana;"&gt;It was my distinct pleasure to be a speaker at &lt;a href="http://www.techmixeruniversity.com/TechMixer_University.html"&gt;Techmixer University&lt;/a&gt; this afternoon.  I was able to successfully demonstrate using SharePoint and Excel Services to rapidly create dashboards for performance monitoring.  Stay tuned for an update as to where to get the presentation and demonstration files.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;To those of you that attended, thanks again for your time, attention and questions.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-5254791001212767099?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/5254791001212767099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=5254791001212767099' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/5254791001212767099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/5254791001212767099'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/08/techmixer-university.html' title='Techmixer University'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-3208008146835965493</id><published>2008-08-02T08:01:00.004-05:00</published><updated>2008-08-02T08:36:32.141-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Travel'/><title type='text'>Travel Size Supermarket</title><content type='html'>&lt;span style="font-family:arial;"&gt;My work has required varying levels of travel, from out on Sunday - back on Friday "Road Warrior" trips with never the same night in the same city, to the simple overnight for an early am meeting or software demonstration.  I am fortunate that less than half of my work requires travel by air.  However, for those of you racking up the frequent flyer miles, or who just prefer minimalist packing, &lt;a href="http://www.minimus.biz/"&gt;Minimus&lt;/a&gt; has a wide selection of creature comforts for you next &lt;em&gt;Planes, Trains and Automobiles&lt;/em&gt; adventure.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial;"&gt;From a &lt;a href="http://www.minimus.biz/detail.aspx?ID=7801"&gt;micro roll of paper towels&lt;/a&gt; to &lt;a href="http://www.minimus.biz/detail.aspx?ID=7554"&gt;sink-sized Woolite&lt;/a&gt; for on-the-road laundry (in the event of an unplanned extra night for instance).&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-3208008146835965493?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/3208008146835965493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=3208008146835965493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/3208008146835965493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/3208008146835965493'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/08/travel-size-supermarket.html' title='Travel Size Supermarket'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-1858471319112550248</id><published>2008-08-01T07:08:00.002-05:00</published><updated>2008-08-01T07:13:54.526-05:00</updated><title type='text'>Belated Congratulations</title><content type='html'>&lt;span style="font-family:arial;"&gt;Join me in congratulating (however belated) a fellow &lt;a href="http://www.steelcitysql.org/"&gt;Steel City SQL &lt;/a&gt;board member, Robert Cain for earning Most Valued Professional status from Microsoft.  Robert works tirelessly on a number of user groups, including &lt;a href="http://www.steelcitysql.org/"&gt;Steel City SQL&lt;/a&gt;, he blogs seemingly a continuous stream of relevant posts at &lt;a href="http://www.arcancecode.com/"&gt;www.arcancecode.com&lt;/a&gt;.  I urge you to add it to your feedlist.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-1858471319112550248?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/1858471319112550248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=1858471319112550248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1858471319112550248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1858471319112550248'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/08/belated-congratulations.html' title='Belated Congratulations'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-645345317343570140</id><published>2008-07-26T06:21:00.005-05:00</published><updated>2008-07-26T06:46:45.646-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='ETL Design'/><title type='text'>ETL Specification, Part 1</title><content type='html'>Specifications are vital to the success of a data warehouse project, just as good specifications are vital to ANY software project. Specifications are important not for their page count or weight, but for the thought required to commit their contents to paper. I have seen too many "White Board Cowboys" create a so-called specification as a series of scribbles on a dry erase board. I am a big fan of White Boards, but they are a collaboration tool. A good spec should communicate the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;What the developer is to do&lt;/li&gt;&lt;li&gt;How the developer will know when it the work is done&lt;/li&gt;&lt;li&gt;Anticipate and eliminate points of potential confusion&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Item #3 is the whole reason for the specification. It is in thinking the design through in which truly calendar-busting problems are resolved. A recent client suggested that because development tools (and frameworks) had evolved to such an efficiency point, the task of software design was obsolete. Nothing, in my opinion, could be further from the truth.&lt;/p&gt;&lt;p&gt;"...I have always found that plans are useless but planning is indispensable." - Dwight D. Eisenhower&lt;/p&gt;&lt;p&gt;More on this subject shortly...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-645345317343570140?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/645345317343570140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=645345317343570140' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/645345317343570140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/645345317343570140'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/07/etl-specification-part-1.html' title='ETL Specification, Part 1'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-2108705987990138180</id><published>2008-01-30T11:35:00.000-06:00</published><updated>2008-01-30T11:40:38.452-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PASS'/><category scheme='http://www.blogger.com/atom/ns#' term='Steel City SQL'/><title type='text'>Steel City SQL, part 2</title><content type='html'>The official version of my volunteer work with the Steel City SQL User Group.  As &lt;a href="http://steelcitysql.org/bod.aspx"&gt;Director of Program Development&lt;/a&gt;, I churn through my address book to find speakers to deliver presentations and software/book publishers willing to grant us review copies of their wares.  If you have either, drop me a line at &lt;a href="mailto://bralston@comframe.com"&gt;ComFrame&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-2108705987990138180?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/2108705987990138180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=2108705987990138180' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2108705987990138180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2108705987990138180'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/01/steel-city-sql-part-2.html' title='Steel City SQL, part 2'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-8239611960880531369</id><published>2008-01-29T06:53:00.000-06:00</published><updated>2008-01-29T07:03:05.281-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PASS'/><title type='text'>Steel City SQL Users - Speakers Needed</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;Having spoken at user groups around the Southeastern United States, I recognize that a vibrant and active technical community carries with it many benefits.  That said, I am volunteering my time this year to assist my local group, &lt;a href="http://steelcitysql.org"&gt;Steel City SQL Users&lt;/a&gt; to schedule speakers and develop other programs of value for our audience.&lt;br /&gt;&lt;br /&gt;If you know of anyone who either may be interested in addressing this group directly or may in turn know someone interested in delivering a presentation, please don't hesitate to reach me via my blog or via the &lt;a href="http://steelcitysql.org/contactus.aspx"&gt;contact us&lt;/a&gt; link at Steel City SQL's site.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-8239611960880531369?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/8239611960880531369/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=8239611960880531369' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/8239611960880531369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/8239611960880531369'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/01/steel-city-sql-users-speakers-needed.html' title='Steel City SQL Users - Speakers Needed'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-3234863287518187461</id><published>2008-01-23T02:36:00.001-06:00</published><updated>2008-01-23T02:38:56.409-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code Camp'/><title type='text'>Alabama .Net Code Camp 6</title><content type='html'>Save the date.  Code Camp v 6.0 is scheduled for February 23, 2008, in Huntsville, Alabama.  If you are interested in speaking, sponsoring or attending, the details can be found at the &lt;a href="http://www.alabamacodecamp.com/"&gt;Alabama .Net Code Camp&lt;/a&gt; site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-3234863287518187461?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/3234863287518187461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=3234863287518187461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/3234863287518187461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/3234863287518187461'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2008/01/alabama-net-code-camp-6.html' title='Alabama .Net Code Camp 6'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-3090217868115597379</id><published>2007-11-12T14:09:00.000-06:00</published><updated>2007-11-12T14:20:09.132-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Saturday'/><title type='text'>SQL Saturday Presentation Available</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_w-7IbpDaLM0/Rzi05sSJUSI/AAAAAAAAAA4/f8bzoNhbBd4/s1600-h/DSCN0893.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_w-7IbpDaLM0/Rzi05sSJUSI/AAAAAAAAAA4/f8bzoNhbBd4/s400/DSCN0893.jpg" alt="" id="BLOGGER_PHOTO_ID_5132050678621491490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;My presentation on Data Mining with SQL 2005 will soon be available for download &lt;a href="http://www.comframe.com/resources.htm"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks again to everybody for a wonderful experience.  This was beyond a doubt the best produced, best-attended, Code Camp event I have participated in as a speaker.  The facilities at Seminole Community College were just first-class, as pictured here in the main atrium.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-3090217868115597379?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/3090217868115597379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=3090217868115597379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/3090217868115597379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/3090217868115597379'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/11/sql-saturday-presentation-available.html' title='SQL Saturday Presentation Available'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_w-7IbpDaLM0/Rzi05sSJUSI/AAAAAAAAAA4/f8bzoNhbBd4/s72-c/DSCN0893.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-1804942233762699910</id><published>2007-11-09T22:13:00.001-06:00</published><updated>2007-11-12T14:20:27.050-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Saturday'/><title type='text'>On My Way to SQL Saturday!</title><content type='html'>&lt;img id="BLOGGER_PHOTO_ID_" style="margin: 0px 0px 10px 10px; clear: both; float: right;" alt="" src="http://1.bp.blogspot.com/_w-7IbpDaLM0/RzUv6MSJURI/AAAAAAAAAAw/HRpWea-hwLU/s320/DSCN0889.jpg" border="0" /&gt;Flying into Orlando today for my presentation on data mining with SQL 2005, I have a few traveling observations.&lt;br /&gt;&lt;br /&gt;1.  Southwest Airlines new, business-friendly boarding process rocks!&lt;br /&gt;2. The Orlando International Airport is my favorite, among major-city terminals.&lt;br /&gt;3. The Hertz Neverlost GPS system blows.  A batting average of .333 is great if you are a major league ballplayer.  However, most consumers of these services (devices) can achieve that level of proficiency without a paper map.  I guess I will await, patiently the general availability of the promising &lt;a href="http://www.dash.net/"&gt;Dash&lt;/a&gt;.   In the meantime, truth in advertising would suggest Hertz rename the product to EVERLOST.&lt;br /&gt;&lt;br /&gt;Hardly BI related, but it is my blog.&lt;div style="clear: both; text-align: right;"&gt;&lt;a href="http://picasa.google.com/blogger/" target="ext"&gt;&lt;img src="http://photos1.blogger.com/pbp.gif" alt="Posted by Picasa" style="border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="middle" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-1804942233762699910?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/1804942233762699910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=1804942233762699910' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1804942233762699910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1804942233762699910'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/11/on-my-way-to-sql-saturday_09.html' title='On My Way to SQL Saturday!'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_w-7IbpDaLM0/RzUv6MSJURI/AAAAAAAAAAw/HRpWea-hwLU/s72-c/DSCN0889.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-7298510955774622889</id><published>2007-11-08T07:43:00.000-06:00</published><updated>2007-11-08T07:46:08.869-06:00</updated><title type='text'>PerformancePoint Server Evaluation Editions</title><content type='html'>Microsoft announced yesterday the availability of PerformancePoint Server 2007 evaluation editions.  You can get the 32-bit version &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=6372C24F-67DD-42DD-B034-748907B23420&amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is surely one of the more exciting products released in the last few years that will enable organizations to drive strategy down to the individual worker, via a "BI for the Masses" execution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-7298510955774622889?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/7298510955774622889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=7298510955774622889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7298510955774622889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7298510955774622889'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/11/performancepoint-server-evaluation.html' title='PerformancePoint Server Evaluation Editions'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-6420287683508822367</id><published>2007-11-08T07:25:00.000-06:00</published><updated>2007-11-08T07:42:33.006-06:00</updated><title type='text'>High Tech Barn Raising!</title><content type='html'>While I have never participated in a physical barn-raising myself, the good folks at Tech Birmingham have managed to stage an awe-inspiring event this weekend.  The plan is starting tomorrow, November 9 and finishing Sunday night, November 11, to complete a beta release of an Internet startup.&lt;br /&gt;&lt;br /&gt;If you are interested in the concept, or participating, you can get more information at  &lt;a href="http://www.birminghamstartup.com/?t=anon"&gt;Startup Birmingham&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Unfortunately, I will not be participating this year, as I have previously committed to speaking at &lt;a href="http://www.sqlsaturday.com"&gt;SQL Saturday&lt;/a&gt;.  See you Saturday if you are in the Orlando area.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-6420287683508822367?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/6420287683508822367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=6420287683508822367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/6420287683508822367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/6420287683508822367'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/11/high-tech-barn-raising.html' title='High Tech Barn Raising!'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-3503742232189060757</id><published>2007-10-30T10:13:00.000-05:00</published><updated>2007-10-30T10:19:48.692-05:00</updated><title type='text'>Wanted: Talented BI Professionals</title><content type='html'>Wondering why you have not seen a fresh blog post lately?  It is because the BI practice at ComFrame is growing at a record pace.  If you are an exceptionally talented, experienced BI professional and are interested in joining a premier consulting organization and overall great place to work, please email your resume to work@comframe.com.  Please place sqlbi.blogspot.com in the subject header so your resume will get immediate attention.  Third party submissions will not be considered.  If you want to learn more about ComFrame, check out &lt;a href="http://www.comframe.com"&gt;www.comframe.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-3503742232189060757?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/3503742232189060757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=3503742232189060757' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/3503742232189060757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/3503742232189060757'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/10/wanted-talented-bi-professionals.html' title='Wanted: Talented BI Professionals'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-1451811783906482986</id><published>2007-10-09T16:23:00.000-05:00</published><updated>2007-10-09T16:25:45.450-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Camp'/><title type='text'>Presentation Available</title><content type='html'>My presentation from Alabama .Net Code Camp V is now available &lt;a href="http://www.comframe.com/resources.htm"&gt;here&lt;/a&gt;. I am already looking forward to the next Code Camp event.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-1451811783906482986?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/1451811783906482986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=1451811783906482986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1451811783906482986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1451811783906482986'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/10/presentation-available.html' title='Presentation Available'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-7465601036431883377</id><published>2007-10-08T11:36:00.000-05:00</published><updated>2007-10-08T11:41:44.535-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Camp'/><title type='text'>Alabama .Net Code Camp V</title><content type='html'>&lt;p&gt;Well the &lt;a id="ogwh" title="Fifth Alabama .Net Code Camp" href="http://www.alabamacodecamp.com/"&gt;Fifth Alabama .Net Code Camp&lt;/a&gt; is in the books. I would like to express my humble gratitude to attendees who drove from the ends of the state to attend the event. If you had half as much fun as I did, then it was worth the time and effort. As promised, my presentation "Everything I Ever Wanted to Know About Beginning Business Intelligence with SQL 2005" will be available via &lt;a id="jrb8" title="ComFrame's website" href="http://www.comframe.com/resources.htm"&gt;ComFrame's website&lt;/a&gt; soon. As soon as I know the files are available, I will post an update here so the news can easily get out to RSS readers.&lt;/p&gt;&lt;p&gt;If you are interested in the methodology discussed to 'bootstrap' db connections and store configurations in the database, please read my post on &lt;a href="http://sqlbi.blogspot.com/2006/09/ssis-configurations-keep-your-friends.html"&gt;SSIS configurations&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I have added some content to the SQLBI blog, notably a list of web resources I referenced in Saturday's discussion, and a few links to Amazon.com for the book titles I mentioned as well. Finally, I would ask that if you enjoyed the discussion on Saturday, or anything that I am writing here, please make use of the comment links available on my posts to send feedback.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Finally, I am working on a post to go up by the middle of this week, that will walk through the steps (and screen shots) I used to create the examples and demos in Saturday's discussion. Stay tuned here for updates.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-7465601036431883377?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/7465601036431883377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=7465601036431883377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7465601036431883377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/7465601036431883377'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/10/well-fifth-alabama.html' title='Alabama .Net Code Camp V'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-2112339330514953384</id><published>2007-09-21T08:32:00.001-05:00</published><updated>2007-09-21T09:20:42.526-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><title type='text'>File Download via HTTP</title><content type='html'>SSIS has some interesting components for 'out of the box' support to obtain data via FTP and even Web Services.  However, in creating a demonstration project for a class I am teaching, I found the need to download files from a web page via http.  I found a cool little script on &lt;a href="http://sqljunkies.com/Article/A77EA078-79A6-48D4-B55C-14D103820413.scuk"&gt;sqljunkies &lt;/a&gt;that did just the trick.&lt;br /&gt;&lt;br /&gt;To further describe the problem, I am interested in downloading the weekly performance statistics for Division 1 College Football, graciously made available by the NCAA &lt;a href="http://web1.ncaa.org/d1mfb/download.jsp?year=2007"&gt;here&lt;/a&gt;.  There are three files, one each for the schedule, offensive and defensive statistics.  I really want the package to fire on a weekly basis, and get the new stats updating my data mart.&lt;br /&gt;&lt;br /&gt;As a brute-force, first-pass effort, I created package variables to represent the remote file uri, the local filename and local path.  In the case of the Offensive production statistics, these variables were named RemoteUriOffense, LocalFileNameOffense, and Extract_Home.  Unfortunately, one of the downsides of the script task is having to use some variable at the package (or container) level and explicitly declare that variable as being available for read access by the script.  An example of that is below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_w-7IbpDaLM0/RvPMHatec2I/AAAAAAAAAAU/-BSww5Fc1LU/s1600-h/script_task_variables.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_w-7IbpDaLM0/RvPMHatec2I/AAAAAAAAAAU/-BSww5Fc1LU/s320/script_task_variables.png" alt="" id="BLOGGER_PHOTO_ID_5112654429796856674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Substituting the variable names declared as readable by the script, in the script code as illustrated below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_w-7IbpDaLM0/RvPOdKtec3I/AAAAAAAAAAc/m6Q0gqExKAs/s1600-h/script_code.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 544px; height: 77px;" src="http://4.bp.blogspot.com/_w-7IbpDaLM0/RvPOdKtec3I/AAAAAAAAAAc/m6Q0gqExKAs/s400/script_code.png" alt="" id="BLOGGER_PHOTO_ID_5112657002482266994" border="0" /&gt;&lt;/a&gt;While the script task from sqljunkies does get the job done, there are a few disadvantages.  First and foremost, creation of the variables for each of the files.  I could have done some manipulation of a single set of variables, iterating through for all three files, and using a single script task, firing the task once for each file instance.  Additionally, given the variable infrastructure needed for the script task, and the probability this is not the last time I will ever get data via http, this may be a good candidate to create a custom component.&lt;br /&gt;&lt;br /&gt;Among the advantages of the custom component, all the logic for file download would be centralized.  What happens, in my three-script components when the a change occurs to the download logic (for instance)?  Yep, I am replicating the change for each extract.  True enough this problem is solved by using a single script task and iterating over a list of files to download.&lt;br /&gt;&lt;br /&gt;However, this may just be the perfect task on which to base a first custom component.  Stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-2112339330514953384?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/2112339330514953384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=2112339330514953384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2112339330514953384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2112339330514953384'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/09/file-download-via-http.html' title='File Download via HTTP'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_w-7IbpDaLM0/RvPMHatec2I/AAAAAAAAAAU/-BSww5Fc1LU/s72-c/script_task_variables.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-8968612490541409136</id><published>2007-09-13T17:21:00.000-05:00</published><updated>2007-09-13T17:24:06.270-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Derived Column'/><title type='text'>Expressions and the Data Flow Pipeline</title><content type='html'>&lt;span class="on menu-top" id="formatbar_FontSize" style="display: block;" title="Font size"&gt;File this under the "more than one way to skin a cat" topic. I am creating a demo for one of my upcoming presentations, and I noticed a technique for cleaning data from extracts that escaped my earlier reading/training/lab time.&lt;br /&gt;&lt;br /&gt;In particular, I am creating some SSIS packages to load Comma Separated Variable (csv) files. Only these files, from an extract provider over which I have little or no control, contain embedded quotes in them. For example a data record would read:&lt;br /&gt;&lt;br /&gt;"column1 value", "column2 value", "column3 value"&lt;br /&gt;&lt;br /&gt;This did not strike me as odd until the flat file connection manager for this extract had NO desire to see the quotes as part of the field delimiter. Unfortunately, my first pass at loading this data created a table with the following values.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;div&gt;   &lt;table id="a7y." border="0" cellpadding="3" cellspacing="0" width="50%"&gt;     &lt;tbody&gt;     &lt;tr&gt;       &lt;td style="background-color: rgb(51, 102, 255);" width="33%"&gt;         &lt;span style="color: rgb(255, 255, 255);"&gt;Column 1&lt;br /&gt;       &lt;/span&gt;       &lt;/td&gt;       &lt;td style="background-color: rgb(51, 102, 255);" width="33%"&gt;         &lt;span style="color: rgb(255, 255, 255);"&gt;Column 2&lt;br /&gt;       &lt;/span&gt;       &lt;/td&gt;       &lt;td style="background-color: rgb(51, 102, 255);" width="33%"&gt;         &lt;span style="color: rgb(255, 255, 255);"&gt;Column 3&lt;br /&gt;       &lt;/span&gt;       &lt;/td&gt;     &lt;/tr&gt;     &lt;tr&gt;       &lt;td width="33%"&gt;         "Value"&lt;br /&gt;     &lt;/td&gt;       &lt;td width="33%"&gt;         "Value"&lt;br /&gt;     &lt;/td&gt;       &lt;td width="33%"&gt;         "Value"&lt;br /&gt;     &lt;/td&gt;     &lt;/tr&gt;     &lt;/tbody&gt;   &lt;/table&gt; &lt;br /&gt; Obviously, NOT what I wanted, even in a staging table, with which to begin my Transform and Load processing.&lt;br /&gt;&lt;br /&gt;One way or another, I would have to strip the double quotes out of the data, and for some reason I latched onto the idea of using an expression within an SSIS Derived Column transformation.&lt;br /&gt;&lt;br /&gt;Soon enough, I had the Derived Column transform, and was feeding it a steady diet of DT_STR columns from the Flat File Data Source.  It seemed as though surely the REPLACE function would suit my needs, but how to express the target expression is "?  To little surprise REPLACE(column1, ""","") is NOT what the SSIS Execution Engine is looking for.  Thankfully, in the books online Microsoft has furnished a reference for &lt;a title="common escape sequences" href="http://technet.microsoft.com/en-us/library/ms141001.aspx" id="roi7"&gt;common escape sequences&lt;/a&gt;.  In my case, " was just what the doctor ordered.  REPLACE(column1,"\"","") effectively stripped all of the quote characters from the data, leaving my staging table looking a little more appealing.&lt;br /&gt;&lt;br /&gt;Somewhere on the Web, I found a custom SSIS component to strip quotes from an extract.  That still may be worthwhile, as my candidate inbound set only had 50,000 or so records.&lt;br /&gt;&lt;br /&gt;If anyone out there reading this has ideas as to how to download files (using http), and without a Web Service, drop me a reply via the blog.  Perhaps that will be the subject of my next post.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-8968612490541409136?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/8968612490541409136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=8968612490541409136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/8968612490541409136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/8968612490541409136'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/09/file-this-under-more-than-one-way-to.html' title='Expressions and the Data Flow Pipeline'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-1869966111766683200</id><published>2007-09-06T15:50:00.000-05:00</published><updated>2007-09-06T16:31:17.433-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><title type='text'>The Dummy Script Task, or Conditional Execution 100</title><content type='html'>So I am working on building a data warehouse ETL system with SSIS.  Like so many times before, there may be certain steps in the process that I wish to execute, based on some condition.  Maybe it is just one of Larry Wall's virtues, &lt;a title="laziness" href="http://www.oreilly.com/catalog/opensources/book/larry.html" id="zs26"&gt;laziness&lt;/a&gt;, but I want a process to drive flawlessly whenever executed, 3pm or 3am, manually or automatically.  An example of this is truncation of destination tables in a data mart / data warehouse project in either a Continuous Integration environment or in an execution of a priming load.  To that end, I have employed the following trick I call the Dummy Script Task.  SSIS provides a nice mechanism to conditionally execute one task, based upon evaluation of an expression, constraint or both.&lt;br /&gt;&lt;br /&gt;Truncating the destination table is easy enough, using an Execute SQL Task.  However, creating the conditional execution is a less straightforward.  In order to employ conditional execution, the package must have two tasks in between which sits the conditional execution flow.  The Truncate Destination Table (Execute SQL Task) is just sitting in a Sequence Container (labeled "Reload_YN" for clarity), with no flow, conditional or otherwise onto which to create the condition.&lt;br /&gt;&lt;br /&gt;Enter the dummy script task.&lt;br /&gt;&lt;img style="margin: 1em 1em 0pt 0pt; width: 256px; height: 269px; float: left;" src="http://docs.google.com/File?id=dff6qwdf_40dc4br4gp" /&gt;&lt;br /&gt;The dummy script task is just that.  A Script Task from the toolbar, with NO CODE BEHIND IT!  The task merely serves as the initial end-point for a flow that will conditionally execute.  It could not be more simple, just drag a Script Task from the toolbar and optionally rename it.&lt;br /&gt;&lt;br /&gt;So as you will note from the figure at left, there is a blue data flow connecting the Script Task to the Truncate Destination Tables task.  The flow is further noted as conditional by the fx label attached to it.  Right mouse clicking a flow, and choosing the Edit selection presents you with a dialog similar to the one below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This dialog allows us to set the Truncate task to execute ONLY if one or more conditions are true.  I have created a package variable, called ReloadYN, of type boolean, that determines if tasks related only to a reload are to be executed.  Perhaps the subject of another post, the package variable can be set many ways, via a dtexec command line option, script, or in this case via an &lt;a title="indirect package configuration" href="http://sqlbi.blogspot.com/2006/09/ssis-configurations-keep-your-friends.html" id="l_lx"&gt;indirect package configuration&lt;/a&gt;.  By having this little gem in my standard Dimension and Fact table package templates, I know the entire database will be truncated (or not) on a consistent basis.  One more thing to not have to worry about.&lt;br /&gt;&lt;img id="qe_1" style="margin: 1em 1em 0pt 0pt; width: 320px; height: 272px; float: left;" src="http://docs.google.com/File?id=dff6qwdf_42r3qqf5c9" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Putting it all together&lt;/h2&gt;Based on the value of ReloadYN at run-time, either the Truncate Destination Tables task executes (wiping the slate clean for a new load/test) or not.  You can verify this by executing the package, or sequence container, from within Business Intelligence Developer Studio.  The 'skipped' task will turn neither red, yellow or green.  Execution continues at the first step following the Sequence Container.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-1869966111766683200?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/1869966111766683200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=1869966111766683200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1869966111766683200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1869966111766683200'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/09/so-i-am-working-on-building-data_06.html' title='The Dummy Script Task, or Conditional Execution 100'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-5269033265432414516</id><published>2007-08-30T23:35:00.000-05:00</published><updated>2007-08-30T23:49:18.793-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Saturday'/><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><category scheme='http://www.blogger.com/atom/ns#' term='Code Camp'/><title type='text'>Coming Soon to A Screen Near You</title><content type='html'>Ahh, the smell of bourbon and pigskin.  Football has returned to the South.  It is going to be a busy Fall season between gridiron action and the following teaching/speaking events on my calendar.&lt;br /&gt;&lt;br /&gt;September 25 - &lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032350309&amp;Culture=en-US"&gt;Microsoft Business Intelligence Boot Camp&lt;/a&gt;&lt;br /&gt;I will be conducting the program on SQL Server Integration Services for this Microsoft Partner event.&lt;br /&gt;&lt;br /&gt;October 6 - &lt;a href="http://www.alabamacodecamp.com"&gt;Alabama .Net Code Camp V&lt;/a&gt;&lt;br /&gt;A couple of abstracts have been submitted, stay tuned for details should I get an invitation.  Even if I am NOT speaking, I will be there.   Well worth it if you can get to Birmingham for a code-filled Saturday.&lt;br /&gt;&lt;br /&gt;November 10 - &lt;a href="http://www.sqlsaturday.com"&gt;SQL Saturday&lt;/a&gt;&lt;br /&gt;I will be doing a once more refined edition of my Data Mining with SQL Server 2005 presentation, with an eye to new features in SQL Server 2008.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-5269033265432414516?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/5269033265432414516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=5269033265432414516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/5269033265432414516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/5269033265432414516'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/08/coming-soon-to-screen-near-you.html' title='Coming Soon to A Screen Near You'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-4268559316725535951</id><published>2007-08-27T09:50:00.000-05:00</published><updated>2007-08-31T00:26:13.224-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PASS'/><category scheme='http://www.blogger.com/atom/ns#' term='Data Mining'/><title type='text'>SQL Saturday!</title><content type='html'>I have been invited to present on SQL Server Data Mining at the SQL Saturday event, in Orlando, Florida on November 10, 2007.  The event is sponsored by the Orlando Chapter of PASS and further details can be found at www.sqlsaturday.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-4268559316725535951?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/4268559316725535951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=4268559316725535951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/4268559316725535951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/4268559316725535951'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/08/i-have-been-invited-to-present-on-sql.html' title='SQL Saturday!'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-1424452021790201592</id><published>2007-08-24T15:15:00.000-05:00</published><updated>2007-08-31T00:27:03.666-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Execute SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Lookup Transform'/><title type='text'>SSIS Lookup Transforms and Varchar Natural Keys</title><content type='html'>A recent project required the use of inferred dimension members due to early arriving facts.  My initial thought was to do something like the figure below.  I would use the client natural key for an in-bound fact row, and first attempt to find it in the dimension using a Lookup transform and a cached reference set.  If the dimension key was found, it is pipelined to the Union All and eventually inserted into the fact table.  If the dimensional key was not located, the row was dispatched to the Add Inferred Client Member task.&lt;br /&gt;&lt;div id="img_05751050198306784" style="padding: 1em 0pt; text-align: left;"&gt;&lt;div id="img_3261692207057574" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img style="width: 402px; height: 119px;" src="http://docs.google.com/File?id=dff6qwdf_362wg8wkc3" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.blogger.com/post-edit.g?blogID=21258359&amp;amp;postID=1424452021790201592" alt="" /&gt;Essentially, this task would execute a T-SQL stored procedure to find the dimension key in the table and insert an inferred member if it is not found.  The primary benefit to this is being able to avoid the case sensitivity of the SSIS engine and instead have the matching logic be executed in SQL Server.  The row is then dispatched to the 2nd Pass Lookup.&lt;br /&gt;&lt;br /&gt;The 2nd Pass Lookup is a Lookup transform identical to the initial attempt to find a matching dimension member, except with reference set caching disabled.  This allows newly added rows, inserted by the Add Inferred Client Member task, to be part of the dimension lookup.  If for some reason the candidate row is not found at this stage (perhaps an error getting the inferred member inserted was not caught), the row has an ErrorReason column added via a Derived Column transform, and is sent into an error flow.  All inbound rows that find a dimension surrogate key in the 2nd Pass Lookup are moved into the destination (ie Production) fact table.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Caveat SSIS Developer&lt;/h2&gt;In this case the natural key for this dimension was a varchar datatype, and my initial impression was the use of a Lookup transformation would make the lookup of dimensional keys during fact table load straightforward.  Unfortunately, there is a difference in how SSIS and SQL server handle string comparisons.  SSIS executes a case-sensitive lookup.  A fact table candidate natural key of 'A1234' would not match a dimension key of 'a1234'.  Some lookup 'failures' in the initial lookup were actually case sensitivity differences.  The first-cut of this process actually was two lookups, with the Execute SQL task between them only to insert an inferred dimension member.  As duplicate natural keys for inferred members were inserted, the case sensitivity issue became evident.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-1424452021790201592?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/1424452021790201592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=1424452021790201592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1424452021790201592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1424452021790201592'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/08/ssis-lookup-transforms-and-varchar.html' title='SSIS Lookup Transforms and Varchar Natural Keys'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-2443186639470351255</id><published>2007-08-01T06:01:00.000-05:00</published><updated>2007-08-01T17:33:23.573-05:00</updated><title type='text'>Speaking In "LA"</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;It was my pleasure to be the featured speaker at the &lt;a href="http://www.loweraldotnet.org/"&gt;Lower Alabama .Net User Group&lt;/a&gt; (LANUG), in Mobile, AL on July 31, 2007.  The presentation was on the data mining features in SQL Server 2005 and can be downloaded as a &lt;a href="http://www.comframe.com/resources.htm"&gt;PDF&lt;/a&gt;.  I would like to add that Doug Greene and Matthew Hughes are doing a great job with a user group that just recently celebrated the beginning of their second year.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;As the post-presentation discussion swerved into dimensional data warehousing, there was some discussion on doing a dimensional data modeling session at the next Alabama .Net Code Camp.  If you are interested, please post a reply here or send me an email at bralston@comframe.com.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-2443186639470351255?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/2443186639470351255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=2443186639470351255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2443186639470351255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/2443186639470351255'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/08/speaking-in-la.html' title='Speaking In &quot;LA&quot;'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-1341049028245671887</id><published>2007-04-16T09:01:00.000-05:00</published><updated>2007-04-16T09:12:15.305-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code Camp'/><title type='text'>Alabama Code Camp IV</title><content type='html'>&lt;span style="font-family: verdana;"&gt;It was my distinct pleasure to be chosen as a speaker at the fourth &lt;a href="http://www.alabamacodecamp.com/"&gt;Alabama .Net Code Camp&lt;/a&gt; this past Saturday.  A few of the attendees of my presentation on Agile Database Techniques for .Net requested that I post a link to the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56E5B1C5-BF17-42E0-A410-371A838E570A&amp;amp;displaylang=en"&gt;Database Publication Wizard&lt;/a&gt;, a cool tool for moving data and structures from SQL Server databases via text files and SQL.&lt;br /&gt;&lt;br /&gt;The PowerPoint from the presentation (and supporting files for examples) will follow shortly.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-1341049028245671887?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/1341049028245671887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=1341049028245671887' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1341049028245671887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/1341049028245671887'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2007/04/alabama-code-camp-iv.html' title='Alabama Code Camp IV'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-115836707636196503</id><published>2006-09-15T19:15:00.000-05:00</published><updated>2006-09-17T03:27:26.943-05:00</updated><title type='text'>Popping the Integration Bubble</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Picture this, a team is nearing the end of a five-week development effort on a small Data Mart project.   A team of just three developers come to a screeching, abrubt halt because, in spite of dazzling specifications, and flawless design documentation, the code just doesn't play well together.  At this stage the schedule goes out the window, because the team is engaged in the very unscientific process of wack-a-mole engineering to 'stamp out' the integration errors.  The project and team in this example have just become witnesses to (as well as victims of) the Integration Bubble.&lt;br /&gt;&lt;br /&gt;The root cause of our example Integration Bubble is the lack of putting the team's artifacts into an environment in which they would interract (dare I say integration server) for five weeks.  It would stand to reason the most straightforward method for avoiding the IB is to integrate ALL of the executable artifacts early and often.  There are a variety of tools to do this, &lt;a href="http://msdn.microsoft.com/vstudio/default.aspx?pull=/library/en-us/dnvs05/html/TEDBPro.asp"&gt;Data Dude&lt;/a&gt; seems to be a promising IDE for the SQL Server database developer.  I have also enjoyed success with putting Continuous Integration Processes, together by using &lt;a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET"&gt;Cruise Control .Net&lt;/a&gt;,  &lt;a href="http://subversion.tigris.org/"&gt;Subversion &lt;/a&gt;and &lt;a href="http://nant.sourceforge.net/"&gt;NAnt&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The key point here is the longer code for any project is unintegrated, the more unpredictable the integration process is going to be.  To twist the Ben Franklin quote, "Don't intregrate tomorrow the defects you could solve today."&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-115836707636196503?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/115836707636196503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=115836707636196503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/115836707636196503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/115836707636196503'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2006/09/popping-integration-bubble.html' title='Popping the Integration Bubble'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-115833904387598532</id><published>2006-09-15T10:25:00.000-05:00</published><updated>2007-08-31T00:27:50.953-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Configurations'/><title type='text'>SSIS Configurations - Keep your friends close, your enemies closer</title><content type='html'>&lt;span style="font-family:verdana;"&gt;OK, the thinly-veiled "Godfather" paraphrase is only remotely associated with this topic, but stay with me there is a tie-in.&lt;br /&gt;&lt;br /&gt;In a recent effort to use SSIS for the ETL processing of a data mart, I found a  need to manage different configurations between production, test and individual developer sandboxes.  This is the nail for which package configurations is the hammer.  It soon became apparent that while we had indeed implemented "a" way of say, managing the different connection strings, for example.  Time would tell that we had missed something significant.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Our initial strategy had been to use Parent Packa&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;ge configurations t&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4755/2148/1600/old_pkg_config.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 236px;" src="http://photos1.blogger.com/blogger/4755/2148/320/old_pkg_config.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;o set the&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; Value property of the Connection String to the correct server, catalog, etc.  It turns out this works, but is not without it's disadvantages.  When you try to edit the package configured in this way, it is necessary to put the con&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;nection string in the Connection String Value property, because you are not in the execution environment, none has been set from the Parent Package.  Additionally, Expressions have to be used with the Connection Manager to accomplish the setting of the target value property with the parent package variable.  This is further complic&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;ated by having to 'remove' this &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Connection String value before committing the package to version control, lest the SSIS Server attempt to connect to the developer machine and not the server indicated by the package configuration.&lt;br /&gt;&lt;br /&gt;The better solution, it turns out, is to assign the Parent Package variable directly to the Connection String.  This way, the true power of runtime package configuration is reali&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4755/2148/1600/new_pkg_config.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4755/2148/320/new_pkg_config.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;zed. &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Using this method, a developer can set one Connection String value in the child package, commit the package to revision control and be confident th&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;e Production, Test, etc configuration value will be used when the package executes.  Furthermore, if all the developers on a team have identical properties for local execution, the values can remain set in the child package for the developer configuration, and overridden with the&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; correct Production, Test, etc configuration at execution in those environments.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;The final shot of setting the Connection String for the Data Mart connection manager is below.  If you have any suggestions or questions please post a follow-up.  Oh, the tie in to the post headline:  Basically set the Package Configuration Properties as close as you can to the intended property.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/4755/2148/1600/detail_new_pkg_config.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/4755/2148/320/detail_new_pkg_config.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-115833904387598532?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/115833904387598532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=115833904387598532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/115833904387598532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/115833904387598532'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2006/09/ssis-configurations-keep-your-friends.html' title='SSIS Configurations - Keep your friends close, your enemies closer'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21258359.post-113776893974929488</id><published>2006-01-20T08:37:00.000-06:00</published><updated>2006-01-20T08:55:39.763-06:00</updated><title type='text'>Data, Data Everywhere</title><content type='html'>&lt;span style="font-family: arial;"&gt;I have spent the better part of the last 20 years working on software projects that leveraged, in one way or another a database.   Software that analyzed banking customer profitability, retail sales, phone switch records, help desk tickets for a telephone utility, disease management, logistics to name a few.  That doesn't even consider the torrent of data being generated by activity on the Web or RFID.  What is a business to do with all of this data?  How are decision makers going to stay afloat in this flood of data?  How are managers going to find meaning (information) from the bits and bytes?&lt;br /&gt;&lt;br /&gt;Presently, there are data structures that can address part of this problem.  Data Warehousing/Mart structures permit users to conduct &lt;span style="font-style: italic;"&gt;hypothesis verification&lt;/span&gt;.  For example, division manager postulates "Widgets and Hoohas are draining our profitability".   She can then proove or disprove the theory via inquiry of the Financial Data Mart, for instance.&lt;br /&gt;&lt;br /&gt;This simply will not be suffiicient in the very near future.  As more and more databases, come online, the manager will require a smarter way of using the data.  Data Mining, using statistical and other modeling techniques to find patterns and relationships not readily apparent to even the knowlege worker, is how organizations may distance themselves from competition and draw themselves nearer to their partners and supply chain.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21258359-113776893974929488?l=sqlbi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqlbi.blogspot.com/feeds/113776893974929488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21258359&amp;postID=113776893974929488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/113776893974929488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21258359/posts/default/113776893974929488'/><link rel='alternate' type='text/html' href='http://sqlbi.blogspot.com/2006/01/data-data-everywhere.html' title='Data, Data Everywhere'/><author><name>Barry</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
