SlideShare a Scribd company logo
1 of 68
Bryan L. Mack
04-03-2017
This is a step-by-step high-level, yet technical guide
discussing how to plug a new star schema into Ellucian’s
EDW software.
This presentation can be used to model a new star, design
a new star, and plug in a new star.
If you aren’t technical, this isn’t for you. This presentation
also does not discuss the business requirements; this is
simply the technical side which was created to support the
business requirements.
• Develop a new snapshot analytical star for Human
resources
which will store payroll benefit deduction data
• Star will be made visible by way of:
• New fact table (ZFT_*)
• New dimension table (ZDT_*)
• Other dimension tables used in other pre-existing stars
Note: Our naming convention is to use Z for the first
character for all custom database objects
• Not modifying any delivered objects*
• Using some delivered dimensions while adding custom
dimensions
• Can use the initial design from one star to develop future
stars
• Database Package
• Mappings
• Tables
• Etc.
*if you choose to name custom objects as Z*, a slight modification to a
procedure is necessary; if you begin objects with W*, no objects need
to be modified.
The Employee & Employee Position stars aggregate all
deductions but do not allow for reporting of:
• Aggregates of specific deductions over time
• Aggregates of specific “types” of deductions
• Health Insurance deductions
• Life Insurance deductions
• Taxes
• Etc.
• Aggregates of specific carriers over time (ie: Kaiser vs.
BCBS)
• New Tables (Input/clean/wkeys/fact/dimension)
• Indexes & Keys
• New Sequence for DIM table
• Trigger for sequence on DIM table
• New Extract package (or table function)
• New cleansing rules & data element
• New mappings (input/clean/wkeys/fact/each dimension)
• New Cognos model (or modification to existing model)
….…and don’t forget your synonyms and grants!
• Fact:
• ZFT_EMPLOYEE_DEDUCTION
• Dimensions
• WDT_MULTI_SOURCE
• WDT_TIME
• WDT_ADMINISTRATION
• WDT_DEMOGRAPHIC
• WDT_EMPLOYEE
• WDT_PERSON
• ZDT_DEDUCTION --- CUSTOM!
Fact Measures:
Age (non-additive)
Years of Service (non-additive)
Employee Deduction Amount
Employer Deduction Amount
Dimension Attributes:
Carrier Code (and description)
Coverage Option (and description)
Deduction Category (Health, Life, Dental, Tax, etc.)
• New Tables (Input/clean/wkeys/fact/dimension)
• Indexes & Keys
• New Sequence for DIM table
• Trigger for sequence on DIM table
• New Extract package (or table function)
• New cleansing rules & data element
• New mappings (input/clean/wkeys/fact/each dimension)
• New Cognos model (or modification to existing model)
….…and don’t forget your synonyms and grants!
Due to the length of the code, I will only include screen
shots of some blurbs of code. For my full source code &
mapping dump, visit my GitHub page:
https://github.com/fleetmack/personal/tree/master/hr_deduc
tion_star
Note: Every piece of code in that Git repo was written by
me; I have not included a single piece of code provided by
Ellucian as that is not my intellectual property.
Name: ZTT_EMPLOYEE_DEDN_INPUT
enable NoLogging within Oracle
What it is: Temp table before we clean & pivot the data
Fields: Every field need to populate each of the dimension
& fact tables
…….
Name: ZTT_EMPLOYEE_DEDN_CLEAN
What it is: pulls in standardized descriptions that must
conform to pre-defined cleansing rules, used to populate
facts & dims
Fields: Everything in INPUT table
Descriptions of all attributes (sd, ld, etc.)
……
Name: ZTT_EMPLOYEE_DEDN_WKEYS
What it is: Extract of the data to be ported to the fact table
Fields: Everything that goes into the fact table:
Name: ZDT_DEDUCTION
Name: ZFT_EMPLOYEE_DEDUCTION
Note: My source code has a final column, mif_value_vc; this is a virtual column
populated by a separate function, which I’ve included in my GIT repo. This is
custom to our institution as we use a virtual private database, it is not applicable to
most schools
• New Tables (Input/clean/wkeys/fact/dimension)
• Indexes & Keys
• New Sequence for DIM table
• Trigger for sequence on DIM table
• New Extract package (or table function)
• New cleansing rules & data element
• New mappings (input/clean/wkeys/fact/each dimension)
• New Cognos model (or modification to existing model)
….…and don’t forget your synonyms and grants!
This will be used to populate
ZDT_DEDUCTION.DEDUCTION_KEY
• New Tables (Input/clean/wkeys/fact/dimension)
• Indexes & Keys
• New Sequence for DIM table
• Trigger for sequence on DIM table
• New Extract package (or table function)
• New cleansing rules & data element
• New mappings (input/clean/wkeys/fact/each dimension)
• New Cognos model (or modification to existing model)
….…and don’t forget your synonyms and grants!
We will use a trigger to insert the deduction_key to the
dimension table:
Note: source code for this is within the zdt_deduction table
DDL in my Git repo
• New Tables (Input/clean/wkeys/fact/dimension)
• Indexes & Keys
• New Sequence for DIM table
• Trigger for sequence on DIM table
• New Extract package (or table function)
• New cleansing rules & data element
• New mappings (input/clean/wkeys/fact/each dimension)
• New Cognos model (or modification to existing model)
….…and don’t forget your synonyms and grants!
Don’t judge me, we’ll get back on track after these
synonyms & grants!
Aside from obvious reasons, your OWB/ODI CLEAN
mappings will fail without these:
Need these grants for all tables (input, clean,
wkeys, dim, fact) in order for your mappings to
work:
grant ALTER on ztt_employee_deduction_clean to IA_ADMIN;
grant DELETE on ztt_employee_deduction_clean to IA_ADMIN;
grant INDEX on ztt_employee_deduction_clean to IA_ADMIN;
grant INSERT on ztt_employee_deduction_clean to IA_ADMIN;
grant SELECT on ztt_employee_deduction_clean to EDWMGR;
grant SELECT on ztt_employee_deduction_clean to IA_ADMIN;
grant UPDATE on ztt_employee_deduction_clean to IA_ADMIN;
grant REFERENCES on ztt_employee_deduction_clean to IA_ADMIN;
grant ON COMMIT REFRESH on ztt_employee_deduction_clean to
IA_ADMIN;
grant QUERY REWRITE on ztt_employee_deduction_clean to IA_ADMIN;
grant DEBUG on ztt_employee_deduction_clean to IA_ADMIN;
grant FLASHBACK on ztt_employee_deduction_clean to IA_ADMIN;
• New Tables (Input/clean/wkeys/fact/dimension)
• Indexes & Keys
• New Sequence for DIM table
• Trigger for sequence on DIM table
• New Extract package (or table function)
• New cleansing rules & data element
• New mappings (input/clean/wkeys/fact/each dimension)
• New Cognos model (or modification to existing model)
….…and don’t forget your synonyms and grants!
Name: EDWSTG.zdw_employee_dedn_extr
Contains:
• Table Function
• Population of all values for dimensions
• Population of all values for fact table
Package code on GitHub
• New Tables (Input/clean/wkeys/fact/dimension)
• Indexes & Keys
• New Sequence for DIM table
• Trigger for sequence on DIM table
• New Extract package (or table function)
• New cleansing rules & data element
• New mappings (input/clean/wkeys/fact/each dimension)
• New Cognos model (or modification to existing model)
….…and don’t forget your synonyms and grants!
Admin UI tool -> Options -> Set Up and Maintain Cleansing
Processes -> Set up and Maintain Cleansing Rules
Note: You’ll need to do this for all detail record in your
dimensions
Admin UI tool -> Options -> Set Up and Maintain Cleansing
Processes -> Set Up and Maintain Cleansing Data
Elements
Associate the fields in your dimension with the proper
cleansing rule:
• New Tables (Input/clean/wkeys/fact/dimension)
• Indexes & Keys
• New Sequence for DIM table
• Trigger for sequence on DIM table
• New Extract package (or table function)
• New cleansing rules & data element
• New mappings (input/clean/wkeys/fact/each dimension)
• New Cognos model (or modification to existing model)
….…and don’t forget your synonyms and grants!
Input Parameters call your table function:
Table Function populates the Input table:
Ensure you set the Input table to truncate/insert so that you
start fresh each time you snap the data:
P_CLEANSE_INPUT procedure will do most of the work for
you:
Constant.Tablename: ‘EMPLOYEE_DEDN’
Constant.Source: ‘O’
P_CELANSE_INPUT source:
MGKFUNC.P_CLEANSE_INPUT
Remember when I said we may need to modify 1 piece of
delivered code? This is ONLY if you choose to name your
custom objects beginning with Z …..
Target dimension table (ex: WDT_ADMINISTRATION)
needs it’s PK (ex: administration_key) to have its loading
properties set as such:
Dimension ETL Mapping Info Tidbits
Target table (ex: WDT_ADMINISTRATION) codes (exs:
employer_code, home_organization, etc.) need to have
loading properties set as such:
Target table descriptions (exs: employer_code_sd,
employer_code_ld) have loading properties as such:
Target table (ex: WDT_ADMINISTRATION) needs its
system_load_tmstmp loading properties set as such:
Dimension ETL Mapping Info Tidbits
Target table properties of note
Repeat this process for all dimensions within the star
Use the clean & dimension tables to build this temp-table.
The WKEYS table will be used to populate the fact.
All of your keys should have loading properties as such:
Your measures should have loading properties as such:
No Contraints:
Truncate/insert
Used in case you are replacing a particular Snapshot, will
delete the old rows before you replace them.
Joiner Condition:
This ‘Y’ is an input parameter when scheduling the star. Are
you replacing data, or not? If you are not replacing data,
this mapping will be skipped.
Key Loading Properties:
Measure Loading Properties:
Key Loading Properties: Yes, No, Yes, Yes
Measure Loading Properties: Yes, Yes, No, No
MDL file with mappings and all dependent objects are
stored on GitHub
Let’s modify some parameters in our MTVPARM table by
way of Ellucian’s Administrative utility (Admin UI) to allow
us to run these jobs through the GUI ….
• Add a second internal code group to handle all the
dimensions for a wide load of the dimensions
…….
We now have data in our star’s tables.
We still need to build a custom Cognos model & data
descriptions for our users to utilize self-service reporting,
but that will be covered in another presentation coming
soon ….
fleetmack@gmail.com

