SlideShare a Scribd company logo
Portfolio for Charles Tontz

                  Business Intelligence Masters Program
                             SQL Server 2005
                 Integration/Analysis/Reporting Services
                                   Project

      Introduction: Project Summary



Design and build a SQL Server 2005 database to track employee and customer information,
timesheet and labor rate data as well as job order information, job materials, and customer
invoices for a simulated construction company called AllWorks, Inc. Update the database from
various Excel and flat file sources. Create four cubes in Analysis Services and design and
implement numerous MDX queries to produce datasets sliced and sorted various ways. Create
five Key Performance Indicators (KPI’s) which are then linked to Excel 2007. Setup up several
Excel 2007 workbooks to provide the ability to use data in the cubes in almost any view, including
pertinent KPI’s so that one instantly knows if the trend for various categories exceeds a
predefined goal, is within an acceptable range, or is falling short. Produce reports from the
provided specifications and put them on the report server where anyone with access rights can
open and view the reports, including two with drop down selections for category and time
periods. Generate sample reports to a PDF file and save them to a file on the drive.


Audience:



This project was a collaboration of IT and department managers, and directly responsible to one
of the senior executives.
Project Goals:




                                     ** Integration Services **

Review source data from three different source types and build packages that process and
validate the data. This data was used to update the database with any new or changed records.
Emails were generated with the results for each package, including Error Event Handlers if any
part of the process failed, and writing error logs where appropriate. Otherwise, the email
indicated successful completion with the total number of records processed, inserted, and
updated, and any error records written to an error file. A Master package was created as a
container for the eight packages and was scheduled to run each night. Two other packages were
created to handle nightly database backups, then re-index all files and shrink the database.




                 SSIS Project db sample Package Data Flow
Eleven packages were created for the entire project. This package grabs the most recent client data
from and Excel file, converts and validates it, then identifies new, existing, and error records, and
proceeds accordingly to insert or update the SQL Server database, and write any errors to a file
which can be reviewed by the appropriate person for correction
                                                      .

         (Click on image to view -- then again on enlarged image, depending on your monitor settings)




                                               VB Script Task
One of the packages required reading multiple Excel files and totalling record counts for all files. To allow this,

the following VB code was entered in a task to keep track of the totals:



VB Script for tracking total counts in a For Each Loop Container:
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()
        Dim InitialRecordCount As Integer =
CInt(Dts.Variables(quot;InitialRecordCountquot;).Value)
        Dim UpdateRecordCount As Integer =
CInt(Dts.Variables(quot;UpdateRecordCountquot;).Value)
        Dim ErrorRecordCount As Integer =
CInt(Dts.Variables(quot;ErrorRecordCountquot;).Value)
        Dim InsertRecordCount As Integer =
CInt(Dts.Variables(quot;InsertRecordCountquot;).Value)

        Dim InitialRecordCount_fel As Integer =
CInt(Dts.Variables(quot;InitialRecordCount_felquot;).Value)
        Dim UpdateRecordCount_fel As Integer =
CInt(Dts.Variables(quot;UpdateRecordCount_felquot;).Value)
        Dim ErrorRecordCount_fel As Integer =
CInt(Dts.Variables(quot;ErrorRecordCount_felquot;).Value)
        Dim InsertRecordCount_fel As Integer =
CInt(Dts.Variables(quot;InsertRecordCount_felquot;).Value)

        Dts.Variables(quot;InitialRecordCountquot;).Value = InitialRecordCount +
InitialRecordCount_fel
        Dts.Variables(quot;UpdateRecordCountquot;).Value = UpdateRecordCount +
UpdateRecordCount_fel
        Dts.Variables(quot;ErrorRecordCountquot;).Value = ErrorRecordCount +
ErrorRecordCount_fel
        Dts.Variables(quot;InsertRecordCountquot;).Value = InsertRecordCount +
InsertRecordCount_fel

         Dts.TaskResult = Dts.Results.Success
     End Sub

End Class
The variables are initialized, and the _fel (for each loop) variables increment the
Initial/Update/Error/Insert RecordCount variables as each file is processed. The
accumulated totals are reported via email when the package completes all processing
tasks.




                                        ** Analysis Services **



The next piece of the project involved creating four cubes in Analysis Server, with a
sample structure represented below. This cube (a star-schema) was created to allow
analysis of job categories by just about any measure of which one could conceive.
Several calculated members were added to provide total cost, open invoice amounts,
etc.


          (Click on image to view -- then again on enlarged image, depending on your monitor settings)




