Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Chris Bull's Bi Portfolio


Published on

This portfolio contains examples of my development skills

  • Be the first to comment

  • Be the first to like this

Chris Bull's Bi Portfolio

  1. 1. Business Intelligence Portfolio Chris Bull February 5, 2009
  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” February 6, 2009 34 © Chris Bull 2009