More Related Content

What's hot

Oracle Course
Oracle CourseOracle Course
Oracle Courserspaike
 
Exploring Advanced SQL Techniques Using Analytic Functions
Exploring Advanced SQL Techniques Using Analytic FunctionsExploring Advanced SQL Techniques Using Analytic Functions
Exploring Advanced SQL Techniques Using Analytic FunctionsZohar Elkayam
 
1 data types
1 data types1 data types
1 data typesRam Kedem
 
Creating other schema objects
Creating other schema objectsCreating other schema objects
Creating other schema objectsSyed Zaid Irshad
 
Les08 (manipulating data)
Les08 (manipulating data)Les08 (manipulating data)
Les08 (manipulating data)Achmad Solichin
 
DBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) pptDBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) pptgourav kottawar
 
2 designing tables
2 designing tables2 designing tables
2 designing tablesRam Kedem
 
MariaDB Optimizer - further down the rabbit hole
MariaDB Optimizer - further down the rabbit holeMariaDB Optimizer - further down the rabbit hole
MariaDB Optimizer - further down the rabbit holeSergey Petrunya
 
MDI Training DB2 Course
MDI Training DB2 CourseMDI Training DB2 Course
MDI Training DB2 CourseMarcus Davage
 
Using histograms to get better performance
Using histograms to get better performanceUsing histograms to get better performance
Using histograms to get better performanceSergey Petrunya
 

