Chris Bull's Bi Portfolio

1,182 views

Published on

This portfolio contains examples of my development skills

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,182
On SlideShare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Chris Bull's Bi Portfolio

  1. 1. Business Intelligence Portfolio Chris Bull February 5, 2009 Chris.Bull@SetFocus.com
  2. 2. Contents This portfolio contains examples of my development skills in the Business Intelligence arena. Contents Page Data Modeling 3 SQL Programming 6 SQL Server Integration Services (SSIS) 9 SQL Server Analysis Services (SSAS) 14 MDX Programming 19 SQL Server Reporting Services (SSRS) 22 Performance Point Server (PPS) 26 SharePoint Server 30 Experience Summary 33 Recommendations 34 2 © Chris Bull 2009
  3. 3. Data Modeling 3 © Chris Bull 2009
  4. 4. This relational physical model was created for a mobile dispatching application for telecom Technicians 4 © Chris Bull 2009
  5. 5. This model is for a book sales data warehouse 5 © Chris Bull 2009
  6. 6. SQL Server TSQL Programming 6 © Chris Bull 2009
  7. 7. This query joins the Item and Reservation tables to produce a list of books where there are ten copies or less and more than 50 reservations. Sample Output SELECT ti.title_no , ti.title , rs.isbn , COUNT(*) FROM Title ti JOIN item itm ON ti.title_no = itm.title_no JOIN reservation rs ON rs.isbn = itm.isbn WHERE 11 > (SELECT count(cp.copy_no) FROM copy cp WHERE cp.isbn = itm.isbn) AND itm.isbn IN (SELECT DISTINCT rs1.isbn FROM reservation rs1 WHERE 50 < (SELECT COUNT(*) FROM Reservation rs2 WHERE rs1.isbn = rs2.isbn)) GROUP BY ti.title_no, ti.title, rs.isbn ORDER BY ti.title_no 7 © Chris Bull 2009
  8. 8. This script loads the Date Dimension of an Analysis Services staging database. This script could easily be converted into a Stored Procedure with Start and End date parameters. USE B4_TeamE_Staging go DECLARE @StartDate As Datetime, @EndDate As Datetime SET @StartDate = '1/1/2002' Sample Output SELECT @EndDate = CONVERT ( varchar(20) , MAX(CreationDate), 101 ) FROM Applicant PRINT 'Start Loop' WHILE @StartDate <= @EndDate BEGIN INSERT INTO dimDate (CreationDate ,Year ,WeekEnding ,MonthValue ,MonthDesc ,QtrValue ,QtrDesc) VALUES( @StartDate, year(@StartDate), @StartDate + ( 7 - datepart(weekday,@StartDate)), -- Compute Weekending Date Convert(Varchar(5),year(@StartDate)) + Right(('0'+ convert(Varchar(50),datepart(m,@StartDate))),2), -- ex. 200501, 200502.. datename(m,@StartDate), -- set name of the month Convert(Varchar(5),year(@StartDate)) + Convert(Varchar(4),datepart(q, @StartDate)), -- ex. 20051, 20052, 20053, 20054 Datename(yyyy,@StartDate) + ' Q' + datename(q,@StartDate) -- ex. 2005 Q1... ) SET @StartDate = Dateadd(d,1,@StartDate) PRINT @startdate END PRINT 'End Loop' 8 © Chris Bull 2009
  9. 9. SQL Server Integration Services (SSIS) 9 © Chris Bull 2009
  10. 10. This ETL process imports multiple CSV files containing Job Time Sheets and loads them into a staging database. Upon completion, a status email is sent indicating job statistics and if errors occurred the error log file is attached. 10 © Chris Bull 2009
  11. 11. This data flow task for the Job Time Sheets package processes through a single CSV file doing multiple lookups to ensure database integrity. It logs any rows that error out for review and correction. 11 © Chris Bull 2009
  12. 12. This VB.Net script was used in this package to keep a running total of the rows processed and the rows that contained errors. ' Microsoft SQL Server Integration Services Script Task ' Write scripts using Microsoft Visual Basic ' The ScriptMain class is the entry point of the Script Task. Imports System Imports System.Data Imports System.Math Imports Microsoft.SqlServer.Dts.Runtime Public Class ScriptMain ' The execution engine calls this method when the task executes. ' To access the object model, use the Dts object. Connections, variables, events, ' and logging features are available as static members of the Dts class. ' Before returning from this method, set the value of Dts.TaskResult to indicate ' success or failure. ' ' To open Code and Text Editor Help, press F1. ' To open Object Browser, press Ctrl+Alt+J. Public Sub Main() Dts.Variables(quot;TotalFilesProcessedCountquot;).Value = CInt(Dts.Variables(quot;TotalFilesProcessedCountquot;).Value) + 1 Dts.Variables(quot;TotalErrorRowCountquot;).Value = _ CInt(Dts.Variables(quot;TotalErrorRowCountquot;).Value) + CInt(Dts.Variables(quot;ErrorRowCountquot;).Value) Dts.Variables(quot;TotalInsertRowCountquot;).Value = _ CInt(Dts.Variables(quot;TotalInsertRowCountquot;).Value) + CInt(Dts.Variables(quot;InsertRowCountquot;).Value) Dts.Variables(quot;TotalUpdateRowCountquot;).Value = _ CInt(Dts.Variables(quot;TotalUpdateRowCountquot;).Value) + CInt(Dts.Variables(quot;UpdateRowCountquot;).Value) Dts.Variables(quot;TotalRowCountquot;).Value = _ CInt(Dts.Variables(quot;TotalRowCountquot;).Value) + CInt(Dts.Variables(quot;FileRowCountquot;).Value) Dts.TaskResult = Dts.Results.Success End Sub End Class 12 © Chris Bull 2009
  13. 13. This is a complex package that reads in a distinct list of values from a table and then combines them into a smaller standardized list based on predefined business rules. 13 © Chris Bull 2009
  14. 14. SQL Server Analysis Services (SSAS) 14 © Chris Bull 2009
  15. 15. The development and deployment of the All Works SSAS cube. 15 © Chris Bull 2009
  16. 16. Browsing The All Works Cube Data 16 © Chris Bull 2009
  17. 17. Definition Of Calculated Members 17 © Chris Bull 2009
  18. 18. Definition Of Key Performance Indicators (KPIs) 18 © Chris Bull 2009
  19. 19. MDX Programming 19 © Chris Bull 2009
  20. 20. The query computes Weekly Overhead costs for the currently selected period, previous period, and the percent change over the previous period WITH Sample Output MEMBER [Current Period] as [Measures].[Weekly Over Head] MEMBER [Previous Period] as ([Measures].[Weekly Over Head] ,[All Works Calendar].[FY Calendar].PrevMember) ,FORMAT_STRING = 'Currency' MEMBER [Pct Change] AS CASE WHEN ([Current Period] = NULL AND [Previous Period] = NULL) THEN NULL WHEN [Previous Period] <> 0 THEN ([Current Period] - [Previous Period]) / [Previous Period] ELSE 'N/A' END ,FORMAT_STRING = 'Percent' SELECT {[Current Period],[Previous Period],[Pct Change]} ON COLUMNS, NON EMPTY [Overhead].[Description].Members ON ROWS FROM [All Works Cube] WHERE ([All Works Calendar].[2005 Q4]) 20 © Chris Bull 2009
  21. 21. This query produces a list of Jobs and within Job the top three employees who worked the most hours SELECT [Measures].[Hoursworked] ON COLUMNS, NON EMPTY ORDER (generate ([Job Master].[Description].Children, ([Job Master].[Description].CurrentMember, Topcount ([Employees].[Full Name].Children ,3 ,[Measures].[Hoursworked]))), [Measures].[Hoursworked],DESC) ON ROWS FROM [All Works Cube] Sample Output WHERE [All Works Calendar].[Fy Year].[2005] 21 © Chris Bull 2009
  22. 22. SQL Server Reporting Services (SSRS) 22 © Chris Bull 2009
  23. 23. This report shows an employee’s labor by week ending date and job using grouping and cascading parameters 23 © Chris Bull 2009
  24. 24. Here is an example of an Exploded Pie Chart with document map 24 © Chris Bull 2009
  25. 25. A complex matrix report using data from an Analysis Services cube 25 © Chris Bull 2009
  26. 26. Performance Point Server 2007 (PPS) 26 © Chris Bull 2009
  27. 27. PPS Chart and Report in SharePoint 27 © Chris Bull 2009
  28. 28. Custom MDX query for the top chart on the previous slide 28 © Chris Bull 2009
  29. 29. Score card has hot link to graph for Sales Dollars 29 © Chris Bull 2009
  30. 30. SharePoint Server 2007 30 © Chris Bull 2009
  31. 31. Created SharePoint site collection with Reporting Services and Excel Services Integration 31 © Chris Bull 2009
  32. 32. KPIs using Excel Services and web parts in SharePoint 32 © Chris Bull 2009
  33. 33. Experience Summary 14 years of I.T. experience Requirements gathering Data Modeling - Logical, Physical, Star, Snowflake Full life cycle systems development SQL - Queries, Stored Procedures, Triggers, Query Optimization MS Business Intelligence SQL Server 2005 Integration Services (SSIS) Analysis Services (SSAS) MDX Programming Reporting Services (SSRS) Excel & Excel Services Performance Point Server SharePoint Server 33 © Chris Bull 2009
  34. 34. Recommendations Roger Mabry, Student, SetFocus (academic) studied with you “Chris is a dynamic individual who leads by example. His insight to issues & projects are phenomenal. Chris acted as Team leader for the final project. With systems down, Chris persevered as though there were no obstacles to overcome. With 25% of his teams resources eliminated, His team came through on time & under budget. Chris is a quot;GO TOquot; guy & comes quot;Highlyquot; Recommended.” February 5, 2009 Robert Witkowski, Dean of Students, SetFocus (academic) advised you “To Whom It May Concern: It is my pleasure to provide a recommendation for Chris Bull. Graduating from the SetFocus Master’s Program, Chris Bull excelled in our intense, integrated, in-depth, full time Business Intelligence Training Program. I was impressed by Chris’s ability to work with many technologies during his time with SetFocus. Chris has gained experience with the latest Microsoft BI Technologies, including but not limited to: • Microsoft SQL Server Integration Services (SSIS) • Microsoft SQL Server Analysis Services (SSAS) • Microsoft SQL Server Reporting (SSRS) • Microsoft Office SharePoint Server 2007 In addition, Chris has established competency with defining business requirements, designing the Business Process Model and developing, deploying, and managing a BI System. I found Chris’s excellent work ethic was demonstrated by his ability to work in an environment with firm deadlines, very large workloads, and complex specifications. Chris delivers projects in a time efficient manner, is flexible with specification changes and is able to work within teams on assigned projects. I recommend Chris as a solid addition to your Business Intelligence staff. If you would like more information, I’d be happy to provide it. Sincerely, Robert Witkowski Dean of Students rwitkowski@setfocus.com” February 6, 2009 34 © Chris Bull 2009

×