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

MMYERS Portfolio


Published on

  • Be the first to comment

  • Be the first to like this

MMYERS Portfolio

  1. 2. Table of Contents <ul><li>SetFocus Business Intelligence Masters Program Project 3 </li></ul><ul><li>SQL Server Integration Services 4 </li></ul><ul><li>Sample Documentation for SSIS portion 5 </li></ul><ul><li>Master Package 6 </li></ul><ul><li>Employee Master Package Control Flow 8 </li></ul><ul><li>Employee Master Package Data Flow 9 </li></ul><ul><li>Project Time Sheets Package Control Flow 10 </li></ul><ul><li>Project Time Sheets Package Data Flow 12 </li></ul><ul><li>SQL Server Analysis Services 13 </li></ul><ul><li>Data Source View 14 </li></ul><ul><li>The Cube’s Dimensional Usage 15 </li></ul><ul><li>The Cube’s Calculated Members 16 </li></ul><ul><li>The Cube’s KPIs 17 </li></ul><ul><li>Sample Grouping One with SA Query Results in Excel 18 </li></ul><ul><li>Sample Grouping Two with SA Query Results in Excel 19 </li></ul><ul><li>Sample One MDX Queries with Results in Management Studio 20 </li></ul><ul><li>Sample Two MDX Queries with Results in Management Studio 21 </li></ul><ul><li>Sample Three MDX Queries with Results in Management Studio 22 </li></ul>
  2. 3. SetFocus Business Intelligence Masters Program Project <ul><li>Core technologies used in the program: </li></ul><ul><li>Microsoft SQL Server 2005 </li></ul><ul><li>Microsoft SQL Server 2005 Integration Services (SSIS) </li></ul><ul><li>Microsoft SQL Server 2005 Analysis Services (SSAS) </li></ul><ul><li>Microsoft SQL Server 2005 Reporting Services (SSRS) </li></ul><ul><li>Microsoft Office SharePoint Server 2007 (MOSS) </li></ul><ul><li>Microsoft Office Performance Point Server </li></ul><ul><li>Project Summary </li></ul><ul><li>Design and build a Business Intelligence solution for a simulated construction company in order to track, analyze and report on every facet of the companies business. </li></ul><ul><li>Project Goals </li></ul><ul><li>Using SSIS, build an ETL solution to update the SQL Server 2005 database on a nightly basis from Excel and other flat file sources. </li></ul><ul><li>Using SSAS, create a cube, with partial snowflake architecture. </li></ul><ul><li>Implement a variety of MDX queries in order to manipulate and analyze the data in the cube. </li></ul><ul><li>Using SSAS implement various calculations in order to built critical Key Performance Indicators(KPIs). </li></ul><ul><li>Using SSRS, produce various detailed summary reports. </li></ul><ul><li>Using MS Office PerformancePoint Server, produce various dashboards containing scorecards, KPIs and summary reports. </li></ul><ul><li>Using MS Office SharePoint Server, setup Site Collection to receive report and a dashboard with web parts. </li></ul>
  3. 4. SQL Server Integration Services <ul><li>Overview of Goals for SSIS portion: </li></ul><ul><li>Create a data source using either the XML or System.Data.ODBC drivers </li></ul><ul><li>Create packages to read each source file and insert/update into AllWorksDBStudent SQL Database. Remember that the structures may be different for each set of files </li></ul><ul><li>Generate an email to report the results of every package, including rows inserted and any errors generated (for example, timesheet records may contain invalid foreign keys). </li></ul><ul><li>All scheduled packages will run nightly at midnight. </li></ul><ul><li>Create a separate package to handle nightly database backups. All backups should occur nightly, after the last transfer of source data. After the backup occurs, create another package to reindex all files and shrink the database. </li></ul>
  4. 5. Sample Documentation for SSIS Portion <ul><li>Package 3a: EmployeeMasterPackage.dtsx </li></ul><ul><li>Source File: C:SetFocusBIProjectsStudentVersionSSISStudentProjectEmployees.xls </li></ul><ul><li>Sheet: Employees </li></ul><ul><li>Target Table: AllWorksDBStudent.dbo.Employees </li></ul><ul><li>Log file and Log Table: C:SetFocusBIProjectsStudentVersionSSISStudentProjectLogsEmployeesErrorLog.csv </li></ul><ul><li>  </li></ul><ul><li>Assumption: Per instructor, data load file will not contain records with NULL key values and also the initial data load will not contain any duplicate keys. </li></ul><ul><li>Notification includes the following information: </li></ul><ul><li>Successful email notification will include the following: </li></ul><ul><li>Total number of rows in the source file </li></ul><ul><li>Total number of new rows inserted </li></ul><ul><li>Total number of existing rows updated </li></ul><ul><li>Total number of error rows </li></ul><ul><li>Error Handling: </li></ul><ul><li>One File is generated for all error logging. The log file is then attached and sent in an email containing package execution statistical results. </li></ul>
  5. 6. Master Package At midnight every day the Master Package runs all the other packages contained in the ETL container. The ETL container has execute package tasks; each package is deployed to the SSIS stored packages. Upon completion it launches the Maintenance container comprising of a Back-up, Rebuild Index and Shrink database tasks. Separate failure notices are email if either container fails and separate progress email are sent when each container succeeds.
  6. 7. Master Package The ETL container has execute package tasks; each package has been deployed to the SSIS stored packages area of the server.
  7. 8. Employee Master Package Control Flow This package populates or updated a SQL Server table and notified the relevant parties whether it was successful in its tasks. Conditional record counts are captured by variables used to construct the email message reporting Error rows, New Rows and Updated rows if the package is successful. If the package fails then an email is sent reporting that this package failed.
  8. 9. Employee Master Package Data Flow The data is imported from an Excel Source, record count is captured by RawDataRows variable, converted to DB data types, columns combined to create FullName, EmployeeID looked-up to find matching records and then split. In order of condition evaluation: Records containing any null attribute values are routed as Error, record count is captured by ErrorRows variable and exported to a flat file error log. Records with EmployeeID that do not match in existing staging table are routed as New, record count is captured by InsertedRows variable and inserted into staging table. Records with matching EmployeeID are routed as Changed, record count is captured by UpdatedRows variable and all attributes are updated in staging table.
  9. 10. Project Time Sheets Package Control Flow This package reads multiple CSV files in a controlled folder and populates the JobTimeSheets table in the ETL staging area on the server, then summarizes all the rows counts captured by the variables using a VB script, creating a new set of row count variables for cumulative totals for all sheets processed in that package execution. Summary rows counts are composed into a message/progress report and emailed with attached error log.
  10. 11. Project Time Sheets Package Control Flow The Script Editor properties show the incoming read only parameters and the outgoing parameters with cumulative total rows counts. This is the VB code used to calculate cumulative totals for each type of rows count. These calculations are performed with each loop through individual employee time data sheet contained in the time folder. Final tallies are emailed in progress report. Public Sub Main() Dim InsertedRows As Integer = CInt (Dts.Variables( &quot;InsertedRows&quot; ).Value) Dim ErrorRows As Integer = CInt (Dts.Variables( &quot;ErrorRows&quot; ).Value) Dim RawDataRows As Integer = CInt (Dts.Variables( &quot;RawDataRows&quot; ).Value) Dim UpdatedRows As Integer = CInt (Dts.Variables( &quot;UpdatedRows&quot; ).Value) Dim InsertedRows_fel As Integer = CInt (Dts.Variables( &quot;InsertedRows_fel&quot; ).Value) Dim ErrorRows_fel As Integer = CInt (Dts.Variables( &quot;ErrorRows_fel&quot; ).Value) Dim RawDataRows_fel As Integer = CInt (Dts.Variables( &quot;RawDataRows_fel&quot; ).Value) Dim UpdatedRows_fel As Integer = CInt (Dts.Variables( &quot;UpdatedRows_fel&quot; ).Value)   Dts.Variables( &quot;InsertedRows&quot; ).Value = InsertedRows + InsertedRows_fel Dts.Variables( &quot;ErrorRows&quot; ).Value = ErrorRows + ErrorRows_fel Dts.Variables( &quot;RawDataRows&quot; ).Value = RawDataRows + RawDataRows_fel Dts.Variables( &quot;UpdatedRows&quot; ).Value = UpdatedRows + UpdatedRows_fel Dts.TaskResult = Dts.Results.Success End Sub End Class
  11. 12. Project Time Sheets Package Data Flow Like the previous package this package also imports, converts, counts, matches FKs to the existing staging tables (Employees, JobMaster & JobTimeSheets). The data is also checked for missing information and logged. Error logic is: ISNULL(ConvertedEmployeeID) || ISNULL(ConvertedWorkDate) || ISNULL(ConvertedJobNumber) || ISNULL(ConvertedRegHours) || ISNULL(MatchedEmployeesEmployeePK) || ISNULL(MatchedJobMasterJobMasterPK) || (MatchedJobMasterJobClosed == TRUE && MatchedJobMasterJobClosedDate < ConvertedWorkDate)
  12. 13. SQL Server Analysis Services <ul><li>Overview of Goals for SSAS portion </li></ul><ul><li>There are three phases to the SSAS Project: </li></ul><ul><li>Based on a family of stars schema model I created a SSAS solution in BIDS, and built four fact tables in the cube </li></ul><ul><li>Built 5 KPIs in the cube and demonstrated functionality via Excel SSAS query </li></ul><ul><li>I produced a broad sample of MDX queries against the cube to demonstrate my skill-set and test the cube </li></ul>
  13. 14. Data Source View This DSV was created in BIDS, it shows the 4 fact tables
  14. 15. The Cube’s Dimensional Usage
  15. 16. The Cube’s Calculated Members
  16. 17. The Cube’s KPIs
  17. 18. Sample Grouping One with SA Query Results in Excel
  18. 19. Sample Grouping Two with SA Query Results in Excel
  19. 20. Sample One MDX Query with Results
  20. 21. Sample Two MDX Query with Results
  21. 22. Sample Three MDX Query with Results