This is one example of the cube as viewed from Excel. Dimensions and Measures are loaded into
an Excel 'Pivot Table' for analysis. The data can be sorted by any column, even the stoplights, for
review and analysis. Rows, columns, and values can be changed at will, allowing enormous
flexibility, providing aggregation at higher levels with supplied drill-down to detail levels, if
needed.


          (Click on image to view -- then again on enlarged image, depending on your monitor settings)
Sample MDX query:



-- Chuck Tontz

-- 7/09/2008

-- ProjectOverheadView cube: Overhead by category for Q3 & Q4 of 2005, with Change Percentage



WITH

MEMBER [Overhead Amount] AS

[Measures].[Weekly Over Head], format_string='currency'



MEMBER [Change Pct] AS

IIF(([Overhead Amount],[FY Qtr].PrevMember) = NULL,

        NULL,

([Overhead Amount] - ([Overhead Amount],[FY Qtr].PrevMember))

/ ([Overhead Amount],[FY Qtr].PrevMember)), format_string = 'percent'



SELECT {

([Qry Overhead Summary].[FY Qtr].&[2005 Q3], [Overhead Amount])

,([Qry Overhead Summary].[FY Qtr].&[2005 Q4],[Overhead Amount])
, ( [Qry Overhead Summary].[FY Qtr].&[2005 Q4], [Change Pct])

        }       ON COLUMNS,



NON EMPTY [Overhead].[Description].Members ON ROWS



FROM ProjectOverheadView



Results: Overhead amounts for current and prior quarter with the change percentage.



                              2005 Q3              2005 Q4              2005 Q4
                              Overhead             Overhead             Change
                              Amount               Amount               Pct
 All                                 $7,923.24           $8,706.71          9.89%
 ACCOUNTANTS FEES             (null)                      $140.00       (null)
 ADVERTISING                  (null)                        $44.00      (null)
 ESTIMATED                    (null)                      $216.00       (null)
 TAX/QTRLY235
 EXTRA: FUEL                            $537.12            $528.71        -1.57%
 HEALTH INSURANCE                      $4,163.40          $3,577.77      -14.07%
 LIABILITY INSURANCE          (null)                         $38.00     (null)
 MISC EQUIPMENT               (null)                         $44.00     (null)
 MOBIL PHONES                 (null)                         $86.00     (null)
 RENT                         (null)                       $104.00      (null)
 TRUCKS                                $3,222.72          $3,712.23       15.19%
 WORKMANS COMP                (null)                       $216.00      (null)


                                       ** Reporting Services **



Six reports were produced from existing specification requirements. These included a
simple table-style report from a SQL Server 2005 database, with the remaining reports
using datasets from the cubes that were built in Analysis Services. Several of these
were graphs, including one with a graph and summary table. These were then
published to the network ReportServer so that anyone with access rights could view
the report, and print to a PDF file, or several other formats, including Excel, if needed.
This report is an example of a table report with multiple parameters available to the
user. Specifically, the report runs Timesheets for the selected Employee, with a
from/to date range, summarized by week, by job. It was created from an OLAP cube in
the data warehouse. (If the total hours for each job/week look suspicious, it's because
the fictitious data for this report is repetitive for some periods. If you view following
pages in the PDF version below, it becomes apparent that the total job hours is
not 10.5 times the hours worked by the employee.)


         (Click on image to view -- then again on enlarged image, depending on your monitor settings)




The MDX code is generated automatically in BIDS, but the report dataset was modified after

creation to add the parameters.


Report Dataset:



SELECT NON EMPTY { [Measures].[Total Labor], [Measures].[Hoursworked] } ON COLUMNS,

NON EMPTY { (STRTOMEMBER(@FromTimeDay, CONSTRAINED) : STRTOMEMBER(@ToTimeDay,

CONSTRAINED))* [Job Master].[Description].[Description] }

ON ROWS FROM [Project Labor Cube]

where STRTOSET(@parmEmployee)



List Employees for parameter selection:



WITH MEMBER [Measures].[ParameterCaption] AS '[Employees].[Full

Name].CURRENTMEMBER.MEMBER_CAPTION' MEMBER [Measures].[ParameterValue] AS '[Employees].
[Full Name].CURRENTMEMBER.UNIQUENAME' MEMBER [Measures].[ParameterLevel] AS '[Employees].

[Full Name].CURRENTMEMBER.LEVEL.ORDINAL' SELECT {[Measures].[ParameterCaption], [Measures].

[ParameterValue], [Measures].[ParameterLevel]} ON COLUMNS , [Employees].[Full Name].Children ON ROWS