What's hot (19)

Oracle Course
Oracle CourseOracle Course
Oracle Course
 
Olapsql
OlapsqlOlapsql
Olapsql
 
Exploring Advanced SQL Techniques Using Analytic Functions
Exploring Advanced SQL Techniques Using Analytic FunctionsExploring Advanced SQL Techniques Using Analytic Functions
Exploring Advanced SQL Techniques Using Analytic Functions
 
1 data types
1 data types1 data types
1 data types
 
Creating other schema objects
Creating other schema objectsCreating other schema objects
Creating other schema objects
 
Rdbms day3
Rdbms day3Rdbms day3
Rdbms day3
 
Sql
SqlSql
Sql
 
Manipulating data
Manipulating dataManipulating data
Manipulating data
 
Les08 (manipulating data)
Les08 (manipulating data)Les08 (manipulating data)
Les08 (manipulating data)
 
DBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) pptDBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) ppt
 
dbms lab manual
dbms lab manualdbms lab manual
dbms lab manual
 
MariaDB Temporal Tables
MariaDB Temporal TablesMariaDB Temporal Tables
MariaDB Temporal Tables
 
2 designing tables
2 designing tables2 designing tables
2 designing tables
 
Less08 Schema
Less08 SchemaLess08 Schema
Less08 Schema
 
