business intelligence portfolio 2003

34
BUSINESS INTELLIGENCE PORTFOLIO Troy Rockwell – June 8, 2009

Upload: troylrockwell

Post on 22-Jun-2015

488 views

Category:

Business


1 download

TRANSCRIPT

Page 1: Business Intelligence Portfolio 2003

BUSINESS INTELLIGENCE PORTFOLIO

Troy Rockwell – June 8, 2009

Page 2: Business Intelligence Portfolio 2003

Contents

Data Modeling T-SQL Programming SQL Server Integration Services

(SSIS) SQL Server Analysis Services (SSAS) MDX Programming SQL Server Reporting Services

(SSRS) Performance Point Server (PPS) SharePoint Server Experience Summary

358

131922273134

Contents Page

Page 3: Business Intelligence Portfolio 2003

Relational Databases and Data Warehouse Schemas

Data Modeling

Page 4: Business Intelligence Portfolio 2003

This is a model of a data warehouse schema. Designed using a Snowflake schema.

Data Warehouse Schema

Page 5: Business Intelligence Portfolio 2003

T-SQL Programming

Page 6: Business Intelligence Portfolio 2003

Query to return list of books where there are 10 copies or less and more than 50 reservations

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

Page 7: Business Intelligence Portfolio 2003

T-SQL Code to load DimDateCalendar dimension table of an OLAP databaseUSE 2009G1_Team1_Staging go DECLARE @StartDate As Datetime, @EndDate As Datetime SET @StartDate = '1/1/2002' SELECT @EndDate = CONVERT ( varchar(20) , MAX(CreationDate), 101 ) FROM dbo.Applicant PRINT 'Start While' WHILE @StartDate <= @EndDate BEGIN INSERT INTO dimDateCalendar (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 While'

Page 8: Business Intelligence Portfolio 2003

SQL Server Integration Services

Page 9: Business Intelligence Portfolio 2003

This ETL process imports multiple CSV time sheets, verifies referential integrity and loads them into a staging area. An email is sent upon completion notifying the system administrator that the job either succeeded or failed. A file containing job statistics is sent as an attachment as well.

SSIS ETL Package for Job Time Sheets

Page 10: Business Intelligence Portfolio 2003

The data flow task is the heart of the ETL process. Here, each record in an individual file is checked for referential integrity. Rows that fail the numerous checks are logged to file and emailed to the system administrator.

SSIS Data Flow Task

Page 11: Business Intelligence Portfolio 2003

This VBScript task was used in the ETL process to keep a running total of row statistics.

Public Sub Main() ' YOU DO NOT NEED TO USE ALL OF THE VARIABLES LISTED... ' The variables listed should be passed from your package. All variables MUST be defined at the package level. ' The first set of variables (InsertRecord, JobClosed,MissingJob,RecordChanged) are used in your Row Counters ' The second set of Variables (Accum_InsertRecord,Accum_JobClosed,Accum_MissingJob,Accum_RecordChanged) are ' use as accummulators and are used in the send mail task. Dim TotalInsertedRows As Integer = CInt(Dts.Variables("TotalInsertedRows").Value) Dim TotalExistingRows As Integer = CInt(Dts.Variables("TotalExistingRows").Value) Dim TotalInvalidRows As Integer = CInt(Dts.Variables("TotalInvalidRows").Value) Dim TotalSourceRows As Integer = CInt(Dts.Variables("TotalSourceRows").Value) Dim TotalMissingJobs As Integer = CInt(Dts.Variables("TotalMissingJobs").Value) Dim TotalJobsClosed As Integer = CInt(Dts.Variables("TotalJobsClosed").Value) Dim AccumInsertedRows As Integer = CInt(Dts.Variables("AccumInsertedRows").Value) Dim AccumExistingRows As Integer = CInt(Dts.Variables("AccumExistingRows").Value) Dim AccumInvalidRows As Integer = CInt(Dts.Variables("AccumInvalidRows").Value) Dim AccumSourceRows As Integer = CInt(Dts.Variables("AccumSourceRows").Value) Dim AccumMissingJobs As Integer = CInt(Dts.Variables("AccumMissingJobs").Value) Dim AccumJobsClosed As Integer = CInt(Dts.Variables("AccumJobsClosed").Value) Dts.Variables("AccumInsertedRows").Value = TotalInsertedRows + AccumInsertedRows Dts.Variables("AccumExistingRows").Value = TotalExistingRows + AccumExistingRows Dts.Variables("AccumInvalidRows").Value = TotalInvalidRows + AccumInvalidRows Dts.Variables("AccumSourceRows").Value = TotalSourceRows + AccumSourceRows Dts.Variables("AccumMissingJobs").Value = TotalMissingJobs + AccumMissingJobs Dts.Variables("AccumJobsClosed").Value = TotalJobsClosed + AccumJobsClosed Dts.TaskResult = Dts.Results.Success End Sub

Page 12: Business Intelligence Portfolio 2003

Here a distinct list of phases is extracted, transformed and loaded into a dimension table in a data warehouse used to track sales leads. Invalid entries are written to a log file that is mailed to the systems administrator.

SSIS Data Flow Task – Loading the Data Warehouse

Page 13: Business Intelligence Portfolio 2003

SQL Server Analysis Services

Page 14: Business Intelligence Portfolio 2003

The development and deployment of the All Works SSAS cube.

SQL Server Analysis Services

Page 15: Business Intelligence Portfolio 2003

Using the Cube Browser in Business Intelligence Dev Studio to test the deployed OLAP cube.

SQL Server Analysis Services

Page 16: Business Intelligence Portfolio 2003

Using BI Dev Studio to define calculated members.

SQL Server Analysis Services

Page 17: Business Intelligence Portfolio 2003

The AllWorks OLAP Cube fact tables were partitioned and tuned to an optimal level of aggregations using BI Dev Studio.

SQL Server Analysis Services Performance Tuning

Page 18: Business Intelligence Portfolio 2003

Key Performance Indicators are defined within the cube definition for display in Performance Point, Excel and executive dashboards.

SQL Server Analysis Services

Page 19: Business Intelligence Portfolio 2003

MDX Programming

Page 20: Business Intelligence Portfolio 2003

This MDX query was used to return the overhead by overhead category for two consecutive quarters and the percent change between them

-- Troy Rockwell -- SetFocus, LLC -- 4/21/2009 -- Show Overhead by Overhead Category for Q3 and Q4 2005, -- and also show the % of change between the two WITH MEMBER [Current Period] AS [Measures].[Weekly Over Head], format_string='currency' MEMBER [Previous Period] AS ( [Measures].[Weekly Over Head], [All Works Calendar].[Fy Qtr].CurrentMember.PrevMember ), format_string='currency' MEMBER [PctChg] as IIF( [Previous Period] > 0, ([Current Period] - [Previous Period] ) / [Previous Period], 'N/A'), format_string = 'percent' SELECT { [Current Period], [Previous Period], [PctChg] } ON COLUMNS, { [Overhead].[Overhead].Members } ON ROWS FROM [All Works Cube] WHERE [All Works Calendar].[Fy Qtr].[2005 Q4]

Page 21: Business Intelligence Portfolio 2003

This MDX query was used to return client jobs and the top three employees who worked the most hours

-- Troy Rockwell -- SetFocus, LLC -- 4/21/2009 -- For 2005, show the job and the top three employees who worked the most hours. -- Show the jobs in job order, and within the job show the employees in hours worked order WITH SET [OrderedJobs] AS [Job Master].[Description].Children SET [MainSet] AS Generate( [OrderedJobs], ( [Job Master].[Description].Currentmember, TOPCOUNT( [Employees].[Full Name].Children, 3, [Measures].[Hoursworked] ) ) ) SELECT { [Measures].[Hoursworked] } ON COLUMNS, NON EMPTY [MainSet] on rows FROM [All Works Cube] WHERE [All Works Calendar].[Fy Year].[2005]

Page 22: Business Intelligence Portfolio 2003

SQL Server Reporting Services

Page 23: Business Intelligence Portfolio 2003

Shows the use of Parameters in creating a Report and the multiple Queries required.

Parameterized Reporting – MDX View

Page 24: Business Intelligence Portfolio 2003

Shows the Layout and the ability to modify the Report.

Parameterized Reporting – MDX View

Page 25: Business Intelligence Portfolio 2003

Report to display Labor Hours and Dollars grouped by Employee and Week End Date. Report uses cascading parameters and grouping.

SQL Server Reporting Services - Preview

Page 26: Business Intelligence Portfolio 2003

Exploded Pie Chart Report shows regional distribution of user selectable product category and year.

SQL Server Reporting Services - Graphing

Page 27: Business Intelligence Portfolio 2003

Performance Point Server (PPS)

Page 28: Business Intelligence Portfolio 2003

This Overhead Chart shows weekly overhead by user selected category on a quarterly basis. The report was developed in Performance Point Server and published to a SharePoint Server.

Performance Point Server/SharePoint

Page 29: Business Intelligence Portfolio 2003

This Employee Labor Analysis Report shows quarterly labor dollars and the percentage of labor dollars to the total by employee. The second half of the report displays the employee labor dollars percentage by project.

Performance Point Server/Sharepoint

Page 30: Business Intelligence Portfolio 2003

Pictured above is a custom MDX query used to generate the data for Percent of Quarterly Labor Dollars report.

Performance Point Server/SharePoint

Page 31: Business Intelligence Portfolio 2003

SharePoint Server

Page 32: Business Intelligence Portfolio 2003

Pictured above is a SharePoint site created to integrate SSRS Reports, PPS Reports and Dashboards

and Excel Services at one seamless single point of contact

SharePoint Configuration and Reporting Integration

Page 33: Business Intelligence Portfolio 2003

Dashboard developed on SharePoint site of Key Performance Indicator scorecard showing overhead trend performance by quarter, client and job financials.

SharePoint Server

Page 34: Business Intelligence Portfolio 2003

Experience Summary 20 years of IT experience Data Modeling - Logical, Physical OLAP Design - Star, Snowflake Full Life Cycle Systems Development

Requirements gathering Design of database, web and desktop applications Development of databases, web apps, and desktop applications Professional Software Testing Experience Documentation of applications 4 years support and maintenance of existing apps

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