FROM [Project Labor Cube]




FromTimeDay dataset:



WITH MEMBER [Measures].[ParameterCaption] AS '[Project Labor View].[Week End

Date].CURRENTMEMBER.MEMBER_CAPTION' MEMBER [Measures].[ParameterValue] AS '[Project Labor

View].[Week End Date].CURRENTMEMBER.UNIQUENAME' MEMBER [Measures].[ParameterLevel] AS

'[Project Labor View].[Week End Date].CURRENTMEMBER.LEVEL.ORDINAL' SELECT {[Measures].

[ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]} ON COLUMNS , [Project Labor

View].[Week End Date].Children ON ROWS FROM [Project Labor Cube]



ToTimeDay dataset:



WITH MEMBER [Measures].[ParameterCaption] AS '[Project Labor View].[Week End

Date].CURRENTMEMBER.MEMBER_CAPTION' MEMBER [Measures].[ParameterValue] AS '[Project Labor

View].[Week End Date].CURRENTMEMBER.UNIQUENAME' MEMBER [Measures].[ParameterLevel] AS

'[Project Labor View].[Week End Date].CURRENTMEMBER.LEVEL.ORDINAL' SELECT {[Measures].

[ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]} ON COLUMNS , [Project Labor

View].[Week End Date].Children ON ROWS FROM [Project Labor Cube]

All reports were then deployed to the intranet report server. (The creative naming scheme

was simply to comply with the report specifications. Normally, a more useful name is

provided.)


 (Click on image to view -- then again on enlarged image, depending on your monitor

                                               settings)
The same report after being exported to a PDF file:


(Click on link to view) Report5.pdf


These reports can be made available to groups, or specific individuals, as needed.




                                 ** SharePoint Server **


The SharePoint project was an excercise in familiarity, rather than mastery. It quickly

becomes clear why a SharePoint Administrator is a requirement! The only requirement was

to set up a dedicated reports page and KPI List page and publish reports there. A very

convenient feature of SharePoint is that it allows anyone to output the report as an Adobe

PDF document or an Excel workbook.


(Click on image to view -- then again on enlarged image, depending on your monitor

settings)
Any of the listed reports can be viewed in browser, or exported to a PDF or Excel file,

among other choices.


                              ** PerformancePoint Server **


PerformancePoint Server's Dashboard Designer provides an exellent tool for designing

dashboards and business scorecards which can be pushed out to a SharePoint page. As the

attached example pages show, summarized data can be expressed several ways, and still

allow for drill-down capability in most cases. The project specified four reports with

requirements for charts, summary data reports, KPI's and business scorecards. All reports

were created within Dashboard Designer as an analytic chart or grid, but reports created in

SQL Server Reporting Services can be imported as well.


(Click on images to view -- then again on enlarged image, depending on your monitor

settings)




ScoreCards:




Report of Materials used summarized quarterly by selected client:
Chart of weekly overhead for multiply-selectable accounts:




Labor hours and $ total for Top Ten jobs and Top Five workers by selected quarter:

More Related Content

What's hot

Enterprise State Management with NGRX/platform
Enterprise State Management with NGRX/platformEnterprise State Management with NGRX/platform
Enterprise State Management with NGRX/platform
Ilia Idakiev
 
ITB2019 10 in 50: Ten Coldbox Modules You Should be Using in Every App - Jon ...
ITB2019 10 in 50: Ten Coldbox Modules You Should be Using in Every App - Jon ...ITB2019 10 in 50: Ten Coldbox Modules You Should be Using in Every App - Jon ...
ITB2019 10 in 50: Ten Coldbox Modules You Should be Using in Every App - Jon ...
Ortus Solutions, Corp
 
Chris Bull's Bi Portfolio
Chris Bull's Bi PortfolioChris Bull's Bi Portfolio
Chris Bull's Bi Portfolio
z3bull
 
Evan Schultz - Angular Summit - 2016
Evan Schultz - Angular Summit - 2016Evan Schultz - Angular Summit - 2016
Evan Schultz - Angular Summit - 2016Evan Schultz
 
React lecture
React lectureReact lecture
React lecture
Christoffer Noring
 
Reactive programming every day
Reactive programming every dayReactive programming every day
Reactive programming every day
Vadym Khondar
 

What's hot (6)

Enterprise State Management with NGRX/platform
Enterprise State Management with NGRX/platformEnterprise State Management with NGRX/platform
Enterprise State Management with NGRX/platform
 