MariaDB Optimizer - further down the rabbit hole
MariaDB Optimizer - further down the rabbit holeMariaDB Optimizer - further down the rabbit hole
MariaDB Optimizer - further down the rabbit hole
 
Dbms & oracle
Dbms & oracleDbms & oracle
Dbms & oracle
 
MDI Training DB2 Course
MDI Training DB2 CourseMDI Training DB2 Course
MDI Training DB2 Course
 
Using histograms to get better performance
Using histograms to get better performanceUsing histograms to get better performance
Using histograms to get better performance
 
Data Management in R
Data Management in RData Management in R
Data Management in R
 

Similar to Custom Star Creation for Ellucain's Enterprise Data Warehouse

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 1Skillwise Group
 
Myth busters - performance tuning 101 2007
Myth busters - performance tuning 101 2007Myth busters - performance tuning 101 2007
Myth busters - performance tuning 101 2007paulguerin
 
Portfolio For Charles Tontz
Portfolio For Charles TontzPortfolio For Charles Tontz
Portfolio For Charles Tontzctontz
 
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.docxgilpinleeanna
 
BIS06 Physical Database Models
BIS06 Physical Database ModelsBIS06 Physical Database Models
BIS06 Physical Database ModelsPrithwis Mukerjee
 
BIS06 Physical Database Models
BIS06 Physical Database ModelsBIS06 Physical Database Models
BIS06 Physical Database ModelsPrithwis Mukerjee
 
Star Transformation, 12c Adaptive Bitmap Pruning and In-Memory option
Star Transformation, 12c Adaptive Bitmap Pruning and In-Memory optionStar Transformation, 12c Adaptive Bitmap Pruning and In-Memory option
Star Transformation, 12c Adaptive Bitmap Pruning and In-Memory optionFranck Pachot
 
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docx
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docxCharles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docx
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docxchristinemaritza
 
Part2 Best Practices for Managing Optimizer Statistics
Part2 Best Practices for Managing Optimizer StatisticsPart2 Best Practices for Managing Optimizer Statistics
Part2 Best Practices for Managing Optimizer StatisticsMaria Colgan
 
Hey I need help creating this code using Visual Studio (Basic) 2015.pdf
Hey I need help creating this code using Visual Studio (Basic) 2015.pdfHey I need help creating this code using Visual Studio (Basic) 2015.pdf
Hey I need help creating this code using Visual Studio (Basic) 2015.pdfforwardcom41
 
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiA Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiDatabricks
 
Implementing Tables and Views.pptx
Implementing Tables and Views.pptxImplementing Tables and Views.pptx
Implementing Tables and Views.pptxLuisManuelUrbinaAmad
 
PostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
PostgreSQL Performance Tables Partitioning vs. Aggregated Data TablesPostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
PostgreSQL Performance Tables Partitioning vs. Aggregated Data TablesSperasoft
 
Advanced MariaDB features that developers love.pdf
Advanced MariaDB features that developers love.pdfAdvanced MariaDB features that developers love.pdf
Advanced MariaDB features that developers love.pdfFederico Razzoli
 
PostgreSQL Table Partitioning / Sharding
PostgreSQL Table Partitioning / ShardingPostgreSQL Table Partitioning / Sharding
PostgreSQL Table Partitioning / ShardingAmir Reza Hashemi
 
View, Store Procedure & Function and Trigger in MySQL - Thaipt
View, Store Procedure & Function and Trigger in MySQL - ThaiptView, Store Procedure & Function and Trigger in MySQL - Thaipt
View, Store Procedure & Function and Trigger in MySQL - ThaiptFramgia Vietnam
 

Similar to Custom Star Creation for Ellucain's Enterprise Data Warehouse (20)

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
 
Myth busters - performance tuning 101 2007
Myth busters - performance tuning 101 2007Myth busters - performance tuning 101 2007
Myth busters - performance tuning 101 2007
 
