oracle bi multi-user development: mds xml versus mude
DESCRIPTION
Oracle Business Intelligence 11g provides the ability to develop a metadata repository as a collection of XML documents instead of a single binary RPD file. Included in this functionality is the ability to configure the OBIEE Admin Tool to interact with third-party Source Control Management (SCM) systems as a way of version-controlling the repository development process. In this presentation, we will explore MDS XML functionality in the OBIEE Admin Tool, including how to generate the MDS XML files from an existing RPD file and configure the repository to work with Git as a sample SCM system. We will also explore how this new feature extends the capabilities of multi-user development for Oracle BI repositories, and how it compares to other pre-existing development options.TRANSCRIPT
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MDS XML Versus MUDE: RPD Multi-User Development and SCM OptionsStewart Bryson Chief Innovation Officer, Global Operations Rittman Mead
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
About Stewart Bryson•Twitter : @StewartBryson •Oracle ACE in BI/DW •Chief Innovation Officer for Rittman Mead Global •Community Speaker and Enthusiast •Writer for Rittman Mead Blog:http://www.rittmanmead.com/blog
•BI Content Chair for Kscope14 ‣www.kscope14.com (Registration Open!)
•Developer of Transcend Framework •Email : [email protected] •Real Time BI with Kevin & Stewart ‣iTunes: http://bit.ly/realtimebi ‣YouTube: http://www.youtube.com/user/realtimebi
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
About Rittman Mead•Oracle BI and DW Partner •World leader in solutions delivery and innovation in Oracle BI
•Over 100 consultants worldwide •Offices in US (Atlanta), Europe, Australia and India
•Skills in broad range of supporting Oracle BI Tools ‣OBIEE, Exalytics and OBIA ‣ODI, EDQ, OWB ‣Essbase and Oracle OLAP ‣GoldenGate ‣Exadata ‣Endeca
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Presentation Agenda
•Take a look at OBIEE Multi-User Development Environment (MUDE)
•Understand MDS XML: what it is… why do we care? •Investigate Git, our sample version control system •See manage_rpd.pl: a Perl script for automating some basic tasks
•A demo of repository development using the Admin Tool and Git.
•(Optional) Discuss enterprise SCM deployments
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Repository Software Development Lifecycle (SDLC) Challenges
• Allow multiple users to develop concurrently ‣Serialized ‣Non-serialized
• Version control of repository ‣Providing “rollback” capabilities ‣Never develop the same “code” twice
• Package up releases ‣Allow easy migration between
environments ‣Provide the ability to version the
entire BI project
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Defining Projects
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Defining Projects
2
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Defining Projects
2
3
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Checking-out Projects
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Checking-out Projects
2
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
1
Configuring MUDE: Checking-out Projects
23
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Completed MUDE Project CheckoutIn the Master directory ‣gcbc.rpd: The original master RPD file ‣gcbc.000: A backup file for rollback
purposes ‣gcbc.mhl: The history file (can be
converted to an XML file using mhlconverter) !
In the Repositories directory ‣gcbc_project1.rpd: The subset RPD
file ‣originalgcbc_project1: Another copy
of the subset RPD file for doing 3-way merges
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Comparing Changes
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Comparing Changes
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Comparing Changes
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Merging Changes
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Viewing MUD History
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Viewing MUD History
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Viewing MUD History
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MUDE Development: Viewing MUD History
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
“Metadata-only” Multi-User Development
•Merging is done by the developer instead of a “source master”
•The master repository is not itself checked into version control
•Siloed merging and branching
•Doesn’t version entire BI project
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
The MDS XML Repository Storage Format
•New in OBIEE 11.1.1.6 •Like XUDML, but individual documents for first-class repository objects
•Binary repository files are still required for the BI Server ‣Generated by the Admin Tool ‣Generated by validaterpd command-line utility ‣NOTE: Don’t use biserverxmlexec command-line utility
•Integration with version control systems built into the Admin Tool
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Getting Started with MDS XML: Generating and Opening
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Getting Started with MDS XML: Generating and Opening
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Getting Started with MDS XML: Generating and Opening
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
1
Getting Started with MDS XML: Registering
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
1
Getting Started with MDS XML: Registering
2
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
1
Getting Started with MDS XML: Registering
23
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Who Said This?“The primary purpose of this new storage format and the source control extensions in the Oracle BI Administration tool is to permit fine-grained tracking and recording of changes to objects in a single repository. It is not a replacement for the Multiuser Development Environment, as it does not have any features for merge conflict resolution, which instead would need to be performed using the source control client tools.”
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Who Said This?“The primary purpose of this new storage format and the source control extensions in the Oracle BI Administration tool is to permit fine-grained tracking and recording of changes to objects in a single repository. It is not a replacement for the Multiuser Development Environment, as it does not have any features for merge conflict resolution, which instead would need to be performed using the source control client tools.”
Mark Rittman (2012-09-18). Oracle Business Intelligence 11g Developers Guide (Kindle Locations 19413-19417). McGraw-Hill. Kindle Edition.
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Version Control using GIT
•Initially designed and developed by Linus Torvalds for Linux kernel development
•Local repository for remote publishing ‣Continual local commits ‣Periodic network publication
•Commands we care about today:
==> git checkout!==> git commit!==> git merge!==> git rebase!==> git reset!==> git push/pull
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Git: Switching Between Branches
1
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Git: Switching Between Branches
1
2
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Git: Switching Between Branches
1
2
3
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Git: Switching Between Branches
1
2
3
4
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Git: Merging Branches
1
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Git: Merging Branches
1
2
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Git: Branching the Entire Process
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MDS XML: Choosing an Install Type
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MDS XML: Choosing an Install Type
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MDS XML: Choosing an Install Type
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MDS XML: Full Development Environment (Simple Install)
•RPD Development requires a BI Server ‣See the BI Server Intelligent Request Generation ‣See SQL or MDX Generation
•RPD Development requires a query tool ‣Something to query the BI Server ‣Presentation Server works well
•RPD Development requires data visualization ‣OBIEE just so happens to have that
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MDS XML: Adding Online Development
1
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MDS XML: Adding Online Development
1
2
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MDS XML: Adding Online Development
1
23
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
MDS XML: Adding Online Development
1
23
4
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
manage_rpd.pl: Perl script for RPD management
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
manage_rpd.pl: Perl script for RPD management
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
manage_rpd.pl: Perl script for RPD management
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
DEMO MDS XML Multi-User Development using Git
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Complex Merge: Conflicts
1
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Complex Merge: Conflicts
12
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Complex Merge: Conflicts
12
3
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Complex Merge: Conflicts
12
3
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Manual RPD Editing
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Manual RPD Editing
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Manual RPD Editing
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Non-Equalized)
1
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Non-Equalized)
1
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Non-Equalized)
1
2
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Non-Equalized)
1
2
3
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Non-Equalized)
1
2
3
4
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Equalized)
1
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Equalized)
1
2
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Conflict Resolution: Admin Tool Merge (Equalized)
1
2
3
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Deployments: RPD Patching
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Deployments: RPD Patching
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Deployments: RPD Patching
patchrpd -P [modified repository password] -C [modified repository path and name] -Q [original repository password] -G [original repository path and name] -I [patch file path and name] -O [new repository path and name]
comparerpd –P [current repository password] –C [current repository path and name] –W [original repository password] –G [original repository path and name] –D [patch file path and name]
In [middleware_home]\Oracle_BI1\bifoundation\server\bin
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Deployments: Build Process
Development RPD
comparerpd
v1.0
v2.0
1
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Deployments: Build Process
Development RPD
comparerpd
v1.0
v2.0
1 QA RPD
patchrpd
2
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Deployments: Build Process
Development RPD
comparerpd
v1.0
v2.0
1 QA RPD
patchrpd
2 Production RPD
patchrpd
3
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
What Do We Think?
•MUDE provides more granular control over individual repository objects ‣Multiple changes to the same physical file are supported ‣XML/Git can do the same using built-in Admin Tool utilities
•XML/Git allows us to use a common framework for all our BI Content in one central store ‣presentation catalog, ODI Content, database scripts ‣We can periodically check-in the MUDE master RPD and history file to Git as well
•Was Mark Rittman right?
www.rittmanmead.com [email protected] @rittmanmead www.facebook.com/rittmanmead
Contact Information Stewart Bryson Chief Innovation Officer Rittman Mead [email protected] @stewartbryson https://github.com/RittmanMead/scripts