ITB2019 10 in 50: Ten Coldbox Modules You Should be Using in Every App - Jon ...
ITB2019 10 in 50: Ten Coldbox Modules You Should be Using in Every App - Jon ...ITB2019 10 in 50: Ten Coldbox Modules You Should be Using in Every App - Jon ...
ITB2019 10 in 50: Ten Coldbox Modules You Should be Using in Every App - Jon ...
 
Chris Bull's Bi Portfolio
Chris Bull's Bi PortfolioChris Bull's Bi Portfolio
Chris Bull's Bi Portfolio
 
Evan Schultz - Angular Summit - 2016
Evan Schultz - Angular Summit - 2016Evan Schultz - Angular Summit - 2016
Evan Schultz - Angular Summit - 2016
 
React lecture
React lectureReact lecture
React lecture
 
Reactive programming every day
Reactive programming every dayReactive programming every day
Reactive programming every day
 

Viewers also liked

bHip Europe-Brochure English
bHip Europe-Brochure EnglishbHip Europe-Brochure English
bHip Europe-Brochure English
Tweuropa Network
 
Presentation1(97)
Presentation1(97)Presentation1(97)
Presentation1(97)
Filiz Efe
 
Digital life
Digital lifeDigital life
Digital life
Jose Benitez
 
Evolution of Stock Photography
Evolution of Stock PhotographyEvolution of Stock Photography
Evolution of Stock PhotographyFiliz Efe
 
FMT - Our work
FMT - Our workFMT - Our work
FMT - Our work
Jose Benitez
 
Prestatiemanagement 1
Prestatiemanagement 1Prestatiemanagement 1
Prestatiemanagement 1
Ruitenbeek
 
Tannienkinhchuc
TannienkinhchucTannienkinhchuc
Tannienkinhchuc
gueste66fd7
 
Tranh Thơ LoàI Hoa CuốI Hạ
Tranh Thơ LoàI Hoa CuốI HạTranh Thơ LoàI Hoa CuốI Hạ
Tranh Thơ LoàI Hoa CuốI Hạ
gueste66fd7
 
Social media presentation nov 17, 2010 slide share
Social media presentation nov 17, 2010   slide shareSocial media presentation nov 17, 2010   slide share
Social media presentation nov 17, 2010 slide sharetudorwilliams
 
MCDM Health Presentation
MCDM Health PresentationMCDM Health Presentation
MCDM Health Presentation
Filiz Efe
 
Top 5 Free Resources for Business Leaders to Achieve Social Media Success
Top 5 Free Resources for Business Leaders to Achieve Social Media SuccessTop 5 Free Resources for Business Leaders to Achieve Social Media Success
Top 5 Free Resources for Business Leaders to Achieve Social Media Success
PRAdviser.net
 
Research Paper Final
Research Paper FinalResearch Paper Final
Research Paper Final
stephendebra
 
Defying The Downturn
Defying The DownturnDefying The Downturn
Defying The Downturnguestb5086
 
Fair Use & Digital Media (Extended Version)
Fair Use & Digital Media (Extended Version)Fair Use & Digital Media (Extended Version)
Fair Use & Digital Media (Extended Version)
Filiz Efe
 
Visual Storytelling For Web: Tips And Techniques
Visual Storytelling For Web: Tips And TechniquesVisual Storytelling For Web: Tips And Techniques
Visual Storytelling For Web: Tips And Techniques
Filiz Efe
 
USING SOCIAL MEDIA IN YOUR COMMUNICATION STRATEGIES
USING SOCIAL MEDIA IN YOUR COMMUNICATION STRATEGIESUSING SOCIAL MEDIA IN YOUR COMMUNICATION STRATEGIES
USING SOCIAL MEDIA IN YOUR COMMUNICATION STRATEGIES
tudorwilliams
 

Viewers also liked (16)

bHip Europe-Brochure English
bHip Europe-Brochure EnglishbHip Europe-Brochure English
bHip Europe-Brochure English
 
Presentation1(97)
Presentation1(97)Presentation1(97)
Presentation1(97)
 
Digital life
Digital lifeDigital life
Digital life
 
Evolution of Stock Photography
Evolution of Stock PhotographyEvolution of Stock Photography
Evolution of Stock Photography
 
FMT - Our work
FMT - Our workFMT - Our work
FMT - Our work
 
Prestatiemanagement 1
Prestatiemanagement 1Prestatiemanagement 1
Prestatiemanagement 1
 
Tannienkinhchuc
TannienkinhchucTannienkinhchuc
Tannienkinhchuc
 