Portfolio For Charles Tontz
Portfolio For Charles TontzPortfolio For Charles Tontz
Portfolio For Charles Tontz
 
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
 
BIS06 Physical Database Models
BIS06 Physical Database ModelsBIS06 Physical Database Models
BIS06 Physical Database Models
 
BIS06 Physical Database Models
BIS06 Physical Database ModelsBIS06 Physical Database Models
BIS06 Physical Database Models
 
Sql server T-sql basics ppt-3
Sql server T-sql basics  ppt-3Sql server T-sql basics  ppt-3
Sql server T-sql basics ppt-3
 
Star Transformation, 12c Adaptive Bitmap Pruning and In-Memory option
Star Transformation, 12c Adaptive Bitmap Pruning and In-Memory optionStar Transformation, 12c Adaptive Bitmap Pruning and In-Memory option
Star Transformation, 12c Adaptive Bitmap Pruning and In-Memory option
 
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docx
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docxCharles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docx
Charles WilliamsCS362Unit 3 Discussion BoardStructured Query Langu.docx
 
Part2 Best Practices for Managing Optimizer Statistics
Part2 Best Practices for Managing Optimizer StatisticsPart2 Best Practices for Managing Optimizer Statistics
Part2 Best Practices for Managing Optimizer Statistics
 
MS SQL Server
MS SQL ServerMS SQL Server
MS SQL Server
 
Hey I need help creating this code using Visual Studio (Basic) 2015.pdf
Hey I need help creating this code using Visual Studio (Basic) 2015.pdfHey I need help creating this code using Visual Studio (Basic) 2015.pdf
Hey I need help creating this code using Visual Studio (Basic) 2015.pdf
 
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin HuaiA Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
 
Implementing Tables and Views.pptx
Implementing Tables and Views.pptxImplementing Tables and Views.pptx
Implementing Tables and Views.pptx
 
PostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
PostgreSQL Performance Tables Partitioning vs. Aggregated Data TablesPostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
PostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
 
Mssql
MssqlMssql
Mssql
 
Advanced MariaDB features that developers love.pdf
Advanced MariaDB features that developers love.pdfAdvanced MariaDB features that developers love.pdf
Advanced MariaDB features that developers love.pdf
 
PostgreSQL Table Partitioning / Sharding
PostgreSQL Table Partitioning / ShardingPostgreSQL Table Partitioning / Sharding
PostgreSQL Table Partitioning / Sharding
 
View, Store Procedure & Function and Trigger in MySQL - Thaipt
View, Store Procedure & Function and Trigger in MySQL - ThaiptView, Store Procedure & Function and Trigger in MySQL - Thaipt
View, Store Procedure & Function and Trigger in MySQL - Thaipt
 
Physical Design and Development
Physical Design and DevelopmentPhysical Design and Development
Physical Design and Development
 

More from Bryan L. Mack

Extending the Admin UI: Proactively Preventing Poor BPRA Load/Refresh Perform...
Extending the Admin UI: Proactively Preventing Poor BPRA Load/Refresh Perform...Extending the Admin UI: Proactively Preventing Poor BPRA Load/Refresh Perform...
Extending the Admin UI: Proactively Preventing Poor BPRA Load/Refresh Perform...Bryan L. Mack
 
Cognos Macros: Situational Examples & Syntax
Cognos Macros: Situational Examples & SyntaxCognos Macros: Situational Examples & Syntax
Cognos Macros: Situational Examples & SyntaxBryan L. Mack
 
Oracle's Listagg Function - Uses and Duplicate Removal
Oracle's Listagg Function - Uses and Duplicate RemovalOracle's Listagg Function - Uses and Duplicate Removal
Oracle's Listagg Function - Uses and Duplicate RemovalBryan L. Mack
 
EDW PK Violation Troubleshooting Made Easy
EDW PK Violation Troubleshooting Made EasyEDW PK Violation Troubleshooting Made Easy
EDW PK Violation Troubleshooting Made EasyBryan L. Mack
 
SRP Implementation Success in a Complex Environment
SRP Implementation Success in a Complex EnvironmentSRP Implementation Success in a Complex Environment
SRP Implementation Success in a Complex EnvironmentBryan L. Mack
 
