<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tech4Him - Technology with Integrity &#187; business intelligence</title>
	<atom:link href="http://blog.tech4him.com/tags/business-intelligence/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tech4him.com</link>
	<description>A Christian technology chaos wrangler and his thoughts</description>
	<lastBuildDate>Wed, 24 Mar 2010 23:15:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SSWUG Fall 2009 Virtual Conference Plan</title>
		<link>http://blog.tech4him.com/2009/10/sswug-fall-2009-virtual-conference-plan/</link>
		<comments>http://blog.tech4him.com/2009/10/sswug-fall-2009-virtual-conference-plan/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 11:16:29 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[SSAS]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[ssrs]]></category>
		<category><![CDATA[sswug]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=780</guid>
		<description><![CDATA[So the SSWUG Fall 2009 Virtual Conference begins today. I&#8217;ve setup at home to hibernate for hours watching the live and pre-recorded sessions on a wide range of SQL Server and business intelligence topics. An extra LCD monitor brought home, the trackball mouse from the office, headphones and webcam. The kitchen is stocked for my [...]]]></description>
			<content:encoded><![CDATA[<p>So the <a href="http://www.vconferenceonline.com/shows/fall09/uvc">SSWUG Fall 2009 Virtual Conference</a> begins today. I&#8217;ve setup at home to hibernate for hours watching the live and pre-recorded sessions on a wide range of SQL Server and business intelligence topics. An extra LCD monitor brought home, the trackball mouse from the office, headphones and webcam. The kitchen is stocked for my &#8220;conference&#8221; meals and snacks thanks to my lovely bride. I am ready!</p>
<p>Oh yeah, the sessions. I almost forgot. <img src='http://blog.tech4him.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-780"></span></p>

<p>If you are interested in knowing what sessions I plan to attend, here is the list.</p>
<h3>Day 1</h3>
<ul>
<li>Scheduled
<ul>
<li>Solving Business Pains with SQL Server Integration Services</li>
<li>Avoiding Common Analysis Services Mistakes</li>
<li>Live Session &#8211; DBA Survivor</li>
<li>Live Q&amp;A</li>
</ul>
</li>
<li>On-Demand
<ul>
<li>Enriching the Design of an Analysis Services Cube</li>
<li>Embedding Reporting Into Applications with the ReportViewer  Control</li>
<li>Add It Up: Analysis Services Aggregations</li>
<li>Aggravating Aggregations</li>
<li>On Call Duties</li>
<li>Configuring the Business Data Catalog</li>
</ul>
</li>
</ul>
<h3>Day 2</h3>
<ul>
<li>Scheduled
<ul>
<li>DW Dimension Table ETL with SSIS</li>
<li>7 Extraordinary Things To Do With Integration Services</li>
<li>DW Fact Table ETL with SSIS</li>
<li>SSAS Cube and Dimension Processing with SSIS</li>
<li>Q&amp;A</li>
</ul>
</li>
<li>On Demand
<ul>
<li>DBA Checklist</li>
<li>Administrating SQL Server Integration Services (SSIS)</li>
<li>ESB Toolkit 2.0 Overview</li>
<li>Database Change Process</li>
<li>Loading a Data Warehouse in SSIS</li>
<li>Implementing Messaging Solutions Using ESB Toolkit 2.0</li>
</ul>
</li>
</ul>
<h3>Day 3</h3>
<ul>
<li>Scheduled
<ul>
<li>Intro to SSAS 2008</li>
<li>PerformancePoint Services 101</li>
<li>Financial analytics with SQL Server Analysis Services</li>
<li>Full Spectrum Business Intelligence – aligning IT and Business in  the new world of data</li>
<li>Q&amp;A</li>
</ul>
</li>
<li>On Demand
<ul>
<li>Data mining for DBAs</li>
<li>Introduction to Sketch flow</li>
<li>SQL Statement Tuning with Showplan</li>
<li>Live Session- Get jQuery().ready; with Rachel Appel</li>
<li>SQL Statement Tuning with Indexing Strategies</li>
</ul>
</li>
</ul>
<p>So, that&#8217;s the plan. Obviously all the on-demands won&#8217;t be able to be completed each day but hopefully within the next week I can get a look at each of them. There is always the hope of that one golden nugget out of each session.</p>
<p>Blessings.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">
<table border="1" cellspacing="0" cellpadding="5" width="800" bordercolor="#999999">
<tbody>
<tr>
<td width="115">Date/Time</td>
<td width="180">Session</td>
<td width="372">Description</td>
<td width="70">Speaker</td>
<td width="21">Rm</td>
</tr>
<tr valign="top" bgcolor="#d2dfe6">
<td align="middle">10/21 8:00:00 AM<br />
<em>-to-</em><br />
10/21 8:29:00 AM</td>
<td><a href="#">Keynote</a></td>
<td></td>
<td>Stephen<br />
Wynkoop</td>
<td align="middle">A</td>
</tr>
</tbody>
</table>
</div>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=780&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/10/sswug-fall-2009-virtual-conference-plan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Job] BI/Database Developer &#8211; Christian Mission</title>
		<link>http://blog.tech4him.com/2009/10/job-bidatabase-developer-christian-mission/</link>
		<comments>http://blog.tech4him.com/2009/10/job-bidatabase-developer-christian-mission/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 10:37:14 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[christian]]></category>
		<category><![CDATA[dallas]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[missions]]></category>
		<category><![CDATA[texas]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=777</guid>
		<description><![CDATA[The Seed Company is hiring for a Database / Business Intelligence developer. D/FW Texas area preferred but telecommuting might be considered for the ideal candidate.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.theseedcompany.org/">The Seed Company</a> is hiring for a Database / Business Intelligence developer. D/FW Texas area preferred but telecommuting might be considered for the ideal candidate. So, if you have Business Intelligence experience including SQL Server, SSIS, SSRS and SSAS and want to put your skills to work for a very direct impact towards God&#8217;s kingdom work, <a href="https://administaff.ats.hrsmart.com/cgi-bin/a/highlightjob.cgi?jobid=55241&amp;site_id=148">submit your resume</a>.</p>
<p><span id="more-777"></span></p>
<p>Database Developer</p>
<table border="0" cellspacing="1" cellpadding="0" width="100%">
<tbody>
<tr>
<td width="25%" valign="top"><strong>Job Code: </strong></td>
<td valign="top">55241</td>
</tr>
<tr>
<td width="25%" valign="top"><strong>Location:</strong></td>
<td valign="top">Arlington, Tx  US</td>
</tr>
<tr>
<td width="25%" valign="top"><strong>Travel Involved:</strong></td>
<td valign="top">None</td>
</tr>
<tr>
<td width="25%" valign="top"><strong>Job Type:</strong></td>
<td valign="top">Full Time</td>
</tr>
<tr>
<td width="25%" valign="top"><strong>Job Level: </strong></td>
<td valign="top">Experienced (Non-Manager)</td>
</tr>
<tr>
<td width="25%" valign="top"><strong>Education:</strong></td>
<td valign="top">High School or equivalent</td>
</tr>
<tr>
<td width="25%" valign="top"><strong>Skills:</strong></td>
<td valign="top">Information Technology -&gt; Database Specialist, Applications Development</td>
</tr>
<tr>
<td width="25%" valign="top"><strong>Category:</strong></td>
<td>Information Technology</td>
</tr>
<tr>
<td colspan="2" valign="top"><strong>Position Summary:</strong></td>
</tr>
<tr>
<td colspan="2" valign="top">We are a faith-based, non-profit organization with the mission to complete Bible translations in the heart languages of people without God’s Word through partnering with: National Colleagues, Prayer Supporters and Investors and like-minded organizations. Our vision is to creatively network God&#8217;s people around the world to translate the Bible into every language for His glory. We are seeking a Database Developer to join our team in Arlington, Texas.</p>
<p align="center"><strong>Database Developer w/ SSIS/SSRS</strong></p>
<p>The highly skilled Database Developer will interact with key users to understand reporting needs and to design database solutions appropriate to those needs. These solutions will provide insight and analytics using data from disparate sources.</td>
</tr>
<tr>
<td colspan="2" valign="top"><strong>Requirements</strong></td>
</tr>
<tr>
<td colspan="2" valign="top"><strong>Qualifications:</strong></p>
<ul>
<li>High School diploma</li>
<li>1-3 years SQL Server Integration Services, ETL and SQL Server Reporting Services (SSIS/SSRS) hands-on experience</li>
<li>Enjoy helping others gain insight through data visualization and reports</li>
<li>Ability to perform routine database admin tasks including but not limited to: backup/restore, performance tuning, query generation, security management and T-SQL programming</li>
<li>Capability of creating and maintaining data dictionaries and data models/ schemas</li>
<li>Thorough and detail-oriented</li>
<li>Ability to work well in a team setting</li>
<li>Respond well to constructive criticism &#8211; embraces an iterative process</li>
<li>Experience with Dundas controls and .NET development is a plus</li>
</ul>
<p><strong>Benefits:</strong></p>
<p>We value our staff members’ time and efforts. We offer a competitive package including salary depending on experience and demonstrated ability, a generous benefits package including paid time off, medical benefit, dental and vision reimbursement plan and future growth opportunities within the company. We build a work environment for our staff, where people learn and grow with the company. We are collaborative, creative and innovative, with each person expected to contribute to meaningful impact and eternal outcomes.</td>
</tr>
</tbody>
</table>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=777&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/10/job-bidatabase-developer-christian-mission/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSWUG vConf &#8211; How to Avoid Common Pitfalls with SSIS</title>
		<link>http://blog.tech4him.com/2009/04/sswug-vconf-how-to-avoid-common-pitfalls-with-ssis/</link>
		<comments>http://blog.tech4him.com/2009/04/sswug-vconf-how-to-avoid-common-pitfalls-with-ssis/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 20:21:57 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[sql server 2008]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[sswug]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=584</guid>
		<description><![CDATA[
Presenter: Matt Masson
http://blogs.msdn.com/mattm/
Starting up a new project with SQL Server Integration Services? Save time and money by learning about how to avoid common issues that users hit when implementing their ETL solutions. Drawing on the most frequently asked questions in the MSDN Integration Services forum and some of the more interesting packages we&#8217;ve seen over [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/8850632@N08/2479409190/" target="_blank"><img class="alignleft size-medium wp-image-585" style="border: 0pt none; margin: 15px;" title="2479409190_446536d89b" src="http://blog.tech4him.com/wp-content/uploads/2479409190_446536d89b-300x200.jpg" alt="2479409190_446536d89b" width="300" height="200" /></a></p>
<p>Presenter: Matt Masson<br />
<a href="http://blogs.msdn.com/mattm/">http://blogs.msdn.com/mattm/</a></p>
<p>Starting up a new project with SQL Server Integration Services? Save time and money by learning about how to avoid common issues that users hit when implementing their ETL solutions. Drawing on the most frequently asked questions in the MSDN Integration Services forum and some of the more interesting packages we&#8217;ve seen over the years, well highlight common mistakes, clear up some misconceptions, and provide best practices to help you efficiently and effectively use Integration Services.<span id="more-584"></span></p>
<h3>How Does the Data Flow Work?</h3>
<ul type="disc">
<li>In-memory      ETL engine
<ul type="circle">
<li>Really       ELT rather than ETL</li>
</ul>
</li>
<li>Metadata      set at design time, not runtime
<ul type="circle">
<li>Allows       pre-calculations of sizes, etc&#8230;</li>
</ul>
</li>
<li>Data      is moved through the pipeline in buffers</li>
</ul>

<h3>Chose the Right Transforms</h3>
<ul type="disc">
<li>Synchronous
<ul type="circle">
<li>1       output row for every input row</li>
</ul>
</li>
<li>Asynchronous
<ul type="circle">
<li>Any       changes to the buffer shape. Like a Union       ALL</li>
</ul>
</li>
<li>Beware      of blocking transforms like Sort and Aggregate</li>
<li>Take      advantage of your database engine
<ul type="circle">
<li>ORDER       BY &#8230;</li>
<li>SELECT       INTO &#8230;</li>
</ul>
</li>
</ul>
<p>Don&#8217;t do lots of sorts in SSIS, do them in the Source DB input. The DB server is much more efficient at this.</p>
<h3>What are Configurations?</h3>
<ul type="disc">
<li>Allow      you to externalize settings</li>
<li>Change      behavior without modifying the package</li>
<li>Multiple      configuration sources
<ul type="circle">
<li>XML       and SQL Server are the most common</li>
</ul>
</li>
</ul>
<p>Configurations can be added after project creation. Launch the configuration wizard. These are design time configurations.</p>
<h3>Using /SET (Used with Runtime configurations)</h3>
<ul type="disc">
<li>DTEXEC      /SET</li>
<li>Override      values that don&#8217;t already have a configuration set</li>
<li>Set      connection strings</li>
<li>Pass      arguments to a package</li>
</ul>
<h3>Why Can&#8217;t I Share My Package?</h3>
<ul type="disc">
<li>Package      protection level
<ul type="circle">
<li>Encrypt       {all|sensitive} with User Key</li>
<li>Encrypt       {all|sensitive} with Password</li>
<li>Don&#8217;t       Save Sensitive</li>
<li>Server       Storage</li>
</ul>
</li>
</ul>
<h2>How Do I Deploy My Packages?</h2>
<h3>Deployment &#8211; File System</h3>
<ul type="disc">
<li>Deploy      files using an MSI, or copied to a share</li>
<li>XML      configuration</li>
</ul>
<h3>Deployment &#8211; SQL Server (*Recommended*)</h3>
<ul type="disc">
<li>Files      are stored in MSDB</li>
<li>Execution      typically done with SQL Agent
<ul type="circle">
<li>Make       use of Proxy Accounts</li>
</ul>
</li>
<li>Store      configurations in SQL Server</li>
</ul>
<h3>Deployment &#8211; Package Store</h3>
<ul type="disc">
<li>Deploys      to the SSIS service</li>
<li>Front      end to File and SQL storage</li>
</ul>
<h3>What is the SSIS Service For?</h3>
<ul type="disc">
<li>Not      required for execution
<ul type="circle">
<li>Tracks       running packages</li>
<li>Component       cache</li>
</ul>
</li>
<li>Can      manage multiple File or SQL locations</li>
<li>Remote      connections to the service will require DCOM security changes</li>
</ul>
<h3>How should I do Logging?</h3>
<ul type="disc">
<li>Logging      has to be enabled on the package</li>
<li>Multiple      logging destinations
<ul type="circle">
<li>SQL       Server is most common</li>
</ul>
</li>
<li>Custom      logging solutions</li>
</ul>
<h3>Package Execution Reports</h3>
<ul type="disc">
<li>Available      from Microsoft as a download for Reporting Services (SSRS)</li>
</ul>
<h3>How do I Handle Errors?</h3>
<ul type="disc">
<li>Control      Flow
<ul type="circle">
<li>Precedence       constraints</li>
<li>Event       Handlers</li>
<li>Events       &#8220;bubble up&#8221; to parent</li>
</ul>
</li>
<li>Data      Flow
<ul type="circle">
<li>Redirect       error output</li>
</ul>
</li>
</ul>
<h3>Using Expressions</h3>
<ul type="disc">
<li>Set      package properties</li>
<li>Variable      values</li>
<li>Derived      Column transform</li>
<li>Conditional      Split      transform</li>
</ul>
<h3>Data Flow Expressions</h3>
<ul type="disc">
<li>32bit      vs. 64bit
<ul type="circle">
<li>SSIS       will install both 64bit and 32bit runtimes</li>
<li>BIDS       is 32bit only
<ul type="square">
<li>Only        32bit drivers will appear at design time</li>
<li>Use        project setting for 64bit execution</li>
</ul>
</li>
<li>Use       configurations to switch providers</li>
</ul>
</li>
<li>Other      Stuff
<ul type="circle">
<li>There       are no MS 64bit Excel drivers
<ul type="square">
<li>Use        32bit or 3rdparty</li>
</ul>
</li>
<li>SSIS       is an extensible platform</li>
</ul>
</li>
</ul>
<h3>Resources</h3>
<ul type="disc">
<li>SSIS      Team Blog
<ul type="circle">
<li><a href="http://blogs.msdn.com/mattm/">http://blogs.msdn.com/mattm/</a></li>
</ul>
</li>
<li>Community      Samples
<ul type="circle">
<li><a href="http://www.codeplex.com/SQLSrvIntegrationSrv">http://www.codeplex.com/SQLSrvIntegrationSrv</a></li>
</ul>
</li>
<li>MSDN      Portal Page
<ul type="circle">
<li><a href="http://msdn.microsoft.com/en-us/sqlserver/cc511477.aspx">http://msdn.microsoft.com/en-us/sqlserver/cc511477.aspx</a></li>
</ul>
</li>
</ul>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=584&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/04/sswug-vconf-how-to-avoid-common-pitfalls-with-ssis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSWUG vConf &#8211; Deploying OLAP Services with Visual Studio 2008</title>
		<link>http://blog.tech4him.com/2009/04/sswug-vconf-deploying-olap-services-with-visual-studio-2008/</link>
		<comments>http://blog.tech4him.com/2009/04/sswug-vconf-deploying-olap-services-with-visual-studio-2008/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 19:28:12 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[SSAS]]></category>
		<category><![CDATA[sswug]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=578</guid>
		<description><![CDATA[ Presenter: Josh Jones
Just like any other application, OLAP solutions designed and built in Visual Studio 2008 for SQL Server Analysis Service 2008 must be managed from source code to server. In this session, learn different methods for managing your OLAP solutions. Well cover TFS and VSS storage, manual deployment methods using the Visual Studio [...]]]></description>
			<content:encoded><![CDATA[<p><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Subject>TechEd 2007</o:Subject> <o:Author>Gia</o:Author> <o:Version>11.9999</o:Version> </o:DocumentProperties> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-alt:Wingdings; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-alt:Calibri; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} h3 	{mso-style-next:Normal; 	margin-top:12.0pt; 	margin-right:0in; 	margin-bottom:3.0pt; 	margin-left:0in; 	mso-pagination:widow-orphan; 	page-break-after:avoid; 	mso-outline-level:3; 	font-size:13.0pt; 	font-family:Arial;} p.Default, li.Default, div.Default 	{mso-style-name:Default; 	mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	mso-layout-grid-align:none; 	text-autospace:none; 	font-size:12.0pt; 	font-family:Calibri; 	mso-fareast-font-family:"Times New Roman"; 	mso-bidi-font-family:Calibri; 	color:black;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:563564813; 	mso-list-type:hybrid; 	mso-list-template-ids:1565922376 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:o; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:"Courier New";} @list l1 	{mso-list-id:1059674410; 	mso-list-type:hybrid; 	mso-list-template-ids:1984829308 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l1:level1 	{mso-level-number-format:bullet; 	mso-level-text:ï‚·; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Symbol;} @list l1:level2 	{mso-level-number-format:bullet; 	mso-level-text:o; 	mso-level-tab-stop:1.0in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:"Courier New";} @list l1:level3 	{mso-level-number-format:bullet; 	mso-level-text:ï‚§; 	mso-level-tab-stop:1.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Wingdings;} @list l2 	{mso-list-id:1588227317; 	mso-list-type:hybrid; 	mso-list-template-ids:-1985833952 67698691 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l2:level1 	{mso-level-number-format:bullet; 	mso-level-text:o; 	mso-level-tab-stop:.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:"Courier New";} @list l2:level2 	{mso-level-number-format:bullet; 	mso-level-text:o; 	mso-level-tab-stop:1.0in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:"Courier New";} @list l2:level3 	{mso-level-number-format:bullet; 	mso-level-text:ï‚§; 	mso-level-tab-stop:1.5in; 	mso-level-number-position:left; 	text-indent:-.25in; 	font-family:Wingdings;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} --> <!--[endif]--><a href="http://www.flickr.com/photos/slagheap/398476167/" target="_blank"><img class="alignright size-medium wp-image-579" style="border: 0pt none; margin: 15px;" title="398476167_018e914c89" src="http://blog.tech4him.com/wp-content/uploads/398476167_018e914c89-300x214.jpg" alt="398476167_018e914c89" width="300" height="214" /></a>Presenter: Josh Jones</p>
<p class="MsoNormal">Just like any other application, OLAP solutions designed and built in Visual Studio 2008 for SQL Server Analysis Service 2008 must be managed from source code to server. In this session, learn different methods for managing your OLAP solutions. Well cover TFS and VSS storage, manual deployment methods using the Visual Studio GUI, as well as command line build automation methods specific to SQL Server Analysis Services project deployments.<span id="more-578"></span></p>
<p class="MsoNormal">
<h3 class="MsoNormal">Building SSAS Solutions</h3>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal">Visual      Studio / BIDS
<ul style="margin-top: 0in;" type="circle">
<li class="MsoNormal">All       BI Projects</li>
<li class="MsoNormal">Easy       to use compared to older versions</li>
<li class="MsoNormal">Team       Foundation Server / Team System</li>
</ul>
</li>
</ul>
<p class="MsoNormal"></p>
<h3 class="MsoNormal">Building a Solution</h3>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal">Source      Control
<ul style="margin-top: 0in;" type="circle">
<li class="MsoNormal">Visual       Source Safe
<ul style="margin-top: 0in;" type="square">
<li class="MsoNormal">Long        history</li>
<li class="MsoNormal">Easy        to use</li>
<li class="MsoNormal">Best        for small environments</li>
<li class="MsoNormal">Isolated        Development</li>
<li class="MsoNormal">Administration</li>
</ul>
</li>
<li class="MsoNormal">Team       Foundation Server
<ul style="margin-top: 0in;" type="square">
<li class="MsoNormal">Central        Repository</li>
<li class="MsoNormal">Project        Management</li>
<li class="MsoNormal">SQL        Server Based Repository</li>
<li class="MsoNormal">Collaborative        Development</li>
</ul>
</li>
<li class="MsoNormal">Analysis       Services Perspective
<ul style="margin-top: 0in;" type="square">
<li class="MsoNormal">Team        Development</li>
<li class="MsoNormal">Build        Projects in BIDS</li>
<li class="MsoNormal">Manage        Databases in SSMS</li>
<li class="MsoNormal">BEWARE!</li>
</ul>
</li>
</ul>
</li>
</ul>
<p class="MsoNormal">
<h3 class="MsoNormal">Configuring Deployment</h3>
<ul style="margin-top: 0in;" type="circle">
<li class="MsoNormal">Configure      Project Environment</li>
<li class="MsoNormal">Configure      Source Control</li>
<li class="MsoNormal">Create      Project â€œConfigurationsâ€</li>
<li class="MsoNormal">Define      Targets</li>
<li class="MsoNormal">Define      Actions</li>
</ul>
<p class="MsoNormal">
<h3>Deployment Solutions</h3>
<ul style="margin-top: 0in;" type="circle">
<li class="MsoNormal">Visual      Studio / BIDS
<ul style="margin-top: 0in;" type="circle">
<li class="MsoNormal">Visual       Deployment</li>
<li class="MsoNormal">Immediate       Feedback</li>
<li class="MsoNormal">Multiple       Configurations</li>
<li class="MsoNormal">Easy       to Use</li>
</ul>
</li>
<li class="MsoNormal">Automating      Builds
<ul style="margin-top: 0in;" type="circle">
<li class="MsoNormal">Msbuild.exe       doesnâ€™t work</li>
<li class="MsoNormal">Devenv.exe       (Visual Studio Command Line)</li>
<li class="MsoNormal">*.asdatabasefiles       = SSAS Deployment Wizard</li>
<li class="MsoNormal">Microsoft.AnalysisServices.Depoyment.exe
<ul style="margin-top: 0in;" type="square">
<li class="MsoNormal">Must        create an answer file using /a ONCE</li>
<li class="MsoNormal">Produces        an xmlafile</li>
</ul>
</li>
<li class="MsoNormal">Deploy       xmlafile via ascmd.exe</li>
</ul>
</li>
</ul>
<p class="MsoNormal">
<p class="MsoNormal">Nothing too terribly new here, but a good reminder for some.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=578&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/04/sswug-vconf-deploying-olap-services-with-visual-studio-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSWUG vConf &#8211; SQL Server Analysis Services &#8211; Intro to Installation and Configuration</title>
		<link>http://blog.tech4him.com/2009/04/sswug-vconf-sql-server-analysis-services-intro-to-installation-and-configuration/</link>
		<comments>http://blog.tech4him.com/2009/04/sswug-vconf-sql-server-analysis-services-intro-to-installation-and-configuration/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 17:16:27 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[SSAS]]></category>
		<category><![CDATA[sswug]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=571</guid>
		<description><![CDATA[Presenter: Ted Malone
http://portal.sqltrainer.com
One of the problems that presents those new to Business Intelligence development is how to configure the development and production environments for maximum efficiency. This session will cover the installation and configuration of SSAS for both development and production environments. Attendees will leave this session with a good understanding of the options available [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/pierrethurau/2978728372/" target="_blank"><img class="alignleft size-medium wp-image-572" style="border: 0pt none; margin: 15px;" title="2978728372_8aea386cb5" src="http://blog.tech4him.com/wp-content/uploads/2978728372_8aea386cb5-253x300.jpg" alt="2978728372_8aea386cb5" width="253" height="300" /></a>Presenter: Ted Malone<br />
<a href="http://portal.sqltrainer.com/">http://portal.sqltrainer.com</a></p>
<p>One of the problems that presents those new to Business Intelligence development is how to configure the development and production environments for maximum efficiency. This session will cover the installation and configuration of SSAS for both development and production environments. Attendees will leave this session with a good understanding of the options available and the specific needs in an SSAS environment.<span id="more-571"></span></p>
<p>Haha. Beer can aerodynamics analogy. Funny!</p>
<h3>Better in 2008</h3>
<ul type="disc">
<li>Innovative      Cube Designer</li>
<li>Best      practice design alerts</li>
<li>Enhanced      dimension designs</li>
<li>Enhanced      aggregation designs</li>
</ul>
<p>I like Ted. Introducing his dog via desktop picture. Nikki?</p>

<h3>Installation</h3>
<ul type="disc">
<li>Two      important things to SSAS
<ul type="circle">
<li>Memory       (RAM)</li>
<li>I/O
<ul type="square">
<li>Separate        channel for your OLAP data</li>
</ul>
</li>
</ul>
</li>
<li>Add      new features to existing SQL Server 2008 instance</li>
<li>Add      SSAS</li>
<li>Service      Accounts
<ul type="circle">
<li>Generally       speaking: Use a domain service account (Check Carl Dubler&#8217;s guide)</li>
</ul>
</li>
<li>Add      current user to the Administrators role</li>
<li>Data      Directories tab
<ul type="circle">
<li>Move       folders into the appropriate locations based upon I/O channel decisions</li>
</ul>
</li>
<li>Proceed      with the installation process.</li>
</ul>
<p>Introduces new dog. Sasha! hehe</p>
<h3>Configuration (In SSMS)</h3>
<ul type="disc">
<li>Properties      of Instance
<ul type="circle">
<li>Log\FlightRecorder
<ul type="square">
<li>Captures        trace info if stuff goes wrong</li>
<li>Enabled        by default</li>
<li>FlightRecorderCurrrent.trc        file</li>
</ul>
</li>
<li>Memory
<ul type="square">
<li>Personally        Ted hates dynamic memory allocation.</li>
<li>If        SQLServer and Analysis Services installed on the same box, you must set        limits on SQL Server Memory</li>
<li>Books        Online actually is very good on this topic
<ul type="disc">
<li>Planning         &amp; Architecture -&gt; Physical Architecture topics are the ones</li>
</ul>
</li>
<li>Set        Low Memory Limit to 50% &#8211; Not a best practice but allows you to look at profiler,        services, process and determine how to proceed.</li>
<li>While        publishing cube, watch the msmdsrv.exe process to see memory        utilization.</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Books Online. Books Online. Books Online.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=571&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/04/sswug-vconf-sql-server-analysis-services-intro-to-installation-and-configuration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSWUG vConf &#8211; Intro to SQL Server Analysis Services</title>
		<link>http://blog.tech4him.com/2009/04/sswug-vconf-intro-to-sql-server-analysis-services/</link>
		<comments>http://blog.tech4him.com/2009/04/sswug-vconf-intro-to-sql-server-analysis-services/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 15:19:58 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql server 2008]]></category>
		<category><![CDATA[SSAS]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=552</guid>
		<description><![CDATA[Presenter: Brian Knight
bknight@pragmaticworks.com
Is your customer looking for drag and drop reports or capabilities inside of Excel. SQL Server Analysis Services (SSAS) is the answer for you then. You&#8217;ll be amazed how quickly you can develop sophisticated reports after watching the basics of this session.
SSAS is its own server. It is not part of the SQL [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/jef_safi/312795799/" target="_blank"><img class="alignleft size-medium wp-image-555" style="border: 0pt none; margin: 10px;" title="312795799_42d968acec" src="http://blog.tech4him.com/wp-content/uploads/312795799_42d968acec-300x300.jpg" alt="312795799_42d968acec" width="300" height="300" /></a>Presenter: Brian Knight<br />
<a href="mailto:bknight@pragmaticworks.com">bknight@pragmaticworks.com</a></p>
<p>Is your customer looking for drag and drop reports or capabilities inside of Excel. SQL Server Analysis Services (SSAS) is the answer for you then. You&#8217;ll be amazed how quickly you can develop sophisticated reports after watching the basics of this session.<span id="more-552"></span></p>
<p>SSAS is its own server. It is not part of the SQL Server service.</p>
<ul type="disc">
<li>IIS</li>
<li>XMLA      between server and client</li>
</ul>
<p>MDX &#8211; SQL Language for Cubes<br />
BIDS &#8211; Building the Cubes<br />
SSMS &#8211; Managing SSAS</p>

<h3>Analysis Services</h3>
<p>What are cubes?</p>
<ul type="disc">
<li>What      are measures? (<a href="/2009/04/sswug-vconf-dimensional-modeling-101/">See      Erik Veerman Dimensional modeling session</a>)
<ul type="circle">
<li>The       value you are measuring, e.g. the count of users with blue eyes, from WA       state, etc.</li>
<li>The       question you are trying to ask</li>
</ul>
</li>
<li>What      are measure groups?
<ul type="circle">
<li>Groupings       of these measures within your cube</li>
<li>Typically       define them by your business problem (e.g. Sales, HR, etc.)</li>
</ul>
</li>
<li>Cubes      are a grouping of measure groups.</li>
</ul>
<h3>Analysis Services Dimensions</h3>
<p>What are dimensions and hierarchies? (<a href="/2009/04/sswug-vconf-dimensional-modeling-101/">See Erik Veerman Dimensional modeling session</a>)</p>
<ul type="disc">
<li>What      is a dimension?
<ul type="circle">
<li>It       is what you want to categorize or pivot against</li>
<li>e.g.       How many users are from WA state?</li>
<li>The       dimension is geography, &#8220;WA&#8221; is the member</li>
</ul>
</li>
<li>â€¢What      is a hierarchy?
<ul type="circle">
<li>How       do you want to organize the members of your dimension</li>
<li>e.g.       Geography has numerous levels such as country, state, and city</li>
<li>Hierarchy       is the organization of those levels such as City -&gt;State -&gt;Country</li>
</ul>
</li>
</ul>
<p>Concrete examples like these are helpful for my learning and understanding. Thanks!</p>
<p><a rel="attachment wp-att-549" href="http://blog.tech4him.com/2009/04/sswug-vconf-intro-to-sql-server-analysis-services/introtossascube/"><img class="aligncenter size-medium wp-image-549" title="SSAS Cube" src="http://blog.tech4him.com/wp-content/uploads/introtossascube-300x224.png" alt="SSAS Cube" width="300" height="224" /></a></p>
<p><a rel="attachment wp-att-550" href="http://blog.tech4him.com/2009/04/sswug-vconf-intro-to-sql-server-analysis-services/introtossasdimmodel/"><img class="aligncenter size-medium wp-image-550" title="Dimensional Model" src="http://blog.tech4him.com/wp-content/uploads/introtossasdimmodel-300x225.png" alt="Dimensional Model" width="300" height="225" /></a></p>
<p><a rel="attachment wp-att-551" href="http://blog.tech4him.com/2009/04/sswug-vconf-intro-to-sql-server-analysis-services/introtossasmeasuregroup/"><img class="aligncenter size-medium wp-image-551" title="Measure Group" src="http://blog.tech4him.com/wp-content/uploads/introtossasmeasuregroup-300x224.png" alt="Measure Group" width="300" height="224" /></a></p>
<h3>User Interfaces</h3>
<ul type="disc">
<li>Query      language is MDX</li>
<li>BIDS      for developers</li>
<li>Excel      for most users is adequate or Reporting Services</li>
<li>SharePoint      for web users</li>
<li>3rdparty      applications like Proclarity or Panorama</li>
<li>Controls      you can purchase and build into your own apps</li>
</ul>
<p>Create User defined hierarchies.</p>
<ul>
<li>Remember that in 2008 the hierarchy can be thought of as reversed.</li>
<li>Looks graphically like date -&gt; month -&gt; qtr -&gt; year
<ul>
<li>Means: to get to a date you must go through year, qtr, month, date</li>
</ul>
</li>
</ul>
<p>Deal with problematic keys.</p>
<p>Most end users will use Excel. 2007 provides additional features.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=552&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/04/sswug-vconf-intro-to-sql-server-analysis-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSWUG vConf &#8211; Incremental Data Warehouse Loads with MERGE and Change Data Capture</title>
		<link>http://blog.tech4him.com/2009/04/sswug-vconf-incremental-data-warehouse-loads-with-merge-and-change-data-capture/</link>
		<comments>http://blog.tech4him.com/2009/04/sswug-vconf-incremental-data-warehouse-loads-with-merge-and-change-data-capture/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 14:03:23 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql server 2008]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[sswug]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=544</guid>
		<description><![CDATA[Presenter: Matt Masson
http://blogs.msdn.com/mattm/
This talk describes the new MERGE statement and Change Data Capture (CDC) feature introduced in SQL Server 2008, and how to take advantage of them in SQL Server Integration Services. Well cover the traditional ways of doing incremental data loads, and see how these new key features make the process a whole lot [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/nataliejohnson/2419154427/" target="_blank"><img class="alignright size-medium wp-image-545" style="border: 0pt none; margin: 10px;" title="2419154427_04dd3da737" src="http://blog.tech4him.com/wp-content/uploads/2419154427_04dd3da737-300x199.jpg" alt="2419154427_04dd3da737" width="300" height="199" /></a>Presenter: Matt Masson<br />
<a href="http://blogs.msdn.com/mattm/">http://blogs.msdn.com/mattm/</a></p>
<p>This talk describes the new MERGE statement and Change Data Capture (CDC) feature introduced in SQL Server 2008, and how to take advantage of them in SQL Server Integration Services. Well cover the traditional ways of doing incremental data loads, and see how these new key features make the process a whole lot easier. If you&#8217;re interested in learning best practices for this new SQL Server 2008 functionality, you won&#8217;t want to miss this session!<span id="more-544"></span></p>
<p>CDC and Merge are new in SQL Server 2008</p>
<p>Also 2008 has improved SCD processing</p>
<h3>Options to Capture Change</h3>
<ul type="disc">
<li>Audit      columns &#8211; created via triggers</li>
<li>Log      Scraping</li>
<li>Full DB      Diff compare</li>
</ul>

<h3>(New Options) Change Data Capture in SQL Server</h3>
<ul type="disc">
<li>Changes      captured from the log asynchronously
<ul type="circle">
<li>Really       just integrated log scraping</li>
</ul>
</li>
<li>Tells      you what changed at the source</li>
<li>Enabled      per table or DB</li>
<li>CDC      API&#8217;s provide access to change data</li>
</ul>
<h3>CDC Components</h3>
<ul type="disc">
<li>CDC      Tables</li>
<li>Capture      Job</li>
<li>Cleanup      Job</li>
<li>API</li>
</ul>
<h3>Change Tracking</h3>
<ul type="disc">
<li>Captures      that a row was changed, but not the changed data</li>
<li>Synchronous      capture mechanism</li>
<li>Less      overhead for applications that do not require the historical information</li>
</ul>
<h3>Turn CDC on:</h3>
<ul type="disc">
<li>sp_cdc_enable_db</li>
<li>sp_cdc_enable_table</li>
<li>LSN =      Log Sequence Number</li>
<li>Sp_cdc_generate_wrapper_function
<ul type="circle">
<li>Creates       a custom function DDL for reading CDC data</li>
</ul>
</li>
</ul>
<h3>Loading SSIS Package</h3>
<ul type="disc">
<li>Source      from the CDC Wrapper function</li>
<li>Split      on CDC operation
<ul type="circle">
<li>Insert</li>
<li>Update</li>
<li>Delete</li>
</ul>
</li>
</ul>
<h3>Lookup Changes in SQL 2008</h3>
<ul type="disc">
<li>Explicit      cache modes
<ul type="circle">
<li>Full</li>
<li>Partial</li>
<li>None</li>
</ul>
</li>
<li>Cache      connection manager</li>
</ul>
<h3>External Reference Data</h3>
<ul type="disc">
<li>Joins      can work but can be difficult to manage</li>
<li>Instead,      use the SSIS Lookup transform.</li>
</ul>
<h3>The MERGE Statement</h3>
<ul type="disc">
<li>Single      statement can deal with Inserts, Updates and Deletes all at once</li>
<li>Use      Cases
<ul type="circle">
<li>Conditionally       insert or update rows in a target table</li>
<li>Synchronize       two tables</li>
</ul>
</li>
<li>Built      to perform</li>
</ul>
<h3>Using MERGE in SSIS (Execute SQL Tasks in SSIS)</h3>
<ul type="disc">
<li>Stage
<ul type="circle">
<li>Store       data in a temp table</li>
</ul>
</li>
<li>Optimize
<ul type="circle">
<li>Create       indexes on join cols</li>
<li>Provides       addtl perf benefits</li>
</ul>
</li>
<li>Execute
<ul type="circle">
<li>Run       the MERGE SQL statement</li>
</ul>
</li>
</ul>
<p>When doing the insert, you must drop the FK constraints in the destination table.</p>
<h3>Taking Advantage of MERGE</h3>
<ul type="disc">
<li>Consume      CDC data</li>
<li>Update      Dimensions</li>
<li>Alternative      to the Slowly Changing Dimension Wizard</li>
</ul>
<h3>Additional Resources</h3>
<ul type="disc">
<li>SSIS Team      Blog
<ul type="circle">
<li><a href="http://blogs.msdn.com/mattm">http://blogs.msdn.com/mattm</a></li>
</ul>
</li>
<li>Comparing      Change Data Capture and Change Tracking
<ul type="circle">
<li><a href="http://msdn.microsoft.com/en-us/library/cc280519.aspx">http://msdn.microsoft.com/en-us/library/cc280519.aspx</a></li>
</ul>
</li>
<li>Optimizing      MERGE Statement Performance
<ul type="circle">
<li><a href="http://msdn.microsoft.com/en-us/library/cc879317.aspx">http://msdn.microsoft.com/en-us/library/cc879317.aspx</a></li>
</ul>
</li>
<li>MERGE      Destination
<ul type="circle">
<li><a href="http://www.codeplex.com/SQLSrvIntegrationSrv/Release/ProjectReleases.aspx?ReleaseId=19048">http://www.codeplex.com/SQLSrvIntegrationSrv/Release/ProjectReleases.aspx?ReleaseId=19048</a></li>
</ul>
</li>
</ul>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=544&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/04/sswug-vconf-incremental-data-warehouse-loads-with-merge-and-change-data-capture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSWUG vConf &#8211; Loading a Data Warehouse in SSIS</title>
		<link>http://blog.tech4him.com/2009/04/sswug-vconf-loading-a-data-warehouse-in-ssis/</link>
		<comments>http://blog.tech4him.com/2009/04/sswug-vconf-loading-a-data-warehouse-in-ssis/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 20:56:27 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[data warehouse]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[SSIS]]></category>
		<category><![CDATA[sswug]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=537</guid>
		<description><![CDATA[Presenter: Brian Knight
bknight@pragmaticworks.com
Owner, Pragmatic Works
In this session, you&#8217;ll learn how to load a typical data warehouse in SSIS efficiently. You&#8217;ll start by seeing some of the strengths and weaknesses of the Slowly Changing Dimension (SCD) Wizard in SSIS and how you can get around some of the weaknesses including your own home-brewed solution. You&#8217;ll then [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/brento/2089748072/" target="_blank"><img class="alignleft size-medium wp-image-539" style="border: 0pt none; margin: 10px;" title="2089748072_b60a211f97" src="http://blog.tech4him.com/wp-content/uploads/2089748072_b60a211f97-225x300.jpg" alt="2089748072_b60a211f97" width="225" height="300" /></a>Presenter: Brian Knight<br />
<a href="mailto:bknight@pragmaticworks.com">bknight@pragmaticworks.com<br />
</a>Owner, Pragmatic Works</p>
<p>In this session, you&#8217;ll learn how to load a typical data warehouse in SSIS efficiently. You&#8217;ll start by seeing some of the strengths and weaknesses of the Slowly Changing Dimension (SCD) Wizard in SSIS and how you can get around some of the weaknesses including your own home-brewed solution. You&#8217;ll then see how to load a fact table using SSIS and how to make the common components scale.<span id="more-537"></span></p>
<h3>Dimensional Modeling (<a href="/2009/04/sswug-vconf-dimensional-modeling-101/">See Dimensional Modeling 101 Notes</a>)</h3>
<ul type="disc">
<li>Data      Separated into fact and dimension tables</li>
<li>Dimension      tables answer the pivot or where clause
<ul type="circle">
<li>Make       as wide and descriptive as possible</li>
<li>Surrogate       keys operate as unique ID for each row</li>
<li>Keep       surrogate keys as small as possible</li>
</ul>
</li>
<li>Fact      tables answer the what questions or select statement
<ul type="circle">
<li>Intersect       all dimension tables</li>
<li>Surrogate       keys from each dimension in this table</li>
<li>Measures       are the &#8220;what&#8221; like Price, Quantity, Duration</li>
</ul>
</li>
</ul>
<p> The challenge is how you move the data from the OLTP (Relational) DB into the Data Warehouse.</p>
<p>Discusses SCD (Slowly Changing Data) Dimension types (<a href="/2009/04/sswug-vconf-dimension-table-design-101/">Already here</a>)</p>
<p>Don&#8217;t make everything Type two or your DB will bloat significantly. Also your reports would be more difficult to write.</p>
<p>Probably want to fix NULL values to be something. Use a Derived Column transform. Makes Nulls to be something like 0, Unknown, etc&#8230;</p>
<p>SCD Wizard Strengths</p>
<ul type="disc">
<li>SSIS      transform that creates many other transforms conditionally</li>
<li>Reduces      design time of SCD load by 80%-90% to minutes per dimension</li>
<li>Can be      customized easily</li>
<li>Compares      differences between source and destination to find changes and new records</li>
<li>Outputs:</li>
<li>Type      0,1,2 update</li>
<li>Inferred      members</li>
<li>New      rows</li>
<li>Duplicate      rows</li>
</ul>
<p>Historical Attribute Options &#8211; How do you want to set the expiration of historical records.</p>
<p>Problem with SCD Wizard is that any time you go back and change the configuration, all the output logic below it gets re-written. You lose what you created.</p>
<h3>SCD Wizard Weaknesses</h3>
<ul type="disc">
<li>Scalability      -Generally up to about 50,000 records into the transform but varies based      on number of updates</li>
<li>Maintainability      -After you customize, rerunning the wizard recreates all the transforms</li>
<li>Uses      OLE DB Command transforms for updates is row-level. Creates scalability      issue here if lots of updates.</li>
</ul>
<h3>Making Your Own SCD Wizard</h3>
<ul type="disc">
<li>Can      use a Merge Join or Lookup Transform
<ul type="circle">
<li>If       no match found, it is an insert (Ignore Errors)</li>
</ul>
</li>
<li>Lookup      Transform will scale better than Merge Join but lacks parameterization</li>
<li>Add a      Conditional Split transform after Lookup to direct to insert, duplicate or      update path</li>
</ul>
<h3>Additional Scalability</h3>
<ul type="disc">
<li>Watch      your Lookup Transformation for scalability issues (don&#8217;t cache too much!)
<ul type="circle">
<li>Potentially       cache only the last 1 years worth of data with Partial Caching</li>
<li>Only       cache columns needed</li>
</ul>
</li>
<li>Additional      scalability can be reached by landing updates into a staging table
<ul type="circle">
<li>Then       set-based update with an Execute SQL task.</li>
</ul>
</li>
<li>Checksum      Transform can be used to detect changes across many columns
<ul type="circle">
<li>Or       HASHBYTES T-SQL statement</li>
</ul>
</li>
</ul>
<h3>Inferred Members</h3>
<ul type="disc">
<li>Created      during the fact load
<ul type="circle">
<li>A       new Dim record is created using the value of &#8220;unknown&#8221; or NULL as a       placeholder</li>
<li>The       record is flagged as an inferred member</li>
</ul>
</li>
</ul>
<h3>Slowly Changing Dimension Wizard</h3>
<ul type="disc">
<li>SSIS      transform that creates many other transforms conditionally</li>
<li>Handles:</li>
<li>Type 0      (fixed attribute)</li>
<li>Type 1      (changing attribute)</li>
<li>Type 2      (historical attribute)</li>
<li>Inferred      members</li>
<li>Typically      can address 80% of the business scenarios</li>
</ul>
<h3>SCD Wizard Strengths</h3>
<ul type="disc">
<li>SSIS      transform that creates many other transforms conditionally</li>
<li>Reduces      design time of SCD load by 80%-90% to minutes per dimension</li>
<li>Can be      customized easily</li>
<li>Compares      differences between source and destination to find changes and new records</li>
<li>Outputs:</li>
<li>Type      0,1,2 update</li>
<li>Inferred      members</li>
<li>New      rows</li>
<li>Duplicate      rows</li>
</ul>
<h3>SCD Wizard Weaknesses</h3>
<ul type="disc">
<li>Scalability      -Generally up to about 50,000 records into the transform but varies based      on number of updates</li>
<li>Maintainability      -After you customize, rerunning the wizard recreates all the transforms</li>
<li>Uses      OLE DB Command transforms for updates is row-level. Creates scalability      issue here if lots of updates.</li>
</ul>
<p>Lookup Transform &#8211; Lookup source against target dimension table. Select ALL available lookup fields and alias at TARGET_ so you can match against them. Link by primary key. Ignore the failure of matches.</p>
<p>Then use a conditional split &#8211; If target PK is NULL it is a new record, else Update.</p>
<p>&#8220;Pretty much a pain in the butt to write.&#8221; &#8211; Brian Knight in reference to the else UPDATE piece from the conditional split.</p>
<p>Ugh&#8230;no transcript and this info is not in the slides. ARGH! Can&#8217;t remember it all.</p>
<p>Brian uses the Checksum source vs. Checksum destination to deal with the UPDATE referred to above, but not guaranteed to be unique.</p>
<p>Hashbytes on the other hand is more unique if you wish. But it does not work on numeric fields. Need to cast them.</p>
<h3>Fact Table Loads</h3>
<ul type="disc">
<li>Series      of Lookup Transforms
<ul type="circle">
<li>In       Type 2 Dimensions add WHERE EndDate IS NOT NULL</li>
</ul>
</li>
<li>Measures      created Derived Column Transforms</li>
<li>Aggregate      transform to roll up the grain</li>
<li>Lookup      failure would create an inferred member or set to unknown</li>
</ul>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=537&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/04/sswug-vconf-loading-a-data-warehouse-in-ssis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSWUG vConf &#8211; Fact Table Design 101</title>
		<link>http://blog.tech4him.com/2009/04/sswug-vconf-fact-table-design-101/</link>
		<comments>http://blog.tech4him.com/2009/04/sswug-vconf-fact-table-design-101/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 16:24:21 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[sswug]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=505</guid>
		<description><![CDATA[Presenter: Erik Veerman
erik@solidq.com
In a Business Intelligence solution, the fact tables hold the core data that you are analyzing &#8211; facts (also called measures). Therefore, fact tables are a critical component to get right the first time. Poor fact table design will lead to poor performance and difficult calculations. This session dives into fact table and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/filipx/2580276686/" target="_blank"><img class="alignright size-medium wp-image-506" style="border: 0pt none; margin: 10px;" title="2580276686_9e502d4b5e" src="http://blog.tech4him.com/wp-content/uploads/2580276686_9e502d4b5e-300x225.jpg" alt="2580276686_9e502d4b5e" width="300" height="225" /></a>Presenter: Erik Veerman<br />
<a href="mailto:erik@solidq.com">erik@solidq.com</a></p>
<p>In a Business Intelligence solution, the fact tables hold the core data that you are analyzing &#8211; facts (also called measures). Therefore, fact tables are a critical component to get right the first time. Poor fact table design will lead to poor performance and difficult calculations. This session dives into fact table and considers the basic column types, measure aggregation types, fact table types, and volume considerations.<span id="more-505"></span></p>
<h3>Facts</h3>
<ul type="disc">
<li>The      fact itself
<ul type="circle">
<li>The       &#8220;measure&#8221; that is being tracked. The thing</li>
<li>Quantity,       count, amount, percent</li>
<li>Most       always numerical, continuous values
<ul type="square">
<li>e.g.,        price of a product, quantity sold, budget value, count of customers</li>
</ul>
</li>
</ul>
</li>
<li>Facts      (or measures) can be classified by&#8230;
<ul type="circle">
<li>Numerical       data type</li>
<li>Aggregation       type</li>
<li>Additive       nature</li>
<li>Granularity       &#8211; level of detail stored</li>
</ul>
</li>
<li>Fact      tables
<ul type="circle">
<li>Capture       measures/facts</li>
<li>Association       with dimensions (using surrogate key as foreign key in fact table)
<ul type="square">
<li>No        dimensions attributes!</li>
</ul>
</li>
<li>Some       tracking information included</li>
</ul>
</li>
<li>Different      types of fact tables
<ul type="circle">
<li>Transactional       &#8211; Additive facts tracking events over time (Star Schema)
<ul type="square">
<li>Most        common type of fact table
<ul type="disc">
<li>Track         the occurrence of events, each detailed event is captured into a row in         the fact table</li>
<li>Measures         are typically additive across all dimensions</li>
<li>Common         transactional fact table types
<ul type="circle">
<li>Sales,          Visits, Web-page hits, Account transactions</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Snapshot       or inventory &#8211; Pictures in time of levels or balances
<ul type="square">
<li>Periodic</li>
<li>Accumulating</li>
<li>Known        as inventory level fact tables
<ul type="disc">
<li>Time         dimension used to identify grain</li>
<li>Non         additive measures across time, but typically additive across all other         dimensions</li>
<li>Common         transactional fact table types
<ul type="circle">
<li>Inventory          levels, Event booking levels, Chart of account balance levels</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Factless       &#8211; Dimensionality relationships
<ul type="square">
<li>No        measured facts!
<ul type="disc">
<li>Are         useful to describe events and coverage</li>
<li>Information         that something has or has not happened
<ul type="circle">
<li>Often          used to represent many-to-many relationships</li>
<li>Contain          only dimension keys</li>
<li>Common          factless fact tables:</li>
</ul>
</li>
<li>Class         attendance, Event tracking, Coverage tables, Promotion or campaign         facts</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Fact      Table Granularity
<ul type="circle">
<li>Never       mix the grain of the table!</li>
<li>The       level of detail of data contained in the fact table</li>
<li>The       description of a <strong><span style="text-decoration: underline;">single       instance</span></strong> (a record) of the fact table</li>
<li>Typically       includes a time level and a distinct combinations of other dimensions
<ul type="square">
<li>e.g.        Daily item totals by product, by store, Weekly snapshot of store        inventory by product</li>
</ul>
</li>
</ul>
</li>
</ul>
<p> Maybe include ETL load date/time in the fact table.</p>
<h3>Measures &#8211; Additive Nature</h3>
<ul type="disc">
<li>Additive:      Facts that can be summed up/aggregated across <strong><span style="text-decoration: underline;">all</span></strong> of the dimensions in the fact table
<ul type="circle">
<li>e.g.       discrete numerical measures of activity, i.e. quantity sold, dollars sold</li>
</ul>
</li>
<li>Semi-Additive:      Facts that can be summed up for <strong><span style="text-decoration: underline;">some</span></strong> of the dimensions in the fact table, but not the others
<ul type="circle">
<li>e.g.       numerical measures of intensity, i.e. account balance, inventory level,       distinct counts</li>
</ul>
</li>
<li>Non-Additive:      Facts that <strong><span style="text-decoration: underline;">cannot</span></strong> be      summed up <strong><span style="text-decoration: underline;">for any</span></strong> of the      dimensions present in the fact table.
<ul type="circle">
<li>e.g.       room temp</li>
</ul>
</li>
</ul>
<h3>Aggregations</h3>
<ul type="disc">
<li>Aggregation      (Aggs): A summarization of base-level fact table records
<ul type="circle">
<li>Common       aggregation scenarios
<ul type="square">
<li>Category        product by store by day</li>
<li>District        store by product by day</li>
<li>Monthly        sales by product by store</li>
<li>Category        product by store district by day</li>
<li>Category        product by store district by month</li>
</ul>
</li>
</ul>
</li>
<li>Aggregations      need to account for the additive nature of the measures
<ul type="circle">
<li>Aggregations       can be created on-the-fly or by the process of pre-aggregation</li>
<li>Common       aggregations
<ul type="square">
<li>Sum</li>
<li>Count,        Distinct Count</li>
<li>Max,        Min</li>
<li>Average</li>
<li>Semi-additive:        Last Child, Last Non-empty Child</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><a href="http://www.microsoft.com/fasttrack">http://www.microsoft.com/fasttrack</a><br />
SQL Server Fast Track Data Warehouse accelerates your data warehouse roadmap with new SQL Server 2008 Enterprise scalable reference architectures for HP, Dell and Bull. Reduce costs, save time and reduce risk with reliable, pre-tested hardware and best practices for warehousing. Read more.</p>
<h3>Design with Additive in Mind</h3>
<ul type="disc">
<li>Think      dimensionally!</li>
<li>Complex      requirements don&#8217;t need to be designed with complex queries</li>
<li>Many      times new fact tables can be designed that can answer specific questions,      such as date attributes and ranges</li>
</ul>
<h3>Getting Started</h3>
<ul type="disc">
<li>Step      1: Identify high-value business process to model (orders, invoices,      shipments, inventory)
<ul type="circle">
<li>Confirm       data source availability</li>
<li>Understand       value vs. complexity</li>
</ul>
</li>
<li>Step      2: Identify reporting grain of the business process
<ul type="circle">
<li>The       grains is the level of detail at which the data should be represented for       analytics</li>
<li>This       may not be the same grain as the source!</li>
<li>For       snapshot facts, determine what time level will be captured for each       snapshot (daily, weekly, monthly)</li>
</ul>
</li>
<li>Step      3: Identify dimensionality that will apply to each fact table
<ul type="circle">
<li>Time,       product, customer, store, etc.</li>
<li>Some       dimensions are not grain-identifying</li>
<li>Validate       the source can associate to the fact table</li>
</ul>
</li>
<li>Step      4: Identify measured facts that will populate fact table
<ul type="circle">
<li>Validate       the base measures are identifiable from the source</li>
<li>Some       measures may be derived</li>
<li>Measure       examples: product count, quantity sold, dollars sold, inventory quantity</li>
</ul>
</li>
<li>Identify      business questions:
<ul type="circle">
<li>How       much total business did my newly remodeled stores do compared with the       chain average?</li>
<li>How       did leather goods items costing less than $5 do with my most frequent       shoppers?</li>
<li>What       was the revenue comparison of non-holiday weekend days to holiday weekend       days?</li>
</ul>
</li>
<li>Analyze      questions to assist design!</li>
</ul>
<p>I really like these &#8220;Getting There&#8221; bullets. Erik does a good job summarize and giving you something practical to walk away with. Nice stuff.</p>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=505&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/04/sswug-vconf-fact-table-design-101/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSWUG vConf &#8211; Dimension Table Design 101</title>
		<link>http://blog.tech4him.com/2009/04/sswug-vconf-dimension-table-design-101/</link>
		<comments>http://blog.tech4him.com/2009/04/sswug-vconf-dimension-table-design-101/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 15:28:22 +0000</pubDate>
		<dc:creator>Tom</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[business intelligence]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[sql server]]></category>
		<category><![CDATA[SSAS]]></category>
		<category><![CDATA[sswug]]></category>

		<guid isPermaLink="false">http://blog.tech4him.com/?p=500</guid>
		<description><![CDATA[Presenter: Erik Veerman
erik@solidq.com
Dimension Tables are one of the core components in a dimensional design and it is critical to design your dimension tables correctly in order to lay a solid foundation to a Business Intelligence system. This session dives into the dimension design techniques and considers the core components of a dimension table, surrogate keys, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/wilkersonfurniture/2247481690/" target="_blank"><img class="alignleft size-medium wp-image-501" style="border: 0pt none; margin: 10px;" title="2247481690_1976f16fde" src="http://blog.tech4him.com/wp-content/uploads/2247481690_1976f16fde-300x203.jpg" alt="2247481690_1976f16fde" width="300" height="203" /></a>Presenter: Erik Veerman<br />
<a href="mailto:erik@solidq.com">erik@solidq.com</a></p>
<p>Dimension Tables are one of the core components in a dimensional design and it is critical to design your dimension tables correctly in order to lay a solid foundation to a Business Intelligence system. This session dives into the dimension design techniques and considers the core components of a dimension table, surrogate keys, attributes, and hierarchies. In addition, we will consider advanced hierarchy types such as parent-child hierarchies, snowflake designs and unbalanced hierarchies. Finally, we will consider the best practices in tracking changes historically.<span id="more-500"></span></p>
<p>This session was intense so I just could not keep up with the slides. Here are just notes apart from the slides once I fell behind. Erik presents excellently and at a level appropriate for a 101 session without being condescending. Great job!</p>
<h3>Dimensions (review from Dimensional Modeling 101 Session)</h3>
<p>Dimensions &#8211; Qualitative<br />
Facts (Measures) &#8211; Quantitative</p>
<ul type="disc">
<li>Dimensions      (Qualitative information)
<ul type="circle">
<li>Business       perspective from which data is looked upon</li>
<li>Collection       of text attributes that are highly correlated</li>
<li>e.g.       Product, Store, Time, Manager of Store</li>
</ul>
</li>
<li>Conformity      (How Dimensions relate to each other)
<ul type="circle">
<li>Shared       with multiple fact relationships</li>
<li>Provides       data correlation</li>
</ul>
</li>
<li>Attributes      (many times is related to a table column, not always)
<ul type="circle">
<li>Descriptive       characteristics of an entity</li>
<li>Building       blocks of dimensions, describe each instance</li>
<li>Usually       text fields, with discrete values</li>
<li>e.g.,       the flavor of a product, the size of a product</li>
</ul>
</li>
<li>Hierarchies
<ul type="circle">
<li>drill-paths       within the dimension</li>
<li>Allows       top-down analysis</li>
<li>Natural       groupings of data relationships</li>
<li>e.g.,       date hierarchy is most common. Year to qtr to month to day for example)</li>
</ul>
</li>
<li>Dimension      Keys
<ul type="circle">
<li>Surrogate       Keys (Primary key, DW created)</li>
<li>Candidate       Business Keys/Alternate key (Source system keys, uniqueness)</li>
</ul>
</li>
<li>Dimension      Granularity
<ul type="circle">
<li>Granularity       in general is the level of detail of data contained in an entity (lowest       level detail)</li>
<li>A       dimensions granularity is the lowest level object which uniquely       identifies a member</li>
<li>Typically       the identifying name of a dimension</li>
</ul>
</li>
</ul>

<p>Name surrogate key with SK_<br />
Dimension naming DIM_<br />
Fact naming FACT_</p>
<p><a href="http://www.codeplex.com/MSFTDBProdSamples">http://www.codeplex.com/MSFTDBProdSamples</a> to download the AdventureWorksDW example.</p>
<h3>Hierarchies</h3>
<p>ALL level is usually the top level</p>
<p>All -&gt; Region -&gt; Country -&gt; City -&gt; Office</p>
<p>Seeing one we could use would related to the various Bible translation project locations currently under way. Need to keep in mind project sensitivities.</p>
<p>A dimension can have multiple hierarchies.</p>
<p><em>Standard Hierarchies</em></p>
<ul type="disc">
<li>All      levels have values.</li>
</ul>
<p><em>Ragged Hierarchies </em></p>
<ul type="disc">
<li>Missing      members at the mid-levels.
<ul type="circle">
<li>All       -&gt; Country -&gt; State -&gt; City and then you might be missing a       state is the country is Israel       since there are not states there.</li>
</ul>
</li>
</ul>
<p><em>Unbalanced Hierarchies</em></p>
<ul type="disc">
<li>Multiple      <em><span style="text-decoration: underline;">grains</span></em> in the hierarchy</li>
<li>May      not always be able to drill down to the lowest detail level since the      branch may stop short. (Think Org Chart)</li>
</ul>
<p>Demo: SSMS connected to a SSAS Cube</p>
<p>Product &#8211; Standard hierarchy</p>
<p>Sales  Territory &#8211; example of unbalanced hierarchy</p>
<p>Employee &#8211; another example of an unbalanced hierarchy</p>
<h3>Dimension Keys</h3>
<p>Business Keys</p>
<ul type="disc">
<li>Column(s)      identify the unique instance of a business record form the source system.</li>
<li>You      may have multiple records with the same Business Key. This is right as it      allows historical tracking.</li>
<li>Used in      the process that ties fact records with dimension members
<ul type="circle">
<li>Business       key is used to find the right surrogate key reference</li>
</ul>
</li>
</ul>
<p>Surrogate Keys</p>
<ul type="disc">
<li>
<ul type="circle">
<li>Defined       the dimension&#8217;s primary key</li>
<li>Usually       an integer
<ul type="disc">
<li>Important        to pick the right column width.</li>
<li>2,4,8        byte
<ul type="disc">
<li>SmallInt         &#8211; 2 bytes go for up to around 10k records</li>
<li>BigInt         &#8211; 8 bytes, for REALLY large dimensions</li>
</ul>
</li>
</ul>
</li>
<li>Consolidate       multi-value business keys</li>
<li>Allows       tracking of dimension history</li>
<li>Standardizes       dimension tables
<ul type="disc">
<li>All        are structured in the same way
<ul type="disc">
<li>Business         Key</li>
<li>Surrogate         key</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Don&#8217;t put attributes and business keys in your fact table.</p>
<p>Design Practices</p>
<ul type="disc">
<li>Avoid      smart keys</li>
<li>Avoid      production keys</li>
<li>production      may decide to reuse keys</li>
<li>the      company may acquire a competitor and thereby change the key building rules      changed record, but deliberately not changed key</li>
</ul>
<h3>Types of Dimensions</h3>
<p>Different dimensions types should be used in different scenarios.</p>
<p>Basic Dimension Types</p>
<ul type="disc">
<li>Standard      Star dimension
<ul type="circle">
<li>Single       table</li>
<li>Usually       date</li>
</ul>
</li>
<li>Snowflake
<ul type="circle">
<li>More       than one table in a cascading</li>
</ul>
</li>
<li>Parent      Child (unbalanced hierarchy)
<ul type="circle">
<li>Self       referencing surrogate to parent surrogate key relationship</li>
<li>Self       referencing business key relationship</li>
<li>e.g.       Org Chart, Chart of Accounts</li>
</ul>
</li>
</ul>
<p>Advanced Types</p>
<ul type="disc">
<li>Degenerate      (Seldom used. Be careful)
<ul type="circle">
<li>Dimensions       business key with no corresponding dimension table</li>
<li>Are       embedded in the fact table</li>
<li>Typically       use only when your Dim record count is about the same as the fact table       record count.</li>
<li>Usually       in line item oriented tables like sales tables</li>
</ul>
</li>
<li>Profile      or Junk Dimensions
<ul type="circle">
<li>Convenient       grouping of flags and attributes to get them out of the fact table into a       useful dimensional framework.</li>
<li>Good       for one-off lookups. Put them into a single dimension rather than a bunch       of small dimensions
<ul type="square">
<li>True/False        type attributes</li>
</ul>
</li>
</ul>
</li>
<li>Role      Playing Dimension
<ul type="circle">
<li>A single       dimension used for multiple purposes</li>
<li>Typical       example is the date dimension or the geography dimension (outrigger)</li>
</ul>
</li>
<li>Time      Dimension
<ul type="circle">
<li>Multiple       calendars
<ul type="square">
<li>Fiscal</li>
<li>Natural</li>
</ul>
</li>
<li>Usually       a single table</li>
</ul>
</li>
</ul>
<h3>Tracking History</h3>
<p>Industry best practices.</p>
<p>Changing Dimensions</p>
<ul class="unIndentedList">
<li> Slowly changing Dimensions
<ul>
<li>o &#8211; No change
<ul>
<li>Birthdate</li>
</ul>
</li>
<li>1 &#8211; Not interested in history (Updating a row/record)</li>
<li>2 &#8211; Slow changes. Adds new row/record</li>
<li>3 &#8211; Fast changes. Adds new column</li>
</ul>
</li>
</ul>
<ul class="unIndentedList">
<li> Rapidly changing Dimensions
<ul>
<li> Large dimensions
<ul>
<li>Limit type 2&#8217;s</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Good example graphical slides of Type 1 versus Type 2</p>
<p>Getting There</p>
<ul type="disc">
<li>Understand      dimension hierarchies and drill-paths</li>
<li>Confirm      historically tracked attribute req&#8217;s.
<ul type="circle">
<li>Don&#8217;t       be afraid to push back a little</li>
</ul>
</li>
<li>Check      source system data integrity, cleanliness</li>
<li>Review      current reports</li>
</ul>
<img src="http://blog.tech4him.com/?ak_action=api_record_view&id=500&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.tech4him.com/2009/04/sswug-vconf-dimension-table-design-101/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