Tranh Thơ LoàI Hoa CuốI Hạ
Tranh Thơ LoàI Hoa CuốI HạTranh Thơ LoàI Hoa CuốI Hạ
Tranh Thơ LoàI Hoa CuốI Hạ
 
Social media presentation nov 17, 2010 slide share
Social media presentation nov 17, 2010   slide shareSocial media presentation nov 17, 2010   slide share
Social media presentation nov 17, 2010 slide share
 
MCDM Health Presentation
MCDM Health PresentationMCDM Health Presentation
MCDM Health Presentation
 
Top 5 Free Resources for Business Leaders to Achieve Social Media Success
Top 5 Free Resources for Business Leaders to Achieve Social Media SuccessTop 5 Free Resources for Business Leaders to Achieve Social Media Success
Top 5 Free Resources for Business Leaders to Achieve Social Media Success
 
Research Paper Final
Research Paper FinalResearch Paper Final
Research Paper Final
 
Defying The Downturn
Defying The DownturnDefying The Downturn
Defying The Downturn
 
Fair Use & Digital Media (Extended Version)
Fair Use & Digital Media (Extended Version)Fair Use & Digital Media (Extended Version)
Fair Use & Digital Media (Extended Version)
 
Visual Storytelling For Web: Tips And Techniques
Visual Storytelling For Web: Tips And TechniquesVisual Storytelling For Web: Tips And Techniques
Visual Storytelling For Web: Tips And Techniques
 
USING SOCIAL MEDIA IN YOUR COMMUNICATION STRATEGIES
USING SOCIAL MEDIA IN YOUR COMMUNICATION STRATEGIESUSING SOCIAL MEDIA IN YOUR COMMUNICATION STRATEGIES
USING SOCIAL MEDIA IN YOUR COMMUNICATION STRATEGIES
 

Similar to Portfolio For Charles Tontz

Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolioeileensauer
 
Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolioeileensauer
 
MMYERS Portfolio
MMYERS PortfolioMMYERS Portfolio
MMYERS PortfolioMike Myers
 
Chris Seebacher Portfolio
Chris Seebacher PortfolioChris Seebacher Portfolio
Chris Seebacher Portfolio
guest3ea163
 
Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence PortfolioChris Seebacher
 
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docxMSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
gilpinleeanna
 
Skills Portfolio
Skills PortfolioSkills Portfolio
Skills Portfolio
rolee23
 
Porfolio of Setfocus work
Porfolio of Setfocus workPorfolio of Setfocus work
Porfolio of Setfocus workKevinPSF
 
Presentation v mware roi tco calculator
Presentation   v mware roi tco calculatorPresentation   v mware roi tco calculator
Presentation v mware roi tco calculator
solarisyourep
 
Introduction to STATA - Ali Rashed
Introduction to STATA - Ali RashedIntroduction to STATA - Ali Rashed
Introduction to STATA - Ali Rashed
Economic Research Forum
 
Nitin\'s Business Intelligence Portfolio
Nitin\'s Business Intelligence PortfolioNitin\'s Business Intelligence Portfolio
Nitin\'s Business Intelligence Portfolionpatel2362
 
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)
Serban Tanasa
 
Presentation_BigData_NenaMarin
Presentation_BigData_NenaMarinPresentation_BigData_NenaMarin
Presentation_BigData_NenaMarinn5712036
 
Project Portfolio
Project PortfolioProject Portfolio
Project PortfolioArthur Chan
 
dbadapters
dbadaptersdbadapters
dbadapters
XAVIERCONSULTANTS
 
Kevin Fahy Bi Portfolio
Kevin Fahy   Bi PortfolioKevin Fahy   Bi Portfolio
Kevin Fahy Bi Portfolio
KevinPFahy
 
Custom Star Creation for Ellucain's Enterprise Data Warehouse
Custom Star Creation for Ellucain's Enterprise Data WarehouseCustom Star Creation for Ellucain's Enterprise Data Warehouse
Custom Star Creation for Ellucain's Enterprise Data Warehouse
Bryan L. Mack
 

Similar to Portfolio For Charles Tontz (20)

Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolio
 
Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolio
 
MMYERS Portfolio
MMYERS PortfolioMMYERS Portfolio
MMYERS Portfolio
 
Chris Seebacher Portfolio
Chris Seebacher PortfolioChris Seebacher Portfolio
Chris Seebacher Portfolio
 
Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolio
 
Dfd2
Dfd2Dfd2
Dfd2
 
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docxMSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
MSCD650 Final Exam feedback FormMSCD650 Final Exam Grading For.docx
 