Oracle's ListAgg Function & Pertinent Use
Oracle's ListAgg Function & Pertinent UseOracle's ListAgg Function & Pertinent Use
Oracle's ListAgg Function & Pertinent UseBryan L. Mack
 
ODS Data Sleuth: Tracking Down Calculated Fields in Banner
ODS Data Sleuth: Tracking Down Calculated Fields in BannerODS Data Sleuth: Tracking Down Calculated Fields in Banner
ODS Data Sleuth: Tracking Down Calculated Fields in BannerBryan L. Mack
 

More from Bryan L. Mack (8)

Extending the Admin UI: Proactively Preventing Poor BPRA Load/Refresh Perform...
Extending the Admin UI: Proactively Preventing Poor BPRA Load/Refresh Perform...Extending the Admin UI: Proactively Preventing Poor BPRA Load/Refresh Perform...
Extending the Admin UI: Proactively Preventing Poor BPRA Load/Refresh Perform...
 
Cognos Macros: Situational Examples & Syntax
Cognos Macros: Situational Examples & SyntaxCognos Macros: Situational Examples & Syntax
Cognos Macros: Situational Examples & Syntax
 
Oracle's Listagg Function - Uses and Duplicate Removal
Oracle's Listagg Function - Uses and Duplicate RemovalOracle's Listagg Function - Uses and Duplicate Removal
Oracle's Listagg Function - Uses and Duplicate Removal
 
EDW PK Violation Troubleshooting Made Easy
EDW PK Violation Troubleshooting Made EasyEDW PK Violation Troubleshooting Made Easy
EDW PK Violation Troubleshooting Made Easy
 
SRP Implementation Success in a Complex Environment
SRP Implementation Success in a Complex EnvironmentSRP Implementation Success in a Complex Environment
SRP Implementation Success in a Complex Environment
 
Cognos Macros
Cognos MacrosCognos Macros
Cognos Macros
 
Oracle's ListAgg Function & Pertinent Use
Oracle's ListAgg Function & Pertinent UseOracle's ListAgg Function & Pertinent Use
Oracle's ListAgg Function & Pertinent Use
 
ODS Data Sleuth: Tracking Down Calculated Fields in Banner
ODS Data Sleuth: Tracking Down Calculated Fields in BannerODS Data Sleuth: Tracking Down Calculated Fields in Banner
ODS Data Sleuth: Tracking Down Calculated Fields in Banner
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 

