SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Business Intelligence
     Portfolio
       Chris Bull
        February 5, 2009
       Chris.Bull@SetFocus.com
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
Data Modeling


                          3
© Chris Bull 2009
This relational physical
                    model was created for a
                      mobile dispatching
                    application for telecom
                          Technicians


                                               4
© Chris Bull 2009
This model is for a book sales data
                               warehouse




                                     5
© Chris Bull 2009
SQL Server
                    TSQL Programming


                           6
© Chris Bull 2009
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
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
SQL Server
          Integration Services (SSIS)


                       9
© Chris Bull 2009
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
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
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
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
SQL Server
               Analysis Services (SSAS)


                          14
© Chris Bull 2009
The development and deployment of
                   the All Works SSAS cube.




                              15
© Chris Bull 2009
Browsing The All Works Cube Data




                                   16
© Chris Bull 2009
Definition Of Calculated Members




                                   17
© Chris Bull 2009
Definition Of Key Performance
                          Indicators (KPIs)




                                 18
© Chris Bull 2009
MDX Programming


                           19
© Chris Bull 2009
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
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
SQL Server Reporting
                      Services (SSRS)


                             22
© Chris Bull 2009
This report shows an employee’s labor by week ending
              date and job using grouping and cascading parameters




                                       23
© Chris Bull 2009
Here is an example of an
                    Exploded Pie Chart with document map




                                     24
© Chris Bull 2009
A complex matrix report using data
                      from an Analysis Services cube




                                    25
© Chris Bull 2009
Performance Point
                    Server 2007 (PPS)


                            26
© Chris Bull 2009
PPS Chart and Report in SharePoint




                                27
© Chris Bull 2009
Custom MDX query for the top chart on the
                               previous slide




                                        28
© Chris Bull 2009
Score card has hot link to graph for Sales Dollars




                                      29
© Chris Bull 2009
SharePoint
                    Server 2007


                         30
© Chris Bull 2009
Created SharePoint site collection with Reporting
                 Services and Excel Services Integration




                                     31
© Chris Bull 2009
KPIs using Excel Services and
                      web parts in SharePoint




                                  32
© Chris Bull 2009
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
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

Weitere ähnliche Inhalte

Andere mochten auch

Graduate School pays off for University- bussiness story ready to edit
Graduate School pays off for University- bussiness story ready to editGraduate School pays off for University- bussiness story ready to edit
Graduate School pays off for University- bussiness story ready to edit
Falicya Crace
 
Design: From Engineer to Designer Perspective
Design: From Engineer to Designer PerspectiveDesign: From Engineer to Designer Perspective
Design: From Engineer to Designer Perspective
Alan Ho
 
2002 Raymond James Conference
	 2002 Raymond James Conference	 2002 Raymond James Conference
2002 Raymond James Conference
finance2
 
valero energy Quarterly and Other SEC Reports 2004 3rd
valero energy  Quarterly and Other SEC Reports 2004 3rd valero energy  Quarterly and Other SEC Reports 2004 3rd
valero energy Quarterly and Other SEC Reports 2004 3rd
finance2
 
morgan stanley Earnings 1999 2nd
morgan stanley Earnings 1999 2ndmorgan stanley Earnings 1999 2nd
morgan stanley Earnings 1999 2nd
finance2
 
mckesson Letter to Stockholders 2001
mckesson Letter to Stockholders 2001mckesson Letter to Stockholders 2001
mckesson Letter to Stockholders 2001
finance2
 

Andere mochten auch (15)

Office dasar word
Office dasar wordOffice dasar word
Office dasar word
 
Kataloghappyco 161230042032-161230065311
Kataloghappyco 161230042032-161230065311Kataloghappyco 161230042032-161230065311
Kataloghappyco 161230042032-161230065311
 
Graduate School pays off for University- bussiness story ready to edit
Graduate School pays off for University- bussiness story ready to editGraduate School pays off for University- bussiness story ready to edit
Graduate School pays off for University- bussiness story ready to edit
 
Divine chairs
Divine chairsDivine chairs
Divine chairs
 
森林デザインプロジェクト プレゼン Final
森林デザインプロジェクト プレゼン Final森林デザインプロジェクト プレゼン Final
森林デザインプロジェクト プレゼン Final
 
5 1 диаграммы состояний
5 1 диаграммы состояний5 1 диаграммы состояний
5 1 диаграммы состояний
 
Design: From Engineer to Designer Perspective
Design: From Engineer to Designer PerspectiveDesign: From Engineer to Designer Perspective
Design: From Engineer to Designer Perspective
 
Online Customer Order Booking Portal (eCommerce Solution)
Online Customer Order Booking Portal (eCommerce Solution)Online Customer Order Booking Portal (eCommerce Solution)
Online Customer Order Booking Portal (eCommerce Solution)
 
Xlabs - Bemutatkozik a user experience
Xlabs - Bemutatkozik a user experienceXlabs - Bemutatkozik a user experience
Xlabs - Bemutatkozik a user experience
 
2002 Raymond James Conference
	 2002 Raymond James Conference	 2002 Raymond James Conference
2002 Raymond James Conference
 
valero energy Quarterly and Other SEC Reports 2004 3rd
valero energy  Quarterly and Other SEC Reports 2004 3rd valero energy  Quarterly and Other SEC Reports 2004 3rd
valero energy Quarterly and Other SEC Reports 2004 3rd
 
morgan stanley Earnings 1999 2nd
morgan stanley Earnings 1999 2ndmorgan stanley Earnings 1999 2nd
morgan stanley Earnings 1999 2nd
 
mckesson Letter to Stockholders 2001
mckesson Letter to Stockholders 2001mckesson Letter to Stockholders 2001
mckesson Letter to Stockholders 2001
 
500’s Demo Day Batch 15 >> Kanler
500’s Demo Day Batch 15 >> Kanler500’s Demo Day Batch 15 >> Kanler
500’s Demo Day Batch 15 >> Kanler
 
500 Demo Day Batch 18: Vision X
500 Demo Day Batch 18: Vision X500 Demo Day Batch 18: Vision X
500 Demo Day Batch 18: Vision X
 

Ähnlich wie Chris Bull's Bi Portfolio

Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolio
skymusic
 
Nitin\'s Business Intelligence Portfolio
Nitin\'s Business Intelligence PortfolioNitin\'s Business Intelligence Portfolio
Nitin\'s Business Intelligence Portfolio
npatel2362
 
Collaborate 2009 - Migrating a Data Warehouse from Microsoft SQL Server to Or...
Collaborate 2009 - Migrating a Data Warehouse from Microsoft SQL Server to Or...Collaborate 2009 - Migrating a Data Warehouse from Microsoft SQL Server to Or...
Collaborate 2009 - Migrating a Data Warehouse from Microsoft SQL Server to Or...
djkucera
 
Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolio
Chris Seebacher
 
MMYERS Portfolio
MMYERS PortfolioMMYERS Portfolio
MMYERS Portfolio
Mike Myers
 
B Woodward Portfolio
B Woodward PortfolioB Woodward Portfolio
B Woodward Portfolio
bwoodward
 
Running Intelligent Applications inside a Database: Deep Learning with Python...
Running Intelligent Applications inside a Database: Deep Learning with Python...Running Intelligent Applications inside a Database: Deep Learning with Python...
Running Intelligent Applications inside a Database: Deep Learning with Python...
Miguel González-Fierro
 

Ähnlich wie Chris Bull's Bi Portfolio (20)

Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolio
 
Tufte Sample Bi Portfolio
Tufte Sample Bi PortfolioTufte Sample Bi Portfolio
Tufte Sample Bi Portfolio
 
Nitin\'s Business Intelligence Portfolio
Nitin\'s Business Intelligence PortfolioNitin\'s Business Intelligence Portfolio
Nitin\'s Business Intelligence Portfolio
 
Collaborate 2009 - Migrating a Data Warehouse from Microsoft SQL Server to Or...
Collaborate 2009 - Migrating a Data Warehouse from Microsoft SQL Server to Or...Collaborate 2009 - Migrating a Data Warehouse from Microsoft SQL Server to Or...
Collaborate 2009 - Migrating a Data Warehouse from Microsoft SQL Server to Or...
 
Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolio
 
My Business Intelligence Portfolio
My Business Intelligence PortfolioMy Business Intelligence Portfolio
My Business Intelligence Portfolio
 
Beg sql
Beg sqlBeg sql
Beg sql
 
Beg sql
Beg sqlBeg sql
Beg sql
 
Linq
LinqLinq
Linq
 
MMYERS Portfolio
MMYERS PortfolioMMYERS Portfolio
MMYERS Portfolio
 
Advanced integration services on microsoft ssis 1
Advanced integration services on microsoft ssis 1Advanced integration services on microsoft ssis 1
Advanced integration services on microsoft ssis 1
 
B Woodward Portfolio
B Woodward PortfolioB Woodward Portfolio
B Woodward Portfolio
 
CV Chandrajit Samanta
CV Chandrajit SamantaCV Chandrajit Samanta
CV Chandrajit Samanta
 
Colin\'s BI Portfolio
Colin\'s BI PortfolioColin\'s BI Portfolio
Colin\'s BI Portfolio
 
Migrating on premises workload to azure sql database
Migrating on premises workload to azure sql databaseMigrating on premises workload to azure sql database
Migrating on premises workload to azure sql database
 
SQL Server 2008 for Developers
SQL Server 2008 for DevelopersSQL Server 2008 for Developers
SQL Server 2008 for Developers
 
Running Intelligent Applications inside a Database: Deep Learning with Python...
Running Intelligent Applications inside a Database: Deep Learning with Python...Running Intelligent Applications inside a Database: Deep Learning with Python...
Running Intelligent Applications inside a Database: Deep Learning with Python...
 
Bi Ppt Portfolio Elmer Donavan
Bi Ppt Portfolio  Elmer DonavanBi Ppt Portfolio  Elmer Donavan
Bi Ppt Portfolio Elmer Donavan
 
Chris Seebacher Portfolio
Chris Seebacher PortfolioChris Seebacher Portfolio
Chris Seebacher Portfolio
 
Tactical data engineering
Tactical data engineeringTactical data engineering
Tactical data engineering
 

Chris Bull's Bi Portfolio

  • 1. Business Intelligence Portfolio Chris Bull February 5, 2009 Chris.Bull@SetFocus.com
  • 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. Data Modeling 3 © Chris Bull 2009
  • 4. This relational physical model was created for a mobile dispatching application for telecom Technicians 4 © Chris Bull 2009
  • 5. This model is for a book sales data warehouse 5 © Chris Bull 2009
  • 6. SQL Server TSQL Programming 6 © Chris Bull 2009
  • 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. 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. SQL Server Integration Services (SSIS) 9 © Chris Bull 2009
  • 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. 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. 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. 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. SQL Server Analysis Services (SSAS) 14 © Chris Bull 2009
  • 15. The development and deployment of the All Works SSAS cube. 15 © Chris Bull 2009
  • 16. Browsing The All Works Cube Data 16 © Chris Bull 2009
  • 17. Definition Of Calculated Members 17 © Chris Bull 2009
  • 18. Definition Of Key Performance Indicators (KPIs) 18 © Chris Bull 2009
  • 19. MDX Programming 19 © Chris Bull 2009
  • 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. 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. SQL Server Reporting Services (SSRS) 22 © Chris Bull 2009
  • 23. This report shows an employee’s labor by week ending date and job using grouping and cascading parameters 23 © Chris Bull 2009
  • 24. Here is an example of an Exploded Pie Chart with document map 24 © Chris Bull 2009
  • 25. A complex matrix report using data from an Analysis Services cube 25 © Chris Bull 2009
  • 26. Performance Point Server 2007 (PPS) 26 © Chris Bull 2009
  • 27. PPS Chart and Report in SharePoint 27 © Chris Bull 2009
  • 28. Custom MDX query for the top chart on the previous slide 28 © Chris Bull 2009
  • 29. Score card has hot link to graph for Sales Dollars 29 © Chris Bull 2009
  • 30. SharePoint Server 2007 30 © Chris Bull 2009
  • 31. Created SharePoint site collection with Reporting Services and Excel Services Integration 31 © Chris Bull 2009
  • 32. KPIs using Excel Services and web parts in SharePoint 32 © Chris Bull 2009
  • 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. 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