Skills Portfolio
Skills PortfolioSkills Portfolio
Skills Portfolio
 
Porfolio of Setfocus work
Porfolio of Setfocus workPorfolio of Setfocus work
Porfolio of Setfocus work
 
Presentation v mware roi tco calculator
Presentation   v mware roi tco calculatorPresentation   v mware roi tco calculator
Presentation v mware roi tco calculator
 
Introduction to STATA - Ali Rashed
Introduction to STATA - Ali RashedIntroduction to STATA - Ali Rashed
Introduction to STATA - Ali Rashed
 
Nitin\'s Business Intelligence Portfolio
Nitin\'s Business Intelligence PortfolioNitin\'s Business Intelligence Portfolio
Nitin\'s Business Intelligence Portfolio
 
Predictive Modeling with Enterprise Miner
Predictive Modeling with Enterprise MinerPredictive Modeling with Enterprise Miner
Predictive Modeling with Enterprise Miner
 
Predictive Modeling with Enterprise Miner
Predictive Modeling with Enterprise MinerPredictive Modeling with Enterprise Miner
Predictive Modeling with Enterprise Miner
 
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)
Get up to Speed (Quick Guide to data.table in R and Pentaho PDI)
 
Presentation_BigData_NenaMarin
Presentation_BigData_NenaMarinPresentation_BigData_NenaMarin
Presentation_BigData_NenaMarin
 
Project Portfolio
Project PortfolioProject Portfolio
Project Portfolio
 
dbadapters
dbadaptersdbadapters
dbadapters
 
Kevin Fahy Bi Portfolio
Kevin Fahy   Bi PortfolioKevin Fahy   Bi Portfolio
Kevin Fahy Bi Portfolio
 
Custom Star Creation for Ellucain's Enterprise Data Warehouse
Custom Star Creation for Ellucain's Enterprise Data WarehouseCustom Star Creation for Ellucain's Enterprise Data Warehouse
Custom Star Creation for Ellucain's Enterprise Data Warehouse
 

Recently uploaded

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 

Recently uploaded (20)

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 