Custom Star Creation for Ellucain's Enterprise Data Warehouse

  • 2. This is a step-by-step high-level, yet technical guide discussing how to plug a new star schema into Ellucian’s EDW software. This presentation can be used to model a new star, design a new star, and plug in a new star. If you aren’t technical, this isn’t for you. This presentation also does not discuss the business requirements; this is simply the technical side which was created to support the business requirements.
  • 3. • Develop a new snapshot analytical star for Human resources which will store payroll benefit deduction data • Star will be made visible by way of: • New fact table (ZFT_*) • New dimension table (ZDT_*) • Other dimension tables used in other pre-existing stars Note: Our naming convention is to use Z for the first character for all custom database objects
  • 4. • Not modifying any delivered objects* • Using some delivered dimensions while adding custom dimensions • Can use the initial design from one star to develop future stars • Database Package • Mappings • Tables • Etc. *if you choose to name custom objects as Z*, a slight modification to a procedure is necessary; if you begin objects with W*, no objects need to be modified.
  • 5. The Employee & Employee Position stars aggregate all deductions but do not allow for reporting of: • Aggregates of specific deductions over time • Aggregates of specific “types” of deductions • Health Insurance deductions • Life Insurance deductions • Taxes • Etc. • Aggregates of specific carriers over time (ie: Kaiser vs. BCBS)
  • 6. • New Tables (Input/clean/wkeys/fact/dimension) • Indexes & Keys • New Sequence for DIM table • Trigger for sequence on DIM table • New Extract package (or table function) • New cleansing rules & data element • New mappings (input/clean/wkeys/fact/each dimension) • New Cognos model (or modification to existing model) ….…and don’t forget your synonyms and grants!
  • 7. • Fact: • ZFT_EMPLOYEE_DEDUCTION • Dimensions • WDT_MULTI_SOURCE • WDT_TIME • WDT_ADMINISTRATION • WDT_DEMOGRAPHIC • WDT_EMPLOYEE • WDT_PERSON • ZDT_DEDUCTION --- CUSTOM!
  • 8. Fact Measures: Age (non-additive) Years of Service (non-additive) Employee Deduction Amount Employer Deduction Amount Dimension Attributes: Carrier Code (and description) Coverage Option (and description) Deduction Category (Health, Life, Dental, Tax, etc.)
  • 9. • New Tables (Input/clean/wkeys/fact/dimension) • Indexes & Keys • New Sequence for DIM table • Trigger for sequence on DIM table • New Extract package (or table function) • New cleansing rules & data element • New mappings (input/clean/wkeys/fact/each dimension) • New Cognos model (or modification to existing model) ….…and don’t forget your synonyms and grants!
  • 10. Due to the length of the code, I will only include screen shots of some blurbs of code. For my full source code & mapping dump, visit my GitHub page: https://github.com/fleetmack/personal/tree/master/hr_deduc tion_star Note: Every piece of code in that Git repo was written by me; I have not included a single piece of code provided by Ellucian as that is not my intellectual property.
  • 11. Name: ZTT_EMPLOYEE_DEDN_INPUT enable NoLogging within Oracle What it is: Temp table before we clean & pivot the data Fields: Every field need to populate each of the dimension & fact tables …….
  • 12. Name: ZTT_EMPLOYEE_DEDN_CLEAN What it is: pulls in standardized descriptions that must conform to pre-defined cleansing rules, used to populate facts & dims Fields: Everything in INPUT table Descriptions of all attributes (sd, ld, etc.) ……
  • 13. Name: ZTT_EMPLOYEE_DEDN_WKEYS What it is: Extract of the data to be ported to the fact table Fields: Everything that goes into the fact table:
  • 15. Name: ZFT_EMPLOYEE_DEDUCTION Note: My source code has a final column, mif_value_vc; this is a virtual column populated by a separate function, which I’ve included in my GIT repo. This is custom to our institution as we use a virtual private database, it is not applicable to most schools
  • 16. • New Tables (Input/clean/wkeys/fact/dimension) • Indexes & Keys • New Sequence for DIM table • Trigger for sequence on DIM table • New Extract package (or table function) • New cleansing rules & data element • New mappings (input/clean/wkeys/fact/each dimension) • New Cognos model (or modification to existing model) ….…and don’t forget your synonyms and grants!
  • 17. This will be used to populate ZDT_DEDUCTION.DEDUCTION_KEY
  • 18. • New Tables (Input/clean/wkeys/fact/dimension) • Indexes & Keys • New Sequence for DIM table • Trigger for sequence on DIM table • New Extract package (or table function) • New cleansing rules & data element • New mappings (input/clean/wkeys/fact/each dimension) • New Cognos model (or modification to existing model) ….…and don’t forget your synonyms and grants!
  • 19. We will use a trigger to insert the deduction_key to the dimension table: Note: source code for this is within the zdt_deduction table DDL in my Git repo
  • 20. • New Tables (Input/clean/wkeys/fact/dimension) • Indexes & Keys • New Sequence for DIM table • Trigger for sequence on DIM table • New Extract package (or table function) • New cleansing rules & data element • New mappings (input/clean/wkeys/fact/each dimension) • New Cognos model (or modification to existing model) ….…and don’t forget your synonyms and grants!
  • 21. Don’t judge me, we’ll get back on track after these synonyms & grants!
  • 22. Aside from obvious reasons, your OWB/ODI CLEAN mappings will fail without these:
  • 23. Need these grants for all tables (input, clean, wkeys, dim, fact) in order for your mappings to work: grant ALTER on ztt_employee_deduction_clean to IA_ADMIN; grant DELETE on ztt_employee_deduction_clean to IA_ADMIN; grant INDEX on ztt_employee_deduction_clean to IA_ADMIN; grant INSERT on ztt_employee_deduction_clean to IA_ADMIN; grant SELECT on ztt_employee_deduction_clean to EDWMGR; grant SELECT on ztt_employee_deduction_clean to IA_ADMIN; grant UPDATE on ztt_employee_deduction_clean to IA_ADMIN; grant REFERENCES on ztt_employee_deduction_clean to IA_ADMIN; grant ON COMMIT REFRESH on ztt_employee_deduction_clean to IA_ADMIN; grant QUERY REWRITE on ztt_employee_deduction_clean to IA_ADMIN; grant DEBUG on ztt_employee_deduction_clean to IA_ADMIN; grant FLASHBACK on ztt_employee_deduction_clean to IA_ADMIN;
  • 24. • New Tables (Input/clean/wkeys/fact/dimension) • Indexes & Keys • New Sequence for DIM table • Trigger for sequence on DIM table • New Extract package (or table function) • New cleansing rules & data element • New mappings (input/clean/wkeys/fact/each dimension) • New Cognos model (or modification to existing model) ….…and don’t forget your synonyms and grants!
  • 26. Contains: • Table Function • Population of all values for dimensions • Population of all values for fact table Package code on GitHub
  • 27. • New Tables (Input/clean/wkeys/fact/dimension) • Indexes & Keys • New Sequence for DIM table • Trigger for sequence on DIM table • New Extract package (or table function) • New cleansing rules & data element • New mappings (input/clean/wkeys/fact/each dimension) • New Cognos model (or modification to existing model) ….…and don’t forget your synonyms and grants!
  • 28. Admin UI tool -> Options -> Set Up and Maintain Cleansing Processes -> Set up and Maintain Cleansing Rules Note: You’ll need to do this for all detail record in your dimensions
  • 29.
  • 30. Admin UI tool -> Options -> Set Up and Maintain Cleansing Processes -> Set Up and Maintain Cleansing Data Elements Associate the fields in your dimension with the proper cleansing rule:
  • 31. • New Tables (Input/clean/wkeys/fact/dimension) • Indexes & Keys • New Sequence for DIM table • Trigger for sequence on DIM table • New Extract package (or table function) • New cleansing rules & data element • New mappings (input/clean/wkeys/fact/each dimension) • New Cognos model (or modification to existing model) ….…and don’t forget your synonyms and grants!
  • 32. Input Parameters call your table function: Table Function populates the Input table:
  • 33. Ensure you set the Input table to truncate/insert so that you start fresh each time you snap the data:
  • 34.
  • 35. P_CLEANSE_INPUT procedure will do most of the work for you: Constant.Tablename: ‘EMPLOYEE_DEDN’ Constant.Source: ‘O’ P_CELANSE_INPUT source: MGKFUNC.P_CLEANSE_INPUT
  • 36. Remember when I said we may need to modify 1 piece of delivered code? This is ONLY if you choose to name your custom objects beginning with Z …..
  • 37.
  • 38. Target dimension table (ex: WDT_ADMINISTRATION) needs it’s PK (ex: administration_key) to have its loading properties set as such: Dimension ETL Mapping Info Tidbits
  • 39. Target table (ex: WDT_ADMINISTRATION) codes (exs: employer_code, home_organization, etc.) need to have loading properties set as such: Target table descriptions (exs: employer_code_sd, employer_code_ld) have loading properties as such:
  • 40. Target table (ex: WDT_ADMINISTRATION) needs its system_load_tmstmp loading properties set as such: Dimension ETL Mapping Info Tidbits
  • 42. Repeat this process for all dimensions within the star
  • 43. Use the clean & dimension tables to build this temp-table. The WKEYS table will be used to populate the fact.
  • 44. All of your keys should have loading properties as such:
  • 45. Your measures should have loading properties as such:
  • 47. Used in case you are replacing a particular Snapshot, will delete the old rows before you replace them.
  • 48. Joiner Condition: This ‘Y’ is an input parameter when scheduling the star. Are you replacing data, or not? If you are not replacing data, this mapping will be skipped.
  • 49. Key Loading Properties: Measure Loading Properties:
  • 50. Key Loading Properties: Yes, No, Yes, Yes Measure Loading Properties: Yes, Yes, No, No
  • 51. MDL file with mappings and all dependent objects are stored on GitHub
  • 52. Let’s modify some parameters in our MTVPARM table by way of Ellucian’s Administrative utility (Admin UI) to allow us to run these jobs through the GUI ….
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62. • Add a second internal code group to handle all the dimensions for a wide load of the dimensions
  • 63.
  • 64.
  • 65.
  • 67. We now have data in our star’s tables. We still need to build a custom Cognos model & data descriptions for our users to utilize self-service reporting, but that will be covered in another presentation coming soon ….