Portfolio For Charles Tontz

  • 1. Portfolio for Charles Tontz Business Intelligence Masters Program SQL Server 2005 Integration/Analysis/Reporting Services Project Introduction: Project Summary Design and build a SQL Server 2005 database to track employee and customer information, timesheet and labor rate data as well as job order information, job materials, and customer invoices for a simulated construction company called AllWorks, Inc. Update the database from various Excel and flat file sources. Create four cubes in Analysis Services and design and implement numerous MDX queries to produce datasets sliced and sorted various ways. Create five Key Performance Indicators (KPI’s) which are then linked to Excel 2007. Setup up several Excel 2007 workbooks to provide the ability to use data in the cubes in almost any view, including pertinent KPI’s so that one instantly knows if the trend for various categories exceeds a predefined goal, is within an acceptable range, or is falling short. Produce reports from the provided specifications and put them on the report server where anyone with access rights can open and view the reports, including two with drop down selections for category and time periods. Generate sample reports to a PDF file and save them to a file on the drive. Audience: This project was a collaboration of IT and department managers, and directly responsible to one of the senior executives.
  • 2. Project Goals: ** Integration Services ** Review source data from three different source types and build packages that process and validate the data. This data was used to update the database with any new or changed records. Emails were generated with the results for each package, including Error Event Handlers if any part of the process failed, and writing error logs where appropriate. Otherwise, the email indicated successful completion with the total number of records processed, inserted, and updated, and any error records written to an error file. A Master package was created as a container for the eight packages and was scheduled to run each night. Two other packages were created to handle nightly database backups, then re-index all files and shrink the database. SSIS Project db sample Package Data Flow Eleven packages were created for the entire project. This package grabs the most recent client data from and Excel file, converts and validates it, then identifies new, existing, and error records, and proceeds accordingly to insert or update the SQL Server database, and write any errors to a file which can be reviewed by the appropriate person for correction . (Click on image to view -- then again on enlarged image, depending on your monitor settings) VB Script Task
  • 3. One of the packages required reading multiple Excel files and totalling record counts for all files. To allow this, the following VB code was entered in a task to keep track of the totals: VB Script for tracking total counts in a For Each Loop Container: 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() Dim InitialRecordCount As Integer = CInt(Dts.Variables(quot;InitialRecordCountquot;).Value) Dim UpdateRecordCount As Integer = CInt(Dts.Variables(quot;UpdateRecordCountquot;).Value) Dim ErrorRecordCount As Integer = CInt(Dts.Variables(quot;ErrorRecordCountquot;).Value) Dim InsertRecordCount As Integer = CInt(Dts.Variables(quot;InsertRecordCountquot;).Value) Dim InitialRecordCount_fel As Integer = CInt(Dts.Variables(quot;InitialRecordCount_felquot;).Value) Dim UpdateRecordCount_fel As Integer = CInt(Dts.Variables(quot;UpdateRecordCount_felquot;).Value) Dim ErrorRecordCount_fel As Integer = CInt(Dts.Variables(quot;ErrorRecordCount_felquot;).Value) Dim InsertRecordCount_fel As Integer = CInt(Dts.Variables(quot;InsertRecordCount_felquot;).Value) Dts.Variables(quot;InitialRecordCountquot;).Value = InitialRecordCount + InitialRecordCount_fel Dts.Variables(quot;UpdateRecordCountquot;).Value = UpdateRecordCount + UpdateRecordCount_fel Dts.Variables(quot;ErrorRecordCountquot;).Value = ErrorRecordCount + ErrorRecordCount_fel Dts.Variables(quot;InsertRecordCountquot;).Value = InsertRecordCount + InsertRecordCount_fel Dts.TaskResult = Dts.Results.Success End Sub End Class
  • 4. The variables are initialized, and the _fel (for each loop) variables increment the Initial/Update/Error/Insert RecordCount variables as each file is processed. The accumulated totals are reported via email when the package completes all processing tasks. ** Analysis Services ** The next piece of the project involved creating four cubes in Analysis Server, with a sample structure represented below. This cube (a star-schema) was created to allow analysis of job categories by just about any measure of which one could conceive. Several calculated members were added to provide total cost, open invoice amounts, etc. (Click on image to view -- then again on enlarged image, depending on your monitor settings) This is one example of the cube as viewed from Excel. Dimensions and Measures are loaded into an Excel 'Pivot Table' for analysis. The data can be sorted by any column, even the stoplights, for review and analysis. Rows, columns, and values can be changed at will, allowing enormous flexibility, providing aggregation at higher levels with supplied drill-down to detail levels, if needed. (Click on image to view -- then again on enlarged image, depending on your monitor settings)
  • 5. Sample MDX query: -- Chuck Tontz -- 7/09/2008 -- ProjectOverheadView cube: Overhead by category for Q3 & Q4 of 2005, with Change Percentage WITH MEMBER [Overhead Amount] AS [Measures].[Weekly Over Head], format_string='currency' MEMBER [Change Pct] AS IIF(([Overhead Amount],[FY Qtr].PrevMember) = NULL, NULL, ([Overhead Amount] - ([Overhead Amount],[FY Qtr].PrevMember)) / ([Overhead Amount],[FY Qtr].PrevMember)), format_string = 'percent' SELECT { ([Qry Overhead Summary].[FY Qtr].&[2005 Q3], [Overhead Amount]) ,([Qry Overhead Summary].[FY Qtr].&[2005 Q4],[Overhead Amount])
  • 6. , ( [Qry Overhead Summary].[FY Qtr].&[2005 Q4], [Change Pct]) } ON COLUMNS, NON EMPTY [Overhead].[Description].Members ON ROWS FROM ProjectOverheadView Results: Overhead amounts for current and prior quarter with the change percentage. 2005 Q3 2005 Q4 2005 Q4 Overhead Overhead Change Amount Amount Pct All $7,923.24 $8,706.71 9.89% ACCOUNTANTS FEES (null) $140.00 (null) ADVERTISING (null) $44.00 (null) ESTIMATED (null) $216.00 (null) TAX/QTRLY235 EXTRA: FUEL $537.12 $528.71 -1.57% HEALTH INSURANCE $4,163.40 $3,577.77 -14.07% LIABILITY INSURANCE (null) $38.00 (null) MISC EQUIPMENT (null) $44.00 (null) MOBIL PHONES (null) $86.00 (null) RENT (null) $104.00 (null) TRUCKS $3,222.72 $3,712.23 15.19% WORKMANS COMP (null) $216.00 (null) ** Reporting Services ** Six reports were produced from existing specification requirements. These included a simple table-style report from a SQL Server 2005 database, with the remaining reports using datasets from the cubes that were built in Analysis Services. Several of these were graphs, including one with a graph and summary table. These were then published to the network ReportServer so that anyone with access rights could view the report, and print to a PDF file, or several other formats, including Excel, if needed.
  • 7. This report is an example of a table report with multiple parameters available to the user. Specifically, the report runs Timesheets for the selected Employee, with a from/to date range, summarized by week, by job. It was created from an OLAP cube in the data warehouse. (If the total hours for each job/week look suspicious, it's because the fictitious data for this report is repetitive for some periods. If you view following pages in the PDF version below, it becomes apparent that the total job hours is not 10.5 times the hours worked by the employee.) (Click on image to view -- then again on enlarged image, depending on your monitor settings) The MDX code is generated automatically in BIDS, but the report dataset was modified after creation to add the parameters. Report Dataset: SELECT NON EMPTY { [Measures].[Total Labor], [Measures].[Hoursworked] } ON COLUMNS, NON EMPTY { (STRTOMEMBER(@FromTimeDay, CONSTRAINED) : STRTOMEMBER(@ToTimeDay, CONSTRAINED))* [Job Master].[Description].[Description] } ON ROWS FROM [Project Labor Cube] where STRTOSET(@parmEmployee) List Employees for parameter selection: WITH MEMBER [Measures].[ParameterCaption] AS '[Employees].[Full Name].CURRENTMEMBER.MEMBER_CAPTION' MEMBER [Measures].[ParameterValue] AS '[Employees].
  • 8. [Full Name].CURRENTMEMBER.UNIQUENAME' MEMBER [Measures].[ParameterLevel] AS '[Employees]. [Full Name].CURRENTMEMBER.LEVEL.ORDINAL' SELECT {[Measures].[ParameterCaption], [Measures]. [ParameterValue], [Measures].[ParameterLevel]} ON COLUMNS , [Employees].[Full Name].Children ON ROWS FROM [Project Labor Cube] FromTimeDay dataset: WITH MEMBER [Measures].[ParameterCaption] AS '[Project Labor View].[Week End Date].CURRENTMEMBER.MEMBER_CAPTION' MEMBER [Measures].[ParameterValue] AS '[Project Labor View].[Week End Date].CURRENTMEMBER.UNIQUENAME' MEMBER [Measures].[ParameterLevel] AS '[Project Labor View].[Week End Date].CURRENTMEMBER.LEVEL.ORDINAL' SELECT {[Measures]. [ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]} ON COLUMNS , [Project Labor View].[Week End Date].Children ON ROWS FROM [Project Labor Cube] ToTimeDay dataset: WITH MEMBER [Measures].[ParameterCaption] AS '[Project Labor View].[Week End Date].CURRENTMEMBER.MEMBER_CAPTION' MEMBER [Measures].[ParameterValue] AS '[Project Labor View].[Week End Date].CURRENTMEMBER.UNIQUENAME' MEMBER [Measures].[ParameterLevel] AS '[Project Labor View].[Week End Date].CURRENTMEMBER.LEVEL.ORDINAL' SELECT {[Measures]. [ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]} ON COLUMNS , [Project Labor View].[Week End Date].Children ON ROWS FROM [Project Labor Cube] All reports were then deployed to the intranet report server. (The creative naming scheme was simply to comply with the report specifications. Normally, a more useful name is provided.) (Click on image to view -- then again on enlarged image, depending on your monitor settings)
  • 9. The same report after being exported to a PDF file: (Click on link to view) Report5.pdf These reports can be made available to groups, or specific individuals, as needed. ** SharePoint Server ** The SharePoint project was an excercise in familiarity, rather than mastery. It quickly becomes clear why a SharePoint Administrator is a requirement! The only requirement was to set up a dedicated reports page and KPI List page and publish reports there. A very convenient feature of SharePoint is that it allows anyone to output the report as an Adobe PDF document or an Excel workbook. (Click on image to view -- then again on enlarged image, depending on your monitor settings)
  • 10. Any of the listed reports can be viewed in browser, or exported to a PDF or Excel file, among other choices. ** PerformancePoint Server ** PerformancePoint Server's Dashboard Designer provides an exellent tool for designing dashboards and business scorecards which can be pushed out to a SharePoint page. As the attached example pages show, summarized data can be expressed several ways, and still allow for drill-down capability in most cases. The project specified four reports with requirements for charts, summary data reports, KPI's and business scorecards. All reports were created within Dashboard Designer as an analytic chart or grid, but reports created in SQL Server Reporting Services can be imported as well. (Click on images to view -- then again on enlarged image, depending on your monitor settings) ScoreCards: Report of Materials used summarized quarterly by selected client:
  • 11. Chart of weekly overhead for multiply-selectable accounts: Labor hours and $ total for Top Ten jobs and Top Five workers by selected quarter: