Professional Documents
Culture Documents
Release 3i
Contributors: Thomas Lau, Edwin Meijer, Jooseph Zheng, Barry Mosbrucher, Thomas O’Shaughnassy,
Dan Gallagher, Josephine Ho, David Allen, Krishna Behara, Gary Hostetler, JaimeSingson, Robert Velisar,
Robert Paul, Joseph Klein, Josef Hasenberger, Jim Lorenz, Jean-Pierre Djicks, Olaf Fermum, Shauna
O’Boyle, Jeffrey Hutchins, Debra Phelan, Elina Sternik, John Potter, Barry Mosbrucher, Adrian Scott,
Ning Lin, Lefty Leverenz, James Jonas, Brian Jeffries, Arun Manchanda, Richard Whittington, Ramesh
Uppala.
The Programs (which include both the software and documentation) contain proprietary information of
Oracle Corporation; they are provided under a license agreement containing restrictions on use and
disclosure and are also protected by copyright, patent, and other intellectual and industrial property
laws. Reverse engineering, disassembly, or decompilation of the Programs is prohibited.
The information contained in this document is subject to change without notice. If you find any problems
in the documentation, please report them to us in writing. Oracle Corporation does not warrant that this
document is error free. Except as may be expressly permitted in your license agreement for these
Programs, no part of these Programs may be reproduced or transmitted in any form or by any means,
electronic or mechanical, for any purpose, without the express written permission of Oracle Corporation.
If the Programs are delivered to the U.S. Government or anyone licensing or using the programs on
behalf of the U.S. Government, the following notice is applicable:
Restricted Rights Notice Programs delivered subject to the DOD FAR Supplement are "commercial
computer software" and use, duplication, and disclosure of the Programs, including documentation,
shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement.
Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer
software" and use, duplication, and disclosure of the Programs shall be subject to the restrictions in FAR
52.227-19, Commercial Computer Software - Restricted Rights (June, 1987). Oracle Corporation, 500
Oracle Parkway, Redwood City, CA 94065.
The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently
dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup,
redundancy, and other measures to ensure the safe use of such applications if the Programs are used for
such purposes, and Oracle Corporation disclaims liability for any damages caused by such use of the
Programs.
Oracle is a registered trademark, and of Oracle Corporation. Other names may be trademarks of their
respective owners.
Contents
Preface.......................................................................................................................................................... xxi
1 Overview
The Developmental Phases............................................................................................................... 1-2
The Definition Phase .................................................................................................................... 1-3
Defining A Warehouse ......................................................................................................... 1-3
Defining The Data Sources and Targets............................................................................. 1-3
Defining ETL Mappings ....................................................................................................... 1-4
The Generation Phase .................................................................................................................. 1-5
The Load And Manage Phase..................................................................................................... 1-6
Taking The Next Step......................................................................................................................... 1-6
iii
Logging On To A Repository...................................................................................................... 2-8
Using The New Project Wizard ................................................................................................ 2-10
Commit ................................................................................................................................. 2-10
About The OWB Console................................................................................................................ 2-11
Operational Environments........................................................................................................ 2-12
Project Environment ........................................................................................................... 2-12
Transformation Environment............................................................................................ 2-14
Administration Environment ............................................................................................ 2-15
The Utilities Button .................................................................................................................... 2-15
Utility Property Sheet ......................................................................................................... 2-16
The Console Tool Bar ................................................................................................................. 2-18
Property Icon and Property Sheets ................................................................................... 2-18
The Commit Icon ................................................................................................................. 2-19
About Naming Policies.................................................................................................................... 2-20
Setting The Naming Mode ........................................................................................................ 2-21
Logical Name Mode............................................................................................................ 2-21
Physical Name Mode .......................................................................................................... 2-23
Using The Warehouse Builder Wizards ....................................................................................... 2-23
Using Navigation and Help............................................................................................... 2-24
Searching Navigation Trees ............................................................................................................ 2-25
Taking The Next Step....................................................................................................................... 2-27
iv
Creating Dimension Definitions ................................................................................................... 3-11
Defining Rules for Dimension Objects .................................................................................... 3-12
About Levels and Hierarchies ........................................................................................... 3-12
About Unique Key Constraints ......................................................................................... 3-12
About Mixed Levels of Aggregation ................................................................................ 3-13
Creating A Dimension Definition ............................................................................................ 3-14
Updating Dimension Definitions ............................................................................................. 3-21
Using The Dimension Editor ............................................................................................. 3-21
Using The Property Sheets................................................................................................. 3-22
Creating Attribute Sets ....................................................................................................... 3-29
Using the New Time Dimension Wizard................................................................................ 3-33
About the New Time Dimension Wizard........................................................................ 3-34
Creating a Time Dimension Definition ................................................................................... 3-34
Defining a Sequence Object....................................................................................................... 3-37
Creating Fact Table Definitions ..................................................................................................... 3-37
Creating a Definition for a Fact Table...................................................................................... 3-38
Updating a Fact Table Definition ............................................................................................. 3-41
Using the Fact Editor .......................................................................................................... 3-41
Importing Definitions ................................................................................................................ 3-45
Creating Materialized View Definitions...................................................................................... 3-46
Creating A Materialized View Definition ............................................................................... 3-47
Updating a Materialized View Definition .............................................................................. 3-51
Renaming a Materialized View ......................................................................................... 3-51
Creating Conventional View Definitions .................................................................................... 3-52
Creating A View Definition ...................................................................................................... 3-52
Updating a View Definition...................................................................................................... 3-56
Renaming A View ............................................................................................................... 3-57
Adding Transformations ................................................................................................................. 3-58
About Transformations ............................................................................................................ 3-58
About Transformation Parameters .......................................................................................... 3-59
About Oracle Transformation Libraries.................................................................................. 3-59
The Global-Shared Library ................................................................................................ 3-60
The Oracle Library .............................................................................................................. 3-60
Accessing Transformation Libraries................................................................................. 3-60
Creating Transformation Categories ................................................................................ 3-60
v
Defining Custom Transforms ................................................................................................... 3-61
Editing Transformation Properties .......................................................................................... 3-64
Importing PL/SQL Packages.................................................................................................... 3-64
Defining Business Areas ................................................................................................................. 3-69
About Business Areas ................................................................................................................ 3-70
Creating a Definition for a Business Area............................................................................... 3-71
Infrastructure Requirements .......................................................................................................... 3-73
Committing Your Changes.............................................................................................................. 3-74
Taking the Next Step ........................................................................................................................ 3-74
vi
Defining Multiple Record Types in a Delimited File ..................................................... 4-44
Updating a Delimited File Definition ...................................................................................... 4-47
Updating a Single-Record Delimited File Definition ..................................................... 4-47
Updating a Multiple-Record Delimited File Definition................................................. 4-47
Importing Definitions for Pure Extract and Pure Integrate...................................................... 4-49
Importing Definitions from an Export File ............................................................................. 4-49
Infrastructure Requirements .......................................................................................................... 4-51
Oracle Heterogeneous Services ................................................................................................ 4-51
Transparent Gateway ......................................................................................................... 4-51
Generic Connectivity .......................................................................................................... 4-51
Flat File Sources .......................................................................................................................... 4-52
Committing Your Changes.............................................................................................................. 4-52
Taking The Next Step....................................................................................................................... 4-53
vii
Defining The Data Flow Connections ..................................................................................... 5-24
Configuring A Mapping............................................................................................................ 5-26
Setting The Load Type........................................................................................................ 5-26
Configuring Physical Properties For a Mapping............................................................ 5-28
Validating the Mapping............................................................................................................. 5-29
Generating the Mapping ................................................................................................................. 5-31
Editing Mapping Operator Attributes.......................................................................................... 5-33
Adding or Removing Operator Attribute Groups................................................................. 5-33
Editing Operator Attributes...................................................................................................... 5-33
Adding Or Removing Attributes ...................................................................................... 5-34
Renaming Attributes........................................................................................................... 5-35
Creating New Attributes ........................................................................................................... 5-35
Reconciling Your Mapping ....................................................................................................... 5-36
Reconciling Inbound Operators ........................................................................................ 5-36
Reconciling Outbound Operators ..................................................................................... 5-37
Committing Changes To The Mapping ................................................................................... 5-39
Taking The Next Step....................................................................................................................... 5-40
viii
Adding Expressions ................................................................................................................... 6-40
Adding Constants....................................................................................................................... 6-44
Adding Transformations ........................................................................................................... 6-49
Adding Mapping Input Parameters ........................................................................................ 6-54
Adding Mapping Output Parameters ..................................................................................... 6-59
Adding A Pre-Mapping Process .............................................................................................. 6-63
Adding A Post-Mapping Process............................................................................................. 6-68
Taking The Next Step....................................................................................................................... 6-71
ix
Setting Commit Frequency ................................................................................................ 7-28
Setting The Default Operating Mode ............................................................................... 7-28
Setting Bulk Processing ...................................................................................................... 7-30
Setting the Analyze Statistics Percentage ........................................................................ 7-30
Setting A SQL*Loader Step ............................................................................................................ 7-30
Setting Load Operator Physical Parameters........................................................................... 7-32
Setting Enable Constraints ................................................................................................. 7-32
Setting The Exceptions Table............................................................................................. 7-32
Setting SQL*Loader Parameters........................................................................................ 7-32
Setting Step Parameters ............................................................................................................. 7-34
Setting An External Process Step................................................................................................... 7-37
Setting OS Executable/Pure Integrate..................................................................................... 7-37
Setting Pure Extract .................................................................................................................... 7-37
Taking The Next Step....................................................................................................................... 7-37
x
Partition Parameters ........................................................................................................... 8-16
Storage Space ....................................................................................................................... 8-16
Identification ........................................................................................................................ 8-16
Configuring Materialized Views.............................................................................................. 8-16
Materialized View Parameters .......................................................................................... 8-18
Configuring Sequences .............................................................................................................. 8-18
Configuring Tables..................................................................................................................... 8-19
Indexes .................................................................................................................................. 8-20
Partitions............................................................................................................................... 8-21
Configuring Views ..................................................................................................................... 8-23
Validating Definitions ..................................................................................................................... 8-24
Rationale for Validation............................................................................................................. 8-24
Valid and Invalid Definitions .................................................................................................. 8-25
Valid Definition ................................................................................................................... 8-25
Invalid Definition ................................................................................................................ 8-25
Validating a Set of Definitions .................................................................................................. 8-26
Generating Scripts ............................................................................................................................ 8-28
The Generated Scripts ................................................................................................................ 8-30
Database Links..................................................................................................................... 8-30
Dimensions........................................................................................................................... 8-30
Views and Materialized Views.......................................................................................... 8-31
Mappings .............................................................................................................................. 8-32
Sequences.............................................................................................................................. 8-33
Tables .................................................................................................................................... 8-33
Post Generation Tasks................................................................................................................ 8-33
The Schema Objects Tab..................................................................................................... 8-34
The Transforms Tab. ........................................................................................................... 8-35
Deploying Scripts ............................................................................................................................. 8-37
Upgrading a Warehouse Physical Instance.................................................................................. 8-41
OWB and the OEM Change Management Pack (OEM/CM) .............................................. 8-42
Generating and Executing Upgrade Scripts .......................................................................... 8-43
Taking the Next Step ........................................................................................................................ 8-48
xi
Scheduling Jobs............................................................................................................................. 9-2
Types of Jobs .......................................................................................................................... 9-2
Scheduling with Oracle Enterprise Manager................................................................................ 9-3
Deploying and Registering the Jobs .......................................................................................... 9-4
Registering Job Scripts .......................................................................................................... 9-4
Verifying OEM Registration ................................................................................................ 9-5
Scheduling the Jobs ...................................................................................................................... 9-7
Scheduling .............................................................................................................................. 9-7
Submitting the Job................................................................................................................. 9-7
Submitting Jobs with Parameters........................................................................................ 9-8
Managing Dependencies Using Oracle Workflow .................................................................... 9-10
Deploying to the Oracle Workflow Server ............................................................................. 9-11
Using the Workflow Deployment Wizard....................................................................... 9-11
Defining the Workflow Process................................................................................................ 9-17
Running the Process................................................................................................................... 9-20
Running the Process Immediately .................................................................................... 9-21
Scheduling the Workflow Process .................................................................................... 9-23
Viewing the Runtime Audit ........................................................................................................... 9-23
Setting the Audit Level....................................................................................................... 9-24
Using the OWB Runtime Audit Viewer.................................................................................. 9-24
Viewing By Date Range...................................................................................................... 9-26
Searching the Navigation Tree .......................................................................................... 9-27
Refreshing the Audit Viewer ............................................................................................. 9-28
Purging Runtime Entries.................................................................................................... 9-28
Understanding the Audit Viewer ............................................................................................ 9-29
Viewing the Job Audit ........................................................................................................ 9-30
Viewing the Job Instance Audit ........................................................................................ 9-30
Viewing the Task Audit ..................................................................................................... 9-32
Viewing the Task Details Audit ........................................................................................ 9-33
Viewing the Errors .............................................................................................................. 9-36
Viewing the Error Details................................................................................................... 9-38
Taking the Next Step ....................................................................................................................... 9-38
10 Administration
Repository Administration ............................................................................................................. 10-2
xii
The OWB Metadata Loader ............................................................................................................ 10-2
Metadata Export ......................................................................................................................... 10-3
The Export File..................................................................................................................... 10-3
Exporting Metadata ............................................................................................................ 10-5
Metadata Import ......................................................................................................................... 10-8
Importing Metadata .......................................................................................................... 10-11
Metadata Loader Command Line Utility.............................................................................. 10-17
Directive Keywords for the Export Utility .................................................................... 10-17
Export a Project.................................................................................................................. 10-19
Directive Keywords for the Import Utility .................................................................... 10-20
Import Selected Modules ................................................................................................. 10-21
Validation Rules Governing Import ............................................................................... 10-21
The OWB Transfer Wizard ............................................................................................................ 10-22
The OWB Transfer Wizard Overview ................................................................................... 10-22
Transfer Considerations .......................................................................................................... 10-23
Importing Metadata into Oracle Warehouse Builder.......................................................... 10-23
Launching the OWB Transfer Wizard for Import ........................................................ 10-24
Importing Metadata using the OWB Transfer Wizard ................................................ 10-25
Exporting Metadata from Oracle Warehouse Builder ........................................................ 10-29
Launching the OWB Transfer Wizard for Export......................................................... 10-29
Exporting Metadata from OWB to a Target .................................................................. 10-31
The Archive/Restore Utility.......................................................................................................... 10-35
Setting up Preferences.............................................................................................................. 10-37
Archiving a Project ................................................................................................................... 10-39
Restoring a Project.................................................................................................................... 10-41
Reports Administration ................................................................................................................. 10-45
Using the Administration Pages .................................................................................................. 10-45
Registering an OWB Repository.................................................................................................. 10-48
Administer Database Links..................................................................................................... 10-51
Unregistering a Repository ..................................................................................................... 10-54
User Access....................................................................................................................................... 10-54
Understanding Roles................................................................................................................ 10-54
Granting or Revoking Access ................................................................................................. 10-55
Assigning a Custom Report to a Role.................................................................................... 10-56
Purging Stale User Information.............................................................................................. 10-57
xiii
Registering a Custom Report........................................................................................................ 10-57
A Reserved Words
Reserved Words................................................................................................................................... A-2
xiv
B The Mapper User Interface
The Mapping Editor ........................................................................................................................... B-1
The Mapping Menu Bar............................................................................................................... B-1
The Mapping Toolbar .................................................................................................................. B-4
The Object Palette ......................................................................................................................... B-5
The Operator Property Inspector ............................................................................................... B-6
Using the Mouse in the Mapping Editor................................................................................... B-7
Left Mouse Click Operations ............................................................................................... B-7
Tool Tips ................................................................................................................................. B-8
Right Mouse-Click Operations ............................................................................................ B-8
Keyboard Operations.......................................................................................................... B-10
Other Dialogs .................................................................................................................................... B-11
The Add Operator Dialog ......................................................................................................... B-11
The Add/Remove Attributes Dialog....................................................................................... B-12
The (Inbound and Outbound) Reconcile Dialog.................................................................... B-13
The Physical Properties Inspector ............................................................................................ B-13
xv
Typical Control Files .................................................................................................................... D-4
XML Documents Stored in Files ................................................................................................. D-5
XML Documents Stored as Other Objects.............................................................................. D-11
Document Stored as a CLOB ............................................................................................ D-11
Document Stored As An Object-Based Advanced Queue............................................ D-13
Document Stored at URL .................................................................................................. D-15
Control File Element Names and Attributes ........................................................................ D-15
Source Elements.................................................................................................................. D-15
Target Elements .................................................................................................................. D-18
Runtime Control ................................................................................................................. D-18
Document Type Definition for the Control File .................................................................... D-19
Reference Materials ................................................................................................................... D-21
E Batch Services
Overview .............................................................................................................................................. E-1
Batch Service Interface....................................................................................................................... E-1
Open and Close Repository Connection ................................................................................... E-2
Projects ........................................................................................................................................... E-2
Applications................................................................................................................................... E-3
Metadata Import ........................................................................................................................... E-3
Validation....................................................................................................................................... E-4
Generation...................................................................................................................................... E-4
Deployment ................................................................................................................................... E-5
Deployment into a File System............................................................................................ E-5
Deployment in a Database ................................................................................................... E-5
Batch Service Command Line Feature ............................................................................................ E-5
Validate .......................................................................................................................................... E-6
Generate ......................................................................................................................................... E-7
Deploy into a File System ............................................................................................................ E-7
Deploy into a Database ................................................................................................................ E-7
Metadata Loader Import.............................................................................................................. E-8
Type 1 ...................................................................................................................................... E-8
Type 2 ...................................................................................................................................... E-8
Type 3 ...................................................................................................................................... E-9
Using Batch Services Through a Parameter File ...................................................................... E-9
xvi
Parameter file ......................................................................................................................... E-9
Parameter file command line............................................................................................. E-10
Batch Service Command Line Scripts...................................................................................... E-10
UNIX ..................................................................................................................................... E-10
DOS........................................................................................................................................ E-10
Batch Service Command Line Output..................................................................................... E-10
Validation Examples ........................................................................................................... E-11
Metadata Import Examples................................................................................................ E-12
Generation Example............................................................................................................ E-14
Deployment into File System Examples .......................................................................... E-14
Deployment in to a Database Example ............................................................................ E-14
F Performance Enhancements
Overview .............................................................................................................................................. F-1
Overhead-Free INSERT ............................................................................................................... F-3
Fast Index Creation ...................................................................................................................... F-3
Fast Constraint Maintenance ...................................................................................................... F-4
Error Handling.............................................................................................................................. F-4
Minimum Target Locking ........................................................................................................... F-4
Parallel Direct-Path INSERT ....................................................................................................... F-4
When to Use Partition Exchange Loading...................................................................................... F-5
Using Partition Exchange Loading .................................................................................................. F-7
Configuring the Mapping ........................................................................................................... F-8
Configuring the Target ................................................................................................................ F-9
Create All Partitions.............................................................................................................. F-9
Create All Indexes Using the LOCAL option.................................................................. F-13
Specify the USING INDEX Option for Primary/Unique Keys .................................... F-13
Restrictions......................................................................................................................................... F-14
Restriction 1: Allow One Date Partition Key.......................................................................... F-15
Restriction 2: Allow Natural Calendar System Only ............................................................ F-15
Restriction 3: All Data Partitions Must be in the Same Tablespace..................................... F-15
Restriction 4: All Index Partitions Must be in the Same Tablespace................................... F-15
Performance Comparisons .............................................................................................................. F-15
The Internal Workings..................................................................................................................... F-16
Function Example 1: GET_PN ........................................................................................................ F-18
xvii
Function Example 2: GET_VC ........................................................................................................ F-19
Index
Glossary
xviii
Send Us Your Comments
Oracle Warehouse Builder User’s Guide, Release 3i
Part No. A87327-01
Oracle Corporation welcomes your comments and suggestions on the quality and usefulness of this publication.
Your input is an important part of the information used for revision.
• Did you find any errors?
• Is the information clearly presented?
• Do you need more information? If so, where?
• Are the examples correct? Do you need more examples?
• What features did you like most about this manual?
If you find any errors or have any other suggestions for improvement, please indicate the chapter, section, and
page number (if available). You can send comments to us in the following ways:
• Electronic mail - dwhdoc_us@oracle.com
• Postal service:
Oracle Corporation
MS 2op713
500 Oracle Parkway
Redwood Shores, California 94065
U.S.A.
If you would like a reply, please give your name, address, and telephone number below.
If you have problems with the software, please contact your local Oracle World Wide Support Center.
xix
xx
Preface
Audience
This guide is intended for data warehouse practitioners which includes:
■ Warehouse Architects, Designers, and Developers
■ Data Analysts and those who develop extract, transform, and load routines
■ Developers of large-scale products based on data warehouses
■ Warehouse Administrators
■ System Administrators
■ Other MIS professionals
In order to successfully use the information in this guide, you need to be conversant
in SQL and PL/SQL. Additionally, you need to be comfortable with concepts of
xxi
Relational Database Management Systems and Data Warehouse design. Also, you
need to be at least familiar with Oracle’s relational database software products such
as Oracle8i/9i, SQL*Plus, SQL*Loader, Oracle Enterprise Manager, and Oracle
Workflow.
xxii
Shared (transformation) Libraries, Expression Builder, custom transformations you
define for specific needs, and SQL operations such as filters, splitters, and
aggregation functions.
Chapter 7, "Mapping Configuration and Code Generation", is the third and final
chapter describing mapping. The chapter describes how to configure your
mapping’s physical properties and how to define code generation strategies for
optimal performance during deployment.
Chapter 8, "Configure, Generate and Deploy" shows you how to configure and
validate the definitions for a specific instance. The chapter then describes how to
generate and deploy the scripts that extract, transform and load data into your data
warehouse. These scripts create and populate a data warehouse with dimensions,
facts, views, and materialized views.
Chapter 9, "Periodic Loads and Updates", shows you how to load your warehouse
with data. It then describes how to register job scripts with Oracle Enterprise
Manager to schedule periodic data loading into the warehouse.
Chapter 10, "Administration" shows you how to perform the various administrative
tasks on your warehouse using Warehouse Builder utilities. Specifically, it shows
you how to create, and drop OWB repositories using the Builder Repository
Assistant; how to install or drop a OWB Runtime Catalog using the Builder
Runtime Assistant; how to display audit statistics and error messages stored in the
Runtime tables using the Builder Runtime Audit Viewer; how to export definitions
from a OWB repository and Import definitions from a OWB Metadata file using the
Builder Metadata Loader utility.
Chapter 11, "OWB Metadata Reports", describes how to use Oracle Portal to view a
your reports as well as create your own reports on that metadata.
Appendix A, "Reserved Words" lists the words reserved for Warehouse Builder.
Appendix B, "The Mapper User Interface", describes how to define a staging
mapping that you can use to perform intermediate data transformations prior to
loading the data into your warehouse.
Appendix C, "OWB Public View Tables", lists the OWB Public Views thant can be
accessed via SQL. These views can be used to extend the reporting capabilities of
OWB.
Appendix D, "Using The XML Toolkit", describes how to retrieve and store data
from XML documents in a target schema.
xxiii
Conventions
Oracle8i refers to Oracle8i Version 8.1.7.
The SQL*Plus interface to Oracle8i may be referred to as SQL. This interface is the
Oracle8i/9i implementation of the SQL standard ANSI X3.135-1992, ISO 9075:1992,
commonly referred to as the ANSI/ISO SQL standard or SQL92.
In the examples, an implied carriage return occurs at the end of each line, unless
otherwise noted. You must press the Return key at the end of a line of input.
The following conventions are also used in this manual:
Convention Meaning
. Vertical ellipsis points in an example mean that information not
. directly related to the example has been omitted.
.
... Horizontal ellipsis points in statements or commands mean that
parts of the statement or command not directly related to the
example have been omitted.
boldface text Boldface type in text indicates a term defined in the text, the glossary,
or in both locations. May also refer to interface buttons and links.
[] Brackets enclose optional clauses from which you can choose one or
none.
Related Documents
For more information, see the following manuals:
■ Oracle Warehouse Builder 3i Installation Guide
■ Oracle Warehouse Builder 3i Release Notes
■ Oracle8i/9i Data Warehousing Guide
Oracle provides additional information sources, including other documentation,
training, and support services that can enhance your understanding and knowledge
of Oracle Warehouse Builder on the World Wide Web.
■ For more information on Oracle Warehouse Builder technical support, you can
contact Oracle World Wide Support services at
www.oracle.com/support
xxiv
■ For the latest information on, and downloads of, software and documentation
changes and updates to Oracle Warehouse Builder, visit MetaLink at
http://metalink.us.oracle.com
■ You can order other Oracle documentation by using the World Wide Web at
http://oraclestore.oracle.com
xxv
xxvi
1
Overview
Oracle Warehouse Builder is a comprehensive and powerful tool that supports the
definition and maintenance of a large scale logical model of a complete data
warehouse and the deployment of a physical instance of the data warehouse model.
This chapter describes how the Oracle Warehouse Builder 3i User’s Guide matches the
process of using OWB to design, implement and load data warehouses. In this
guide you will find instruction on how to use OWB to:
■ Create a set of definitions for a logical warehouse schema, its data sources, and
the operations that map, transform, and populate a warehouse.
■ Configure a physical instance of the logical warehouse, validate the set of
definitions for the instance, generate a set of scripts that create and load a
physical instance, and deploy a physical instance to an Oracle8i/9i database
system.
■ Populate and refresh the data warehouse, and set up Oracle Enterprise Manager
and Oracle Workflow to manage the warehouse operation. Archive and restore
projects; enable projects to be maintained through source control systems so
that they can be maintained throughout the development lifecycle.
Overview 1-1
The Developmental Phases
Refer to the Oracle8i Data Warehousing Guide for information on data warehouse
design and data warehousing strategies.
Defining A Warehouse
You begin to build your data warehouse by defining a Project. The project typically
contains the set of formal definitions that define a logical warehouse. These
definitions—referred to as Modules in OWB—correspond to either a source or a
target data warehouse.
OWB enables you to define a logical warehouse and then configure its physical
implementation parameters. Warehouse Builder then validates the definitions for a
physical instance and generates the scripts to create objects for the instance.
Chapter 2, "Getting Started on a Project" describes how to use OWB to define a
warehouse project and modules.
Overview 1-3
The Developmental Phases
Chapter 4, "The Data Source Modules" shows you how to create, modify, and
display definitions for data sources using the Source Module Editor. The chapter
describes how to create definitions for:
■ Relational databases (Oracle, SQL Server, IBM DB2)
■ Flat Files (fixed or delimited formats, etc)
■ Oracle Designer Repositories
■ Pre-packaged Applications
Overview 1-5
Taking The Next Step
and then deploy the objects by manually executing the deployed scripts. And
finally, you can deploy the scripts to a set of directories. These directories
include DDL, PLS, Tcl, SQL*Loader control file directory, and others.
After deployment, you can use the Workflow Deploy Wizard to register the Tcl
scripts that define load and refresh jobs to an Oracle Enterprise Manager
repository. You can also register the scripts with an Oracle Workflow server to
manage job dependencies such as the dependence of fact tables on its
dimensions.
This chapter shows you how to get started on a design and implementation project
using Warehouse Builder. To get started, you must first create a place within OWB’s
repository where you can store and manage the definitions that formally describe
the initial logical warehouse. OWB stores these definitions in a repository structure
called an OWB Project.
This chapter summarizes the contents and structure of a OWB Project, and then
shows you, step by step, how to log on to a OWB repository and create a Project.
The chapter closes with a few topics that will help you get off to a smoother start: a
description of the policies that govern business and physical names, a discussion of
how to move about OWB wizards, and how to personalize the OWB console so that
it meets your own specific needs.
This chapter includes the following sections:
■ Understanding The OWB Project
■ Creating A Project
■ About The OWB Console
■ About Naming Policies
■ Using The Warehouse Builder Wizards
■ Searching Navigation Trees
■ Taking The Next Step
Module Contents
OWB Projects are divided into source modules and warehouse modules.
■ Source Modules contain definitions of:
– Relational database objects
– Flat files
– Proprietary structures
■ Warehouse Modules contain definitions of:
– Dimensions
– Facts
– Relational database tables
– Mappings
– Transformation operations
– Materialized Views
– Views
– Sequences
– Scripts generated by OWB
Object Names
Using business names, developers can make a warehouse schema resemble the
business being modeled. The OWB technical term for business names is logical
names. However, before you can generate the DDL for a named object all the logical
names used to define that object must be translated into physical names. These
physical names must conform to the syntax rules defined in the Oracle8i/9i SQL
Reference.
OWB maintains a logical and a physical name for each object stored in its
repository. When you create an object and give it a logical name, OWB
automatically creates a legal physical name for the object. And, vice-versa, when
you create an object and give it a physical name, OWB validates the physical name
and automatically creates a logical counterpart. Thus, no translation is required
when DDL or another kind of script must be generated for an object.
Naming Mode You can run the OWB client in either the logical or physical name
mode, but to create or modify logical or long descriptive names, you must configure
the OWB client to run in the Logical Name mode—by default, OWB starts in
Physical Names mode. To set OWB to operate in the logical naming mode, open the
Preferences window and click the appropriate check boxes on the Naming panel.
For specific information on how to set these preferences, see "About Naming
Policies" on page 2-20.
Write locks occur whenever you access data warehouse object for editing purposes.
Acquiring a write lock prevents other users from editing the object while you are
active in that object. You will acquire a Folder-in-Use Lock whenever you access any
object within any OWB-related hierarchy. This lock prevents other users from
deleting any parent object in the hierarchy as long as you are active in the hierarchy.
For instance, you cannot delete a module from the Logical Tree in the OWB Console
while other users are active in that module because those users hold a folder-in-use
lock.
Read/Write Mode
To enter Read/Write mode for and object (and lock the object), you either:
To end the Read/Write access mode for an object (and unlock the object for others)
and access the object in Read-Only, you can either
■ Close all of the object’s editor(s) and commit/rollback current transaction.
■ Exit OWB.
If you choose to continue in Read-Only mode, the editor will indicate in the title bar
that the object is Locked and will show the ID of the user currently locking the
object. You can move objects around on the editor canvas, minimize and maximize
containers. However, you cannot edit the object in Read-Only mode; any attempt to
modify the object will cause the following dialog to appear:
For any property sheet activated in Read-Only access mode, the ‘OK’ button will be
disabled.
Lock Synchronization
Whenever an OWB data warehouse object is locked by a user, the changes can be
visible to all users with Read-Only access to that object. The Read-Only users will
see the changes on a locked object as it happens by using the Synchronize feature
To invoke synchronization, select View > Synchronize in the Warehouse Module
Editor.
Creating A Project
To create a Warehouse Builder Project, you must log on to a repository, switch to the
Administration environment, and then open the Create New Project wizard. After
you supply a name and description for the Project, the wizard creates your Project
in the OWB repository.
A OWB repository is a collection of database objects installed into an Oracle8i/9i
schema that has been initialized by the Repository Assistant with the following:
■ The Oracle Library of transformation operations
■ A Global Shared Library
■ A Project shell named My Project
The project shell is required for the initial logon sequence (you always log on to a
specific project) and can be deleted after you create your own projects. For
additional information on how to create and initialize a repository, see "Repository
Administration" on page 10-2
Logging On To A Repository
The following instructions show you how to start the OWB client, log on to a
repository and then create a project.
To log on to a repository:
1. Select Start > Oracle > OWB Client
OWB returns the logon dialog
box.
2. Enter the logon information:
■ Name and password of the
repository’s owner .
■ Host Name
■ Port Number
■ Oracle SID
This is the standard information
required to connect with an
Oracle8i/9i database instance.
3. Click Logon.
OWB returns the Project dialog
box.
This repository is empty and
contains only the shell Project
"My Project."
When a repository contains
multiple Projects, you can select
a specific project from the drop-down list. This list includes all projects in the
repository.
4. Click OK.
OWB returns its console in a window. This window remains open and available
during the entire session.
Menus
Toolbar
Navigation Tree
Project (default)
Administration
Utilities
The above illustration shows OWB’s console in its initial state (Project
environment). In this state the console:
■ Operates in the Project environment
■ Displays the navigation tree for the Project selected during the logon sequence
When you switch to another Project within the repository (Project > Switch Project)
or to a different context (Transformation Library or Administration), the console
displays the navigation tree for that Project or environment and resets the
drop-down lists under each menu item. For additional information on different
environments, see "Operational Environments" on page 2-12.
Commit
OWB does not commit a newly created Project to the repository until you click the
Commit icon on the toolbar, or exit OWB and click Yes on the pop-up Commit
Confirmation panel .
You now have a place to store and modify all the definitions for the data warehouse.
OWB also uses this space to validate these definitions and generate scripts that
create and load your warehouse.
The next section familiarizes you with the console and its different operational
contexts.
Menus
Toolbar
Project (default)
Transform Library
Administration
Utilities button
Operational Environments
The OWB console operates in three environments:
■ Project (initial environment)
■ Transformation Library
■ Administration
When the OWB client starts, the console begins in
the Project environment and displays the navigation
tree for the project selected during the logon
sequence. To change environments during a session, click one of the context icons.
Project Environment
When you are in the Project environment, you can:
Before you can create any of these definitions, whether for data sources or
warehouse objects, you must first create the modules where you can store, modify,
and manage the definitions. Each chapter in this guide shows you how to create the
required containers before it shows you how to create the definitions themselves.
For example, Chapter 3, "The Target Modules," shows you how to create warehouse
module before it shows you how to create and modify the definitions that formally
describe the star schema.
At any time during the development process, you can configure and validate the set
of working definitions. Thus, incremental corrections can be made as the project
moves forward and, should large scale corrections be necessary, OWB can do most
of the work.
Once a set of valid definitions have been created, the team can generate scripts to:
■ Create an instance of a warehouse
■ Extract and transform data for that instance
■ Perform initial and incremental loads
■ Maintain the data warehouse using Oracle Enterprise Manager and Oracle
Workflow
The development team can then turn around, reconfigure the set of definitions,
validate the reconfigured set, and then generate another set of scripts for a different
version of the warehouse.
Transformation Environment
You can create transformation
libraries and transformations
within these libraries when the
console is in this environment. You
can also modify the properties of
warehouse and source modules.
The illustration shows the fully
expanded navigation tree for the
Transformation Library. The tree
provides access to the built-in
Oracle Library as well as the
transformation operations created
by developers for your warehouse.
Administration Environment
When you are in the Administrative
environment, you can:
■ Create, modify, and display the
properties of a Project
■ Import metadata from a OWB export
file
The illustration shows the Administration
tree fully expanded. The tree contains
three Projects and the Integrators
supplied with OWB. The Integrators can
retrieve metadata from applications based
on relational databases, flat files, and
proprietary systems. This guide shows
you how to use the Flat File and Oracle
DB Integrators to extract data from
applications (see Chapter 4, "The Data
Source Modules", for more information).
■ Oracle Workflow
■ CWM Bridge
Most likely, you will need to update the configurations of these icons so that they
reference the utilities as they are installed at your site.
Each object stored in a OWB Project has its own property sheet, and this property
sheet defines the object. You can resize the property sheet to fit your window.
Property sheets vary by object. The property sheet for a Project contains two sheets
but the property sheet for a warehouse module contains three, and that for a
Dimension contains five.
Edit a Definition Definitions for objects such as dimensions, tables, facts, and
mappings are created manually using a wizard or imported from an external
source. After a definition has been created for an object and stored in a OWB
Project, you can update the definition by editing its property sheet.
You can configure individual wizards so they do not return their welcome pages
using the check box. To re-enable this behavior, at a later time, you must open the
Preferences sheets and click the button "Display Welcome page on all wizards."
You can move around a specific page using a mouse or using the Tab key. When you
tab to the last text box, you must then use the CTL-Tab combination to move the
cursor down to and across the control buttons.
You can include the complete name of an object or use the ’*’ wildcard character to
match zero or more characters. You can attach the wildcard character as a prefix or
suffix to any substring. The wildcard character matches any character.
This chapter describes how to define a dimensional model using Oracle Warehouse
Builder. The definitions for this logical model are created using a OWB wizard or
imported from external sources. This chapter also shows you how to modify these
definitions by directly editing their property sheets or using a OWB editor. The
OWB editors can also display and print diagrams as well as detailed reports about
the logical warehouse’s objects.
An introductory section summarizes a dimensional model, that serves as the target
warehouse for this guide. The next section shows you how to create a place to store
these definitions into a warehouse module. The remaining sections show you how
to create and modify each of the definitions required to formally describe a data
warehouse model.
This chapter includes the following sections:
■ About Star Schemas
■ Creating a Warehouse Module
■ Creating Dimension Definitions
■ Creating Fact Table Definitions
■ Creating Materialized View Definitions
■ Creating Conventional View Definitions
■ Infrastructure Requirements
■ Committing Your Changes
■ Taking the Next Step
For background and specific information on star schemas and dimensional models,
see the Oracle8i/9i Data Warehousing Guide.
Physical Characteristics
Like dimension tables, fact tables vary by practitioner and project, but typical fact
table has two characteristics:
■ A primary key defined on the set of foreign key reference columns or, in the
case of a data list, on an artificial key or a set of warehouse key columns. When
the fact table is a data list, the foreign key reference columns do not uniquely
identify each row in the fact table.
■ A set of foreign key reference columns that link the table with its dimensions.
When you create a definition for a fact table, you must define its measures and its
foreign key references. To define a foreign key reference, you must include the name
of the referenced dimension and its primary key column. Consequently, definitions
for dimension tables should be created before those for fact tables.
This chapter shows you how to create a definition for a fact using the New Fact
Wizard and modify the definition by editing its property sheet and using the Fact
Editor.
Check for a
Designer
Repository.
3. Click OK.
OWB stores the database link in the repository and its list of available
database links.
4. Click the down-arrow and select the database link from the drop-down list.
The link has been created, tested, and you can now import definitions from
the Oracle Designer Repository.
To import definitions from an Oracle8i/9i data dictionary, select Oracle Data
Dictionary instead of Oracle Designer Repository in step six above.
9. Click Next.
OWB returns the Finish page. This page summarizes the information you
entered on each of the wizard’s pages.
Note: OWB returns a Warning panel when the character set of the
database instance differs from the character set of the host for the
OWB client.
Defining a dimension table begins from the Navigation Tree in the Warehouse
Module Editor.
To display the navigation tree:
1. Open the Project
2. Fully expand its navigation tree
3. Double-click the module’s name in the expanded tree
For example, a typical calendar dimension could contain five levels and two
hierarchies could be defined on these levels:
H1: YearL > QuarterL > MonthL > WeekL > DayL
H2: YearL > WeekL > DayL
The hierarchies are described from parent to child, so that Year is the parent of
Quarter, Quarter the parent of Month, and so forth.
To create a dimension definition, open the warehouse module editor, select the
warehouse module and then fully expand its navigation tree.
To create a dimension definition
1. Right-click, then select Dimensions >
Create Dimension.
OWB returns the welcome page for the
New Dimension Wizard.
2. Click Next.
The wizard returns its Name page.
3. Provide information as required,
including:
■ The name of the underlying table.
The wizard automatically
generates a unique name for the
dimension object.
■ A prefix.
Every hierarchy is anchored on a
base level of aggregation, and the
wizard always generates a Unique
Key constraint on the column that
serves as the key column for the base level. The wizard uses the table prefix
to generate a unique name for the UK constraint. If you leave the prefix
blank, OWB uses the table’s name as the default.
■ A description of the dimension.
■ Reduce the number of attributes you need to enter manually: The wizard
automatically generates an ID attribute for each level and assigns it the
name levelprefix_ID.
■ Allow you great flexibility in attribute names: you can reuse attribute
names. This is a common practice when you build dimensions for higher
levels of aggregation.
6. Click Next.
The wizard returns its Level Attributes page. Use this page to completely define
each level’s attributes. A level can have one or more attributes, and the wizard
always generates an ID attribute for each level.
The ID attribute for a level is special: it serves to identify the level, or you could
say the attribute is the level’s logical key column. This attribute is used in the
CREATE DIMENSION statement to define the level, and the defined level is
used in the statement’s DETERMINES clause to specify all the other columns
within that level (dependent columns). See the Oracle8i/9i SQL Reference and the
Oracle8i/9i Data Warehousing Guide for a complete discussion.
You can use the default name prefix_ID or change ‘ID’ to something else using
the Update button. The following procedure shows you how to define an
attribute, including its aggregation level, data type, and data type parameters.
To define an attribute:
1. Click the down-arrow to
select a level of aggregation.
2. Enter a name for the attribute.
3. Select a data type for the
attribute from the drop-down
list under Data Type.
OWB supports the following
Oracle8i/9i data types:
* CHAR
* DATE
* FLOAT
* NUMBER
* VARCHAR
* VARCHAR2
4. Enter the precision, length, or scale as appropriate for the data type and
your application.
5. Click Add or Update.
The wizard records this information in the warehouse module and clears all
of the text boxes.
You can now define another attribute for the active level, or you can change to
another level and define its attributes. Continue this process until you have
defined all the attributes for each level.
The following procedure shows you how to rename the ID column and set the
Hierarchical levels.
Use this page to order the levels that participate within each hierarchy.
5. Define the levels within a hierarchy:
■ Click the down-arrow and select a hierarchy from the drop-down list.
■ Move the names of levels that participate in a selected hierarchy from
Available Levels to Selected Levels.
■ Order the levels so they reflect the parent to child order.
6. Click Next.
The wizard returns its Finish page. Verify the description.
7. Click Finish.
The wizard creates a definition for
the dimension, stores the definition
in the warehouse module, and inserts
its name in the navigation tree. To
confirm this action, fully expand the
Warehouse Module editor’s
navigation tree. The name of the
dimension now occurs under
DIMENSIONS.
The wizard always generates a
unique key constraint for a dimension table, and this constraint is always on the
ID column that represents the dimension’s base level of aggregation.
Dimensional designs often call for a PK (primary key) rather than a UK
constraint. After you complete a definition for a dimension, you can change the
To display the property sheet for a dimension object from either the Warehouse
Module Editor or the Dimension Editor:
Select Edit > Properties or click the Properties icon
You can also display the sheet from the Warehouse Module Editor’s navigation tree:
Select Products > Properties
In all three cases, OWB displays the property sheet for the dimension object:
The property sheet for the dimension table contains four tabs:
■ Name
■ Columns
■ Constraints
■ Attribute Sets
The following examples show you how to order columns within a table’s definition,
change a UK to a PK constraint, create a check constraint, and create attribute sets.
Ordering the Columns By default, the column names within a table’s property sheet
are ordered alphabetically. You can reorder a column by selecting it in the gray box
to the left of the column name and then drag the row to the up or down the list
depending on where you want the column to be in the physical order. After
re-ordering the column names, the names with position numbers occur first in
ascending order followed by the remaining names in alphabetic order.
The order of column names in the property sheet is significant because this ordering
is propagated to the DDL script that OWB generates to create the table. The default
ordering could result in problems when an application is sensitive to the order of
columns in a table. Also, you can order the columns so that a OWB generated
concatenated key (for a fact table) corresponds to expected query usage. This
ordering can greatly influence query performance.
To assign a position number:
1. Open the table’s Property Sheet.
create an FK constraint, you cannot change it to any other kind of constraint: you
must drop the constraint and create a new one.
OWB automatically generates a UK rather than a PK constraint on the column that
defines the lowest level of aggregation for a dimension table.
To change a constraint type:
1. Open the table’s Property Sheet.
3. Click the drop-down arrow under the Type column and select Primary Key.
4. Change UK in the constraint name to PK.
Note that the editor only allows you to select a UK or PK constraint.
5. Change the name of the constraint to reflect this change.
6. Click OK.
OWB updates the definition of the underlying table.
Adding Check Constraints You can add a check constraint to any of a table’s columns.
These constraints typically enforce business rules on values stored in a dimension,
fact, or table but can also be used to define a not null constraint. However, using the
Add Check Constraints feature may slow your load performance.
To add a check constraint:
1. Open the dimension table’s Property Sheet and select the Constraints tab.
OWB returns information on all the constraints defined in the dimension table.
2. Click the Add button.
OWB inserts a row in the sheet’s top pane.
3. Enter a name for the constraint, select Check Constraint, and enter a condition.
4. Click OK.
OWB stores the CHECK constraint in the property sheet.
A CHECK integrity constraint requires that a condition be true or unknown for
every row of the table. If a statement causes the condition to evaluate to false,
then the statement is rolled back.
The condition of a CHECK constraint has the following limitations:
■ The condition must be a Boolean expression that can be evaluated using the
values in the row being inserted or updated.
Notes:
■ The column name referenced in the condition of the CHECK
constraint must exactly match a physical name defined for the
table in the table’s Property Sheet.
■ OWB does not check the syntax of the condition. This can result
in problems during the code generation phase when OWB
generates a Create Table statement to deploy the table.
OWB returns information on all the attribute sets defined in the dimension
table.
Note: When you view an attribute set that was created previously,
the attributes that are not selected appear after the selected
attributes in their original order. Changing the order of
non-selected attributes has no effect after you close the Table
Properties sheet.
For each attribute in the bridge-type attribute set, specify the properties:
■ Aggregation: Select SUM, MIN, MAX, AVG, COUNT, or DETAIL for no
aggregation. The default is MIN.
■ Position: Select DATA POINT, PAGE, SIDE, TOP, or TOP/SIDE. The default is
PAGE.
■ Item Class: Check for TRUE or no check for FALSE. The default is FALSE.
■ Heading: Enter the heading text.
■ Format: Enter the text for the format field.
■ Custom: Enter the text for the custom field. You can use this field as an escape
extra attribute.
After you have specified the properties for each attribute, click OK.
6. Click OK.
With the New Time Dimension Wizard, you enter information similar to that in the
New Dimension Wizard (see Table 3–1 on page 3-11).
The wizard returns its Levels page. This page contains several predefined levels
of aggregation and a prefix for each level.
down-arrow
The New Time Dimension Wizard generates the attributes you select plus
additional attributes and constraints. In addition to the selected attributes, the
wizard generates:
■ An ID attribute for each level
■ A Smart_key attribute for the base level
■ A UK constraint on the ID attribute for each level, which you can modify but not
remove (see the discussion in "Changing a Constraint" on page 3-26)
■ A PK constraint on the Smart_key attribute
You can modify the names of these elements and change the constraint type.
The predefined names for the levels, attributes, and hierarchies in the Time
dimension differ from those in other dimensions. You can change these names
quickly by editing the dimension object’s property sheet. For additional information
on editing a dimension object, see the discussion on page 3-21.
the table’s columns. Table 3–4 summarizes the kind of information to enter into each
wizard page..
Table 3–4 New Fact Table Wizard Pages
Page Details Examples
1 Name of the fact table Sales, Telephone Calls, Poll Answers
2 Define Foreign Keys Days, Products, Customers, Channels
3 Define Measures Dollars, Units, Cost, Margin
To create a fact table definition, open the warehouse module editor, select the
warehouse module and then fully expand its navigation tree. To display this
navigation tree:
1. Open a project
2. Fully expand its navigation tree
3. Double-click the module’s name in the expanded tree.
4. Click Next.
The wizard returns the Define Foreign Keys page. Use this page to explicitly
define each of the table’s foreign key references.
Note:
■ The Fact Wizard displays the name for each generated PK
constraint on a dimension’s level columns. Only the lowest
level PK constraint is an actual physical constraint.
■ You cannot modify the name or data type of the foreign key
reference columns. You can only do this by editing the
definition for the referenced table.
■ If you add a column to a PK or UK constraint on a dimension,
you must also update the fact table foreign key references.
Repeat this four-step procedure to define a foreign key constraint for each
dimension referenced by the fact table. Always choose the lowest level of
aggregation for the foreign key reference target.
You can modify the name of the generated foreign key reference constraint to a
more meaningful one: select the generated name and type over it. The name
must be unique within the Project.
5. Check the box at the bottom of the page that says "Create segmented unique
key automatically from foreign keys."
6. Click Next.
The wizard returns the Define Measures page. Use this page to define each of
the fact table’s measures.
To add a measure:
■ Click Add.
■ Enter its name.
■ Set its data type.
Continue these steps until all of the fact table’s measures have been defined.
7. Click Next.
The wizard returns the Attribute Sets page. Create attributes as described in
"Creating Attribute Sets" on page 3-29.
8. Click Next after you have created Attribute Sets.
The wizard returns the Finish page. This page describes the fact table. Verify
the description and click Back if you need to modify any of the elements.
9. Click Finish.
The wizard creates a definition for a fact table, stores it in the warehouse
module, and inserts its name in the warehouse module’s navigation tree. You
can confirm this by fully expanding the editor’s navigation tree. The name of
the dimension occurs under the FACTS branch.
To print the diagram, click the printer icon on the editor’s tool bar.
The fact table diagram is a live display. For example, drop one of the icons from the
tool palette on the fact table, and the editor returns the welcome page for the Add
Measure or Foreign Key References Wizard.
To edit a Fact table’s properties, right-click on the table object
in the Fact Editor or select Fact > Fact Properties from the
Fact Editor menu. The editor returns a pop-up list that
contains several selections.
Select Properties from the pop-up list and the editor returns
a property sheet that describes the object’s properties. These
properties include the object’s name and description, its foreign key references, its
measures, and its attribute sets.
Click the Foreign Keys tab to display a list of all the object’s foreign key references.
This panel shows all of the UK constraints defined on a dimension: the base level of
aggregation and each higher level of aggregation. OWB generates DDL only for the
constraint defined on the base level of aggregation.
■ Change the name of a foreign key reference constraint.
■ Add, Remove, or edit a measure (name, data type, and description).
You edit the table’s property sheet if you want to change its physical properties.
Select Table Properties from the pop-up list and the editor returns the property
sheet that gives a view of the underlying fact table. The property sheet describes the
fact table according to its constraints and columns.
■ Add a new column, edit the name, data type, column position, and
description of an existing column, or Remove a column. For a description of
the Position column, see discussion on page 3-25.
■ Add, Remove, or edit a foreign key reference constraint.
■ Add, Remove, or edit Attribute Sets
If you click a dimension instead of the fact, the Fact Editor returns a pop-up list
specific to dimensions. From this list, you can display the property sheets for the
selected dimension and also call the Dimension Editor.
Importing Definitions
If a warehouse module is configured for connection with an Oracle8i/9i database
instance or with an Oracle Designer Repository, you can import definitions for
tables, Views and Sequences using the Import Metadata Wizard.
To import definitions from an Oracle8i/9i database or an Oracle Designer
Repository:
1. Configure the warehouse module to connect with the source.
2. Open the warehouse module.
3. Select Module > Import from the Warehouse Module Editor’s toolbar.
OWB returns the welcome page for the Import Metadata Wizard.
4. Click Next.
The wizard returns its Filter Information page.
See "To import definitions from an Oracle database application:" on page 4-17
for a discussion of wizard’s subsequent pages.
When you create a definition for a materialized view, the New Materialized View
Wizard solicits detailed information about the view through a series of pages. This
information includes details regarding foreign key references, columns, and their
data types. Table 3–5 summarizes the information solicited by each page.
The starting point for each example is the navigation tree for the warehouse
module. To display this navigation tree:
1. Open the project
2. Fully expand its navigation tree
3. Double-click the module’s name in the expanded tree.
For more details, see the example on page 3-6.
Usage Notes:
■ OWB does not generate code for a view if query text is not included in
its Property Sheet nor if it has no columns defined.
■ OWB generates a Create Materialized View statement to deploy the
view even if its syntax is invalid: OWB does not check the syntax of
the select statement used to define a view.
■ Manually entered queries are automatically completed with a
semi-colon—adding one will cause a syntax error.
Click Next.
6. Click Next.
The wizard returns its Finish page.
7. Verify the description, and if you need
to modify the definition, click Back.
8. Click Finish.
The wizard creates a definition for the
materialized view, stores this definition
in the warehouse module, and inserts its
name in the warehouse module’s
navigation tree. Confirm this by fully
expanding the editor’s navigation tree.
The name of the materialized view now
occurs under the MATERIALIZED VIEWS
subtree.
9. Double-click the name of the
materialized view to display a diagram
of the materialized view.
The starting point for each example is the navigation tree for the warehouse
module. To display this navigation tree:
1. Open the project module.
2. Fully expand its navigation tree
3. Double-click the module’s name in the expanded tree.
For more details, see the example on page 3-6.
Although this view has similar structure to a materialized view, the views differ as
follows:
■ Function: A view restricts access to a single family of products; the materialized
view makes queries run faster.
■ Visibility: A view is visible to a class of users; the materialized view and its
operation are transparent to all users.
■ Physical Storage: A view occupies no storage space; the materialized view
does.
Although a view differs from a materialized view, the procedure to create a views is
the same.
To Create the Definition
1. Open the warehouse module and expand its navigation tree.
2. Select View > Create View.
OWB returns the welcome page for
the wizard.
3. Click Next.
OWB returns the wizard’s Name page
which solicits:
■ The name of the view
■ A description of the view
Complete the description box to
document the view.
4. Click Next.
Usage Notes:
■ OWB does not generate code for a view if its query text is not included
in its Property Sheet nor if it has no columns defined.
■ OWB generates a Create View statement to deploy the view even if its
syntax is invalid: OWB does not check the syntax of the select
statement used to define a view.
6. Click Next.
The wizard returns its Define Constraints page.
Use this page to define "logical constraints" for a view. These constraints may be
useful when the view serves as a data source within a mapping. For example, if
you use a view as a data source within a mapping, then the Mapping Editor can
use the logical foreign key constraints to include its referenced dimensions as
secondary sources in the mapping.
Follow the procedure described on page 3-50 that shows you how to define
foreign key reference constraints on a View.
7. Click Next.
OWB returns the Finish page.
8. Verify the description, and if you need
to modify the definition, click Back.
9. Click Finish.
OWB creates a definition for the view,
stores the definition in the warehouse
module, and inserts its name in the
warehouse module’s navigation tree.
Confirm this by fully expanding the
editor’s navigation tree. The name of the
materialized view now occurs under the
VIEWS subtree.
Select Edit from this the pop-up menu and OWB returns the View Editor in a new
window. This editor diagrams the view and its references.
Click to change
displayed position
of the key columns.
Select Properties from the pop-up menu and OWB returns the view’s property
sheet. You can modify the view’s definition from the property sheet by editing
existing entries. For information on editing a definition from its property sheet, see
"Updating Dimension Definitions" on page 3-21.
Renaming A View
You can rename a view or other warehouse object. To rename a view, right-click the
view’s name and select Rename. OWB highlights the name and you can type over
the old name.
Adding Transformations
Transformations are pre-built PL/SQL functions, procedures, package functions,
and package procedures. Custom transforms are used to define an operation
outside of the Oracle Library or a group of operations. You create a custom
transform using the New Transform Wizard.
The following sections describe how to create transformation categories and create
definitions for transformations using the libraries or Expression Builder.
About Transformations
A transformation is a black box operation that changes the values of the data
passing through it. It consists of one input parameter group and at least one output
parameter group. The input or the output parameters of a transform is all the
parameters in all its input or output parameter groups. A transform takes one row
of data from its input parameters and produces one row of data to its output
parameters. In other words, the cardinality of the output parameter groups is the
same as that of the input parameter group.
8. Click Next.
9. Enter the PL/SQL code for the parameter on the Transformation
Implementation page.
After values have been specified for each parameter, if necessary, use the Back
button to navigate the wizard pages make corrections.
10. Click Finish.
implements the mapping. At runtime, you can accept the default value or supply a
different one.
When you submit the job using Oracle Enterprise Manager, you can modify the
runtime parameter value then.
The following steps describe how to import PL/SQL packages from other sources
into OWB.
To import a PL/SQL function, procedure, or package:
1. Select Module > Import... from the Warehouse Module Editor menu.
Figure 3–5 The Import Selection On The Warehouse Module Editor Menu
3. Click Next.
The Import Metadata Wizard returns the Object Selection Page.
4. From the Object Selection page, select a function, procedure, or package from
the database source tree within the available objects window. Move the object(s)
to the selected objects side using either the > to move a single object, or >> to
move multiple objects.
5. Click Next.
The Import Metadata Wizard returns the Summary and Import page.
Figure 3–8
Figure 3–9
You may now use the imported transformations. You can proceed to generate the
code and deploy.
A few things to take note of when using the imported PL/SQL:
■ You can edit, save, and deploy the imported PL/SQL functions and procedures
■ You cannot edit imported PL/SQL packages
■ Wrapped PL/SQL objects are not readable
■ Imported packages may be viewed/modified in the category property sheet.
■ You may edit the imported package body but not the imported package
specification
Business areas are most useful when the logical warehouse contains a large number
of objects. You should define business areas when you need to continually examine
natural subsets of the warehouse’s objects or export subsets of objects to a decision
support tool such as Oracle Discoverer or Oracle Express. For example, you could
define a subset of warehouse objects called Products that contains links only those
objects that pertain to product sales and another area called Customers that pertains
to customer sales.
Oracle Discoverer and Oracle Express use business areas to provide their users with
access to the precise data they need for ad hoc queries, decision support, and
presentation of results. You can use the Oracle CWM bridges to export business
areas from OWB to Discoverer and Express.
Note: When you create a business area, you do not create any new
objects—the business area only organizes existing objects into
identifiable subsets or a more friendly view.
3. Right-click on the warehouse module and select Create Business Area from the
drop-down menu. (Alternatively, use the keyboard command Ctrl + N.)
OWB returns the Business Area Dialog panel. This panel contains three areas:
■ Text box for the business area’s name.
The name can be a logical or physical name.
■ Text box for the business area’s description.
■ Names for each link to an object within the warehouse module and a
corresponding check box.
Use the text boxes to name and describe the business area and then select the
check box for each object that is to be linked within the business area.
4. Enter a name and description, and select the objects to include within the
business area. You can select the check box for a type to select all objects of that
type.
5. Click OK.
OWB creates the business area and stores it in the warehouse module’s business
tree.
Infrastructure Requirements
Before you can deploy a physical instance of a logical data warehouse, you need
complete the following tasks:
1. Create a user name for the owner of the physical schema in an Oracle8i/9i
database instance.
2. Create a set of tablespaces for the physical database objects. These must be
defined before you can complete a configuration of a physical instance.
3. Deploy the OWB Runtime Libraries to the target schema.
The first two tasks are Oracle8i/9i administration tasks, but the third is specific to
OWB and is completed using the OWB Runtime Assistant. See the Oracle Warehouse
Builder 3i Installation Guide for more information on the OWB Runtime Assistant.
This chapter describes how to create definitions for data sources using Oracle
Warehouse Builder wizards. To create a set of definitions for a database source, you
import the definitions from the source. You can import definitions from Oracle and
non-Oracle database systems, and from Designer repositories. OWB enables you to
define a source file structure by sampling data from flat files.
This chapter also shows you how to modify definitions, generate and display
diagrams for the source objects, and print diagrams.
OWB stores definitions for data sources in containers called source modules. The
first section of this chapter describes how to create source modules for different
kinds of data sources. The subsequent sections describe how to import or create
definitions for sources using OWB wizards. The closing section reviews the
infrastructure requirements that must be satisfied before you can implement a
physical instance of the logical warehouse.
This chapter includes the following sections:
■ Creating Source Modules
■ Importing Definitions From Database Sources
■ Creating Definitions for Flat File Sources
■ Importing Definitions for Pure Extract and Pure Integrate
■ Infrastructure Requirements
■ Committing Your Changes
■ Taking The Next Step
dialog can be accessed from the wizard’s Connection Information page. Database
links raise security issues and database administrators usually prefer to create and
control them manually.
The following examples show you how to create database links for Oracle and
non-Oracle systems.
Parameter Description
DB Link Name A database link name can be a maximum of 128 bytes and
can include periods (.) and the "at" sign (@).
SQL*Net Connect String A connect string for the database system.
Non-Oracle Database:
If the system is a non-Oracle system, specify this by including
’(HS=OK)’ within the connect_data clause.
Host Name Information Alternate specification of values for database link parameters
Host Name Alias for the IP address of the host machine.
Port Number Configured port for the Oracle Listener.
Oracle SID SID for an Oracle Instance or an Oracle Transparent Gateway.
Heterogeneous Services Check only if the link points to a non-Oracle database system.
This includes systems accessed via ODBC, OLE DB or an
Oracle Transparent Gateway.
User Name & Password User name and password for the database system. Case
sensitive names and passwords need to be double-quoted.
For more information on database links and connect strings, see Oracle8i/9i
Distributed Database Systems Release 2 (8.1.7) and Oracle8i/9i SQL Reference Release 2
(8.1.7).
After you create a database link, you can edit the link information in a module
property sheet. These sheets differ according to whether the source is based on an
Oracle or non-Oracle system. To access this sheet, see the discussion in "Update a
Source Definition" on page 4-26.
After you create and test a database link, OWB stores the link’s properties in its
repository. It then displays a Connection information window in which you can edit
your Schema, select a different database link or define a new one, and select a
source from which you can import your metadata.
A database link does not have a property sheet of its own, but you can display a
link’s properties by opening the property sheet of a source module that references
the link. Also, you must add a schema using the Change Schema button. For
information on opening a source module’s property sheet, see "Update a Source
Definition" on page 4-26.
The Connections Finish window for a source module contains information about
the source module and the database link, and the information about a link that
references an Oracle system differs slightly from one that points to a non-Oracle
system.
Oracle Database Oracle Database 7.3, 8.0, OWB Integrator for Use to access an
8i, 9i Oracle DB & Apps 2.0 Oracle database
Flat File System Generic File System OWB Integrator for Use to access flat files
Flat Files
OWB returns the welcome page for the New Module Wizard.
2. Click Next.
The wizard returns the Name page.
3. Click Next.
The wizard returns the Data Source Information page. This page contains three
down-arrow lists:
■ Application Type
■ An Application Version or System Type
■ Oracle OWB Integrator
You select the Application Type and the Application Version or System Type,
and the wizard determines the correct software integrator.
Application Type
Application Version
or System Type
4. Click Next.
The wizard returns the Connections Information page. Use this page to specify:
■ A source as an Oracle Data Dictionary or an Oracle Designer Repository
■ A database link
■ The schema owner’s name
Click New DB Link to create the link if it not does not exist in the OWB
repository (see the discussion of database links in "Configuring Connection
Information for Database Sources" on page 4-2).
5. Select the name of the database link from the down-arrow list.
The wizard returns the link information and the name of the schema’s owner.
6. To change schema owner’s name, click Change Schema. The wizard returns a
list of users.
To display the property sheet for a source module, fully expand the navigation tree
for the warehouse project, select the module’s name, and then click the Property
icon in the console toolbar.
Check for a
Designer
Repository.
Check the button and select a database link that connects with the host where the
Oracle Designer Repository resides. Otherwise, create the source module using the
procedure described for the previous example.
This page contains two text boxes, Drive and Directory. Use these text boxes to
specify the full path name of the source directory.
To specify the source directory:
a. Enter the name of the drive that contains the source directory. This drive
must be mapped to the workstation that hosts the OWB client.
b. Click Browse.
The wizard returns the Flat File Directory Chooser panel which displays a
navigation tree for the drive specified in the first text box.
c. Select the name of the directory that contains the flat file and click OK.
The wizard inserts the directory name in the Directory text box.
d. Click Next.
The wizard returns the Finish page which summarizes the information you
entered. Verify this information before you proceed.
e. Click Finish.
The wizard creates the flat file module and inserts its name in the navigation
tree for the warehouse project. To verify this, expand the Project navigation tree.
The module’s name now occurs in the MODULES branch.
The diagram in Figure 4–2 was generated using the Source Module Editor. After
importing definitions into a source module, you can display and print this diagram
using the Source Module Editor. To call this editor, fully expand the Project
navigation tree and double-click the module’s name.
4. Click Next.
The wizard returns the Filter Information page.
Use this page to limit the search of the source’s data dictionary. You can limit a
search to:
■ Tables, views, sequences, or PL/SQL procedures or packages
■ Search pattern (for example, a warehouse project name followed by a %)
■ Maximum number of objects
Check the boxes for target objects; enter a search name, and set a max value.
5. Click Next.
OWB connects with the source over a database link, reads its data dictionary,
retrieves the list of names that meet the search condition, and then returns the
Object Selection page.
4. Click Next.
The Object Selection page displays. The objects that were originally imported
display in bold text. Use the arrow buttons to select the objects that you
originally imported.
Objects
Already
Exist in the
Repository
5. Click Next.
The Summary and Import page displays. The action ’Reconcile’ is displayed for
the objects you are re-importing.
This report gives details about the actions performed by OWB for each
component of each object.
There are two additional features available to you:
■ Save–Click Save to save the report. Make sure to use a naming convention
that is specific to the re-import.
■ Undo–Click Undo to undo all changes to your OWB repository.
8. Click OK if you want to proceed.
Update a Source Definition You can update a source definition by editing entries in its
Property Sheet. To display a definition’s property sheet, select its name in the
navigation tree and then select Properties from the pop-up list.
To update an existing entry, select the entry and enter the new information. Some
entries have down-arrow lists that limit the range of selections. For example, when
you change the data type of a column, you must select an entry from a down-arrow
list. You can also add new entries or remove existing ones.
Update the Connection You can update the connection information for a data source
by changing its link (click the down-arrow and select from the drop-down list).
When you change the connection information, OWB returns a warning message
that you may compromise the existing definitions in the source module. To change
the connection, click OK.
Diagram a Source Definition You can display a diagram for a definition and its
references using the Source Module Editor. To display a diagram for a definition,
select its name in the navigation tree and then select Edit from the pop-up list. The
Source Module Editor displays a diagram of the definition.
Toolbar
Each object in the diagram has a toolbar which you can use to sort the column
names. The toolbar is divided into three rectangles: to sort the column names click
one of the rectangles:
■ Left rectangle determines the position and order of the primary key columns.
■ Middle rectangle sorts all the column names.
■ Right rectangle determines the position and order of foreign key columns.
The sort order is only for display purposes and has no bearing on the ordering of
column names within the definition.
Character set: OWB’s default NLS character set is the same as its host. If it differs
from the source file’s character set, the data sample might be unintelligible. You can
direct OWB to display the data sample in the source’s native character set by using
the down-arrow selection list. For complete information on NLS character sets, see
the Oracle8i/9i National Language Support Guide Release 2 (8.1.6).
Physical record length: The length of a fixed-format record can be specified as
length in bytes or set to use the operating system terminator. The length
specification results in greater efficiency.
Logical records: OWB can manage a source file whose logical record consists of
multiple physical records. In this case, the number of physical records can be fixed
or vary. If fixed, you must specify the number of physical records per logical record;
otherwise, you must specify a continuation character at the end or beginning of
each physical record within a logical record. See the example in "Specifying Logical
Records" on page 4-41.
Multiple record types: The Flat File Wizard can interpret a source file which
contains a variety of record types. You must specify the column within the source
file that contains unique record types. You then scan the column to identify unique
record type values, then define the characteristics of that record type. The record
types can be renamed to be more meaningful.
Field type: Describes the data type of the field for the SQL*Loader. OWB supports
the following set of portable data types:
■ CHAR
■ DATE
■ DECIMAL EXTERNAL
■ FLOAT EXTERNAL
■ INTEGER EXTERNAL
■ ZONED EXTERNAL
The native numeric data is a number in character form: it is not a binary
representation. Thus, the numeric data types are identical to CHAR except for their
behavior with respect to the DEFAULTIF and NULLIF constraints. See discussion
below on field constraints.
You can represent FLOAT EXTERNAL data either in scientific or regular notation. The
representations "5.33" and "533E-2" are both valid.
For complete information on SQL*Loader field and data types, refer to the
Oracle8i/9i Utilities Guide, Release 2 (8.1.6).
Field mask: The SQL*Loader uses "dd-mon-yy" as its default date mask. You can
override this default by entering a valid date mask when you describe the file. For
example, should the input data have the format "DD-Mon-YYYY" rather than the
SQL*Loader default, you can enter the true format as a mask.
NULLIF/DEFAULTIF conditions: You can override the default action of the
SQL*Loader by placing a DEFAULTIF or NULLIF condition on a field.
■ When a numeric or DATE field contains all blanks, SQL*Loader rejects the entire
record. To override this action, include a DEFAULTIF = BLANKS condition on the
field. When SQL*Loader evaluates this condition, it sets the field to zeros and
loads the record.
■ When a character field contains all blanks, you can direct SQL*Loader to mark
the column as null rather than storing the blanks by including a NULLIF =
BLANKS condition on the field.
When you describe the field using the Flat File Sample Wizard, you can optionally
choose one of these constraints.
4. Move the name of the file to be described from the Available to the Selected
Objects window pane.
5. Click Next.
The wizard returns the Summary and Import page. The left-most column of this
page contains a status ball which can be red or green. If green, then OWB
already has a definition of the file’s format—proceed to step 7; if red, then you
must create a format for the file using the Flat File Sample Wizard.
6. Create a format:
■ Select a file that has a red status ball.
■ Click the Sample button at the bottom of the Summary and Import page.
■ The wizard returns the welcome page for the Flat File Sample Wizard.
■ Click Next.
The wizard opens the file, reads a sample of data, and returns the File Setup
page. This page displays the sample of data in a template with a few initial
values set for the file’s global properties.
■ Verify and select the global properties:
* File format: Fixed Length
* Record ends at: <CR> by default.
* Record size can be specified by length
* NLS Character set: WE8MSWIN1252
Note: If OWB’s character set differs from the source’s, the sample
might not be readable. If so, select the source’s character set from
the down-arrow list and OWB translates the sample.
■ Click Next.
The wizard returns the Record Organization page. Use this page to specify
whether the file contains single or multiple record types, or if it requires a
logical record structure. You may also select how many rows of the file to
sample.
■ Click Next.
The wizard returns the Column Definition page. Use this page to specify
the column widths.
If you call this wizard at a later time with a file that has the same format as the
one you have just set, then you can select this entry from the Same As field
(fourth column) instead of creating a new definition with the Flat File Sample
Wizard.
7. Click Finish.
OWB creates a definition for file, stores the definition in the source module ,
and inserts the format’s name in the source module’s navigation tree.
9. Identify the column or columns that identify the record type in the file by using
the Record Type begins at position field and the And ends at position field.
In the following example, the first column defines the record type, so the first
column begins in position 0 and ends in position 1.
You now need to define the data characteristics for each field, and adjust
masking and constraints.
13. Adjust the data type, mask, and constraints (NULLIF, DEFAULTIF) as needed for
each record type.
14. Click Next.
The wizard returns the Summary page.
15. The Summary panel shows what is to be imported by the wizard.
The source module now contains a definition for the MEmpascii_dat file format and
within it, definitions for the individual records.
2. Select Record.
OWB returns the definition’s Record sheet. You can edit the record type
information, for example, you can delete a record type or add a new one.
3. Select Structure.
OWB returns the definition’s Structure sheet.
Using this sheet, you can:
■ Select a record type from the Record Name drop-down list
■ Edit a field name, data type, mask, constraint, and description
■ Add a field mask
■ Add a NULLIF condition
■ Add a DEFAULTIF condition
■ Add or delete a field
The tabular format of this sheet is useful when you map a field from a data
source to a target column.
4. After completing your changes, click OK.
by a comma and enclosed with double quotes. The location of the file was
configured in a warehouse source module.
The task begins by calling the Import Metadata Wizard from the navigation tree for
the active project.
To create a definition for a delimited file format:
1. Select the warehouse module
2. Right-click <Module Name> > Import …
OWB returns the welcome page for the Import Metadata Wizard.
3. Click Next.
The wizard returns the Filter Information page which you can use to filter the
file names.
4. Click Next.
The wizard returns the Object Selection page. This page displays two window
panes: Available and Selected Objects. The Available pane displays the tree of
the directory configured for the source module; the other pane is empty.
5. Move the file’s name from the Available to the Selected Objects pane using the
single arrow key.
6. Click Next.
The wizard returns the Summary and Import page. The left-most column of this
page contains a status ball that can be red or green: if green, then OWB already
has a definition of the file’s format; otherwise, you must create a definition for
the file using the Flat File Sample Wizard.
The ball in the present case is red and you cannot describe the file with the
format, so you must create a definition for this file’s format.
To create a format:
a. Click the Sample button at the bottom of the page.
The wizard returns the welcome page for the Flat File Sample Wizard.
b. Click Next.
The wizard opens the file, reads a sample of data, and returns the Setup
page. This page displays a sample of data in a template with a few initial
values set for the file’s global properties.
■ The Field Delimiter default is the comma (,).
■ The Enclosures defaults are double quotation marks (") for both the left and
right enclosures.
c. Verify and select the file format (Delimited) and an NLS character set. See
the discussion on NLS character sets on page 4-29.
Use the text box for the left and right enclosure characters to exclude these
characters from the data. You can enter an enclosure character in the text
box or select one from the drop-down list.
d. Click Next.
The wizard returns the Record Organization page.
e. Specify single record type and the number of rows to sample. (You cannot
enable logical record support for a delimited format file.) For a file that has
multiple record types, see "Defining Multiple Record Types in a Delimited
File" on page 4-44.
f. Click Next.
The wizard returns the Properties page. Use this page to completely
describe each field.
See the detailed discussion for each field property in Step n on page 4-34.
Note: In this example, the first record represents the field names.
g. Click Next.
The wizard returns the Summary page. Verify that the format definition is
correct; if not, navigate the wizard pages by clicking the Back button and
correct the definition.
h. Click Finish.
The Flat File Sample Wizard exists and then returns to the Summary and
Object page of the Import Object Wizard.
The Summary and Object page has been updated: its status ball is now green
and the File Structure Name column now has an entry (channel_csv).
You can call this wizard at a later time and use the channel_csv format to
describe any flat that has the properties described by this format. Instead of
sampling the new file you can select this format from the Same As field.
7. Click Finish.
OWB creates a definition for file, stores it in the source module, and inserts its
name in the source module’s navigation tree.
To display the navigation tree for the source module, double-click the module’s
name in the Project tree.
OWB returns the Source Module Editor. Fully expand the editor’s tree and look
under the FILES branch.
4. Click Next.
Selecting multiple record types brings up the Record Types page:
5. You should now identify the column that contains definitive unique record
information. For delimited files, the program assumes the column to scan is the
first column of the record unless you specify a different column. Click Scan for
Record Type Values: all unique values appear.
Records identified are named RECORD_1, RECORD_2, and so on, but you can
rename them to more meaningful names by simply typing the new name in the
field. For example, change E’s record name to employee and P’s record name to
payroll, as shown in the following figure.
When you select a record type in the list, the lower panel shows data only for
that record type.
6. Click Next.
The wizard returns the Properties page:
7. For each record type, select its record name and adjust the data types, mask,
and constraint information.
See the detailed discussion for each field property on page 4-34.
8. Select the remaining record type and adjust the date types and other
information for that record type. When you have the record type definition in
the proper structure, select Next.
The Wizard processes your records.
9. The Summary presents all record information to be imported.
10. Click Finish to import the file or click Back to return to a previous page to make
further changes.
2. Select Record.
OWB returns the definition’s Record sheet. You can edit the record type
information, for example, you can delete a record type or add a new one.
3. Select Structure.
Search by: select the Logical Names or Physical Names button to determine
how the Import Utility searches the repository. For a complete discussion of
how the utility operates, see "The OWB Metadata Loader" on page 10-2.
Character Set: The host machine for the OWB client determines the default
character set. Use the down-arrow list to select the character set of the exported
file if it differs from the client’s character set.
4. Click Scan for a summary of the exported file’s contents, and then click Import.
OWB reports the progress of the operation in a Progress panel, and after the
operation completes OWB returns a Metadata Import Results panel.
5. Click View Log File to verify the results of the operation.
If the Import operation was successful, you can now view the definitions imported
into the OWB repository.
You can now create definitions for mappings that reference the source module
definitions. Also, each warehouse module now contains a Pure Integrate mapping
that can be deployed as an Oracle Workflow function. For additional information on
defining dependencies among workflow functions and scheduling workflow jobs,
see "Scheduling Jobs" on page 9-2.
Infrastructure Requirements
When a source module points to a non-Oracle system or a UNIX file, the network
infrastructure must include components that allow OWB to access the source.
When the source is a non-Oracle system, OWB uses Oracle8i/9i Heterogeneous
Services. At minimum these services must be configured, and in most cases an
Oracle Transparent Gateway agent must be installed on the source’s host.
When the source is based on UNIX flat files, OWB uses a Network File System (NFS)
connection to read the files. To implement this link, third-party software must be
installed on the OWB client and an NFS server started on the application host.
The following sections summarize these infrastructure components.
Transparent Gateway
OWB can communicate with a non-Oracle system using a transparent gateway
agent which is a system-specific source.
For example, if a OWB source module defines an source based on a Sybase system,
then the agent is a Sybase-specific transparent gateway. You must install and
configure this agent to support the communication between the two systems.
Generic Connectivity
OWB can also communicate with a non-Oracle system using generic connectivity
provided that the non-Oracle system supports the ODBC or OLE DB protocols. In this
case, you do not need to purchase a separate transparent gateway; you can use the
generic connectivity agent included with the Oracle8i/9i database server. You must
still create and customize an initialization file for your generic connectivity agent.
Generic connectivity is intended for low-end data integration solutions and the
transfer of data is subject to the rules of specific ODBC or OLE DB drivers installed on
the client system.
For additional information on distributed processing systems, see the Oracle8i
Distributed Database Systems Release 2 (8.1.6) guide.
This is the first of three chapters that discuss mapping sources to targets. This
chapter describes how to create and update logical definitions that map the source
object attributes you defined in the previous two chapters to target object attributes.
The next chapter describes how to add operators and transformations to a mapping.
And the following chapter describes how to configure the mapping’s logical and
physical properties as well as describing how to reconcile mapping operators with
repository objects.
Creating a mapping with OWB involves five steps:
1. Define the mapping.
2. Add operators that reference metadata objects for query and altering of the
data.
3. Reconcile the mapping operators with the repository objects they represent.
4. Configure the mapping.
5. Generate the mapping.
In addition to creating and updating a mapping, this chapter describes the concepts
behind the Oracle Warehouse Builder Mapping Editor. This chapter includes the
following sections:
■ About Mappings
■ Defining Mappings
■ Generating the Mapping
■ Taking The Next Step
About Mappings
You need to have an understanding of the concepts behind the OWB Mapping
Editor in order to give you the foundation you will need to build mappings. This
section introduces those concepts.
When you create a mapping, you define the Extraction, Transformation, and
Loading (ETL) operations from a data warehouse source object to a data warehouse
target object. Mappings are defined in a warehouse module and as such can be
configured, generated and deployed like other objects. The mapping and
transformation definitions all reside in the warehouse module that defines the
target objects.
.
In Oracle Warehouse Builder, you define mappings using the Mapping Editor,
Property Inspector, and Expression Builder Graphical User Interfaces. The mapping
GUIs make it easy to create mapping definitions that extract and transform data and
then load it into target tables. For a description of the Mapping Editor Interface, see
"About The Mapping Editor" on page 5-8. For a description of Expression Builder,
see "About Expression Builder" on page 6-2.
About Rows
A row (or record) is the basic unit for the processing of data in any mapping. A row
has a structure and is defined by attributes, where each attribute is given a name
and datatype (such as CHAR, NUMBER, etc), and length, scale, and precision.
About Row-Sets
A row-set is defined as rows of structured data brought into or emerging from an
operator (as defined in the next section), within mapping. Any set of zero or more
rows may comprise a row-set. A mapping defines how row-sets are to be extracted
from a source (such as a table, or file), transformed and loaded into a target, (such as
a table, dimension or fact using operators. The number of rows in a row-set is
known as the cardinality of that row-set.
About Operators
An operator is a self-contained "box" that manipulates data in a mapping. An
operator defines how the input row-sets are manipulated to produce the output
row-sets and the cardinality of its input row-sets is potentially different from that of
its output row-sets.
Several operators are available in OWB, each with its own purpose for processing
row-sets. Mappings provide a unified interface that connects these different
operators that have certain properties. This helps you to visualize the logical flow of
the data from the sources to the targets and the operations you perform on the data
during the ETL process. Hence, operators are key to the Oracle Warehouse Builder
mapping paradigm.
You define and edit operators using the Mapping Editor and Property Sheets. The
Mapping Editor contains an Object Palette that visually represents the operators.
The operator types available within the Mapping Editor include:
■ Extract Operators–Mapping Table, Mapping View, Mapping Materialized View,
Mapping Sequence, Mapping Fact, Mapping Dimension, Mapping Flat File etc.
■ Load Operators–Mapping Table, Mapping Materialized View, Mapping
Dimension, Mapping Fact, etc.
■ Standard Operators–Aggregator, Pre- and Post-Mapping Processes, Filter,
Joiner, Splitter, Sorter, Deduplicator (Distinct), etc.
■ Transformations–Mapping Transformation, Expressions, Constants.
■ External Process–Pure*Integrate, Pure*Extract, custom processes.
You define and edit operators using the Mapping Editor canvas, Operator Property
inspectors, and the object palette, all of which are described in "About The Mapping
Editor" on page 5-8.
The operator properties can be viewed and altered by the operator’s Property
Inspector dialog.
inherited from the attribute sets of a warehouse object that are defined during the
source and target definition phase of data warehouse design. See "Creating
Attribute Sets" on page 3-29 for information on attribute sets.
You can see only one display set at a time for an attribute group. By default, the
Mapping canvas will always show the display sets with all the attributes in the
respective attribute groups. You can also edit display sets—as well as define new
display sets—within an operator using the Mapping Editor. See "Reconciling Your
Mapping" on page 5-36 for more information on editing operator attributes.
Table 5–1 describes the default attribute sets for Display Sets.
Table 5–1 The Default Attribute Sets
Attribute Set Description
All This is the default attribute set and includes all attributes.
Hierarchies… For every Dimension with hierarchies defined, the system will
automatically create for each hierarchy in the Dimension a
display set containing all the level attributes in that hierarchy
(named after the hierarchy name)."
About Reconciliation
The loose coupling of mapping operators to repository objects is one of the key
mapping concepts in Warehouse Builder. It gives you the flexibility to evolve
mappings and repository objects independently. Only when you are satisfied with
your changes to repository object definitions do you need to update your mappings
to reflect these new object definitions.
The process of keeping mapping operators and repository objects in step is known
as reconciliation. Do not confuse reconciliation with the term synchronization,
which is used to describe the process of ensuring that you are up to date with
changes made by other users in a multi-user environment. To characterize the two
terms as used in Warehouse Builder, synchronization is a necessary activity (akin to
saving a file frequently) to keep users in step, whereas reconciliation is a deliberate
act which can be planned to occur at significant milestones in the warehouse
development. See "About Multiple-User Access" on page 2-4 for more information.
You can use reconciliation to control the phases of the warehouse development
process or to allow proper planning of warehouse maintenance. The reconciliation
feature provides great flexibility to accommodate different development
methodologies; here are two examples:
■ If you are driving the warehouse development process from your mappings
then you can use outbound reconciliation to create new repository
objects—tables, views and materialized views.
■ You can prototype your mappings using tables and when you are satisfied
with the transformation logic switch to other object types for the production
mappings—for example views, materialized views, facts—by using
inbound reconciliation.
■ The Mapping Menu Bar–The menu provides access to all features of the
mapping editor, including those commonly done by using the mouse (for
accessibility purposes).
■ The Mapping Tool Bar–You can execute certain commands using the Mapping
Toolbar rather than the main menu.
■ The Canvas–The white space on the Mapping Editor is called the Canvas. You
use the canvas to perform most of your mapping activities. You use the canvas
to model your extract, transform, and load (ETL) operations. The canvas is
where you graphically add and remove objects as well as edit the operators of a
mapping and draw the associations between them.
You can select multiple mapping operators or data flow connections either by
SHIFT or CONTROL mouse clicks dragging a box around components
■ Operator Property Inspector
You edit the properties of a mapping operator, attribute, or attribute group
using the Operator Property inspector. The content and organization of
properties in the Operator Property inspector is different for each operator,
attribute, or attribute group; each operator, attribute, or attribute group may
have it’s unique set of properties and organization, but attributes will have a set
of common properties (such as datatype, name, etc.).
The Property Inspector is a non-modal dialog—once opened, you can select
another operator, attribute, or attribute group and the content of the property
inspector will display the properties for the selected object. Only one property
inspector can be active at a time.
About Expressions
At various points in defining a map, you may need to add an expression to get the
map to do what you want it to do (for example, joiner condition or a splitter
condition). Expressions consist of values of operator properties, and they are set and
altered through the Property Inspector using the Expression Builder. Each operator
will determine what kind of expressions it supports. The Expression Builder
contains a validate feature that enables you to check to ensure if the expressions you
created are correct. The expressions are limited to the inputs of the operator and to
any transformations available in the project. This limitation helps protect the
expression from becoming invalid because of change external to the operator.
Defining Mappings
The remainder of this chapter describes how to define a basic mapping. Specifically,
this section will describe how to
■ Map data from a flat file to a table
■ Add an operator that enriches or complements the data flowing to the table
from the flat file.
This section describes the following steps in defining a new mapping:
1. Create a mapping object in your warehouse module using the New Mapping
Wizard.
2. Define data sources, data targets, operators, and transformations.
3. Configure their attributes and their properties.
4. Graphically define the data flow connections between the operators’ attributes.
5. Validate and reconcile the mapping and generate the code.
6. Click Next.
The New Mapping Wizard returns the Finish dialog. You can use the Finish
dialog to verify the name of your new mapping.
7. Click Finish.
OWB stores the definition for the mapping and inserts its name in the
warehouse module’s navigation tree. You have created a container that will
hold the mapping operators that define the ETL operation from a data
warehouse source object to a data warehouse target object. The Mapping Editor
automatically opens.
■ dragging the operator type icon from the Object Palette and dropping it
onto the canvas.
■ selecting Edit > Add and selecting the operator from the menu list.
The following instructions describe how to select a Mapping Flat File operator as
data source for a mapping. A File operator is used as the row-set generator for
reading from a flat file. A File operator may be connected to a downstream filter
operator, expression operator, or transformation operator. The row-set generated
from the file operator must ultimately arrive at a table, view, dimension, or fact
operator. A file operator will generate a SQL*Loader mapping. The following
instructions assume that you already have an open Mapping Editor.
To define a flat file source operator:
1. Drag a Mapping Flat File icon from the Object Palette and drop it onto the
canvas.
OWB opens the Add File dialog.
2. Select one of the four options:
■ Create unbound file with no attributes–enter a name for the new mapping
file you are creating.
■ Create new repository file and bind–select the warehouse module where
you want to create the file.
■ Import file into repository and bind–select the module from which you are
importing the file.
■ Select from existing repository file and bind–either type the prefix to
search for the flat file or select from the displayed list of flat files within the
selected module.
3. For this case, select a flat file from an existing repository file and bind and the
click OK.
Once you’ve made your selection, OWB places a Mapping Flat File operator on
the canvas which reflects the names and attributes of the flat file to which it is
now bound
Figure 5–9 The Mapping Editor Showing A Mapping Flat File Operator
You are now ready to define a target operator for your mapping.
If you make this selection and then click OK, OWB returns the New Table
Wizard. Follow the wizard steps to create a new table.
■ Import table into repository and bind–select the module from which you
are importing the table.
If you make this selection and click OK and have already defined a
database link for the module from which you are importing the table, then
OWB returns the Database Link Information dialog. Enter the appropriate
information into the dialog. If you have not defined a database link, then
OWB returns the New Database Link Information dialog. See "Using The
New Database Link Dialog" on page 4-4 for information on how to define a
new database link.
■ Select from existing repository table and bind–either type the prefix to
search for the table or select from the displayed list of tables within the
selected module.
3. For this case, choose Select from an existing repository table and bind and then
click OK.
Once you’ve made your selection, OWB places a Mapping Table operator on the
canvas which reflects the names and attributes of the Table to which it is now
bound.
Figure 5–11 The Mapping Editor That Includes A Mapping Table Operator
There is no need to bind it to any object in the OWB repository since this build-in
Operator already has a predefined set of attributes. You are now ready to connect
your operators.
2. Drag the mouse away from the output attribute and toward the input attribute
to which you want data to flow.
As you drag the mouse, a line appears on the Mapping Editor canvas to
indicate a connection.
3. Release the mouse over the input attribute.
You have now created a data flow connection between a data source and data
target. Repeat steps one through three until you have created all the data flow
connection appropriate for your situation.
This defines a mapping. Note that to complete a mapping, you may also need to
include transformations in addition to those described—transformations such as
pre– and post–mapping processes and mapping transformations. Chapter 6,
"Mapping Operators and Transformations" shows you how to create definitions for
these and other custom transformations.
Before you can actually generate a mapping, you may need to alter settings for
attributes in the data target. The following section describes how to do this. If not,
then skip the following section and proceed to the next section that describes how
to reconcile and validate your mapping.
Configuring A Mapping
In mapping a source operator to a target operator, you may need to edit certain
characteristics in your mapping. To customize your mapping, you can provide
additional configuration information. Configuration can either be an intrinsic part
of your ETL design or be of a more physical nature, for instance, based on how and
where you want to deploy your Mapping.
The following section addresses the more commonly used settings that require
configuration. See "Configuring The Mapping For Deployment" on page 7-13 for
more complete information on configuring a mapping.
4. Select the Steps node and expand the child nodes until you see the property you
need to set.
5. Click the close window button to save the setting.
3. Click on the Details button to see the full message that appears in the
Validation Message Field.
If you have errors, the Validation Details window will often include suggestions for
correcting them. You can open an editor to make these corrections by clicking Edit
in the Validation Results Window.
Once you have reconciled the operators and validated the mapping, you are ready
to generate the SQL code defined by the mapping. The next section describes how
to view and edit that code.
■ From the Mapping Editor–this method will generate code that the user can
inspect from a code viewer.
To generate code from the mapping editor, select Mapping > Generate from the
Mapping Editor menu. OWB will then generate the code for the mapping. When the
code generation completes, OWB returns the Code Viewer.
For a Mapping that extracts records from a flat file and loads them as rows into a
target table, the generated code results in a SQL*Loader control-file. The control-file
reflects a Mapping definition from a flat file to a table source and includes a date
stamp:
Renaming Attributes
To rename an operator, attribute or attribute group, select the appropriate item on
the Mapping Editor canvas and
■ Select Edit > Rename from the menu or right-click an attribute and select
Rename from the popup menu.
■ Specify the new name of the operator in the Rename dialog box.
■ Click OK.
You can also right mouse-click on the operator and select Rename from the popup
menu.
■ You can create a new unconnected attribute by right clicking the attribute
header and choosing Add/Remove Attribute.
■ Right mouse-click the header of the mapping operator and select the
Inbound Reconcile menu item from the popup menu.
OWB launches Inbound Reconcile Operator dialog.
The Inbound Reconcile operator dialog enables you to select the object in the
repository to reconcile the mapping operator with and then select the strategy for
matching the attributes of the mapping operator with the selected repository object.
Note that operators of a certain origin (table, file) can be reconciled with a different
repository object type (view, etc.) See "Reconciling Mapping Operators With
Repository Objects" on page 7-2 for more information on Reconcile Strategies.
Note: If you generate code at any time during your OWB Session,
Multi-User Locking feature will remain in effect until after you
commit your changes.
This chapter is the second of three chapters that discusses mapping by describing
advanced mapping features. Specifically, this chapter describes how to add Data
Flow operators that transform and manipulate data as it moves from a source to a
target.
This chapter describes how to construct transform expressions using specific icons
on the Object Palette. It also describes how to use Expression Builder to create
transforms using standard transformations selected from the Oracle Library as well
as defining custom transformations..
This chapter includes the following sections:
■ Using Expression Builder
■ Adding Data Flow Operators To A Mapping
The following two sections describe Expression Builder and how to use it to build
data transform expressions.
SQL that are used in-line as part of a bigger SQL statement. With Expression
Builder, you can drag and drop pre-defined SQL expressions selected from the GUI.
These expressions enable you to use
■ Any input to the operator in which the expression is defined.
■ Transformations or predefined functions from the Oracle Transform
Libraries as well as from Custom Transforms
Expression Builder contains the following fields:
■ The "expression type" title will be dynamically populated based on the
expression type. Allowed expressions types include:
– Filter Condition
– Join Condition
– Split Condition
– Constant
– Data Generator Output Attribute
– Output Attribute in Expression
– Having Clause for Aggregation
– Update Target Condition
– Delete Target Condition
■ The tree items list which displays two tab cards:
– Inputs–contains a list of input attributes to the operator that you are
defining the expression in.
– Transformations–contains a list of the Oracle Transformation Library,
the Global Shared Library, and a Custom Transformation Library
available within the active module
■ The description field that displays relevant information about the selected
functions.
■ The expression field within which you build expressions. You create your
expressions by typing them manually into the Expression field. You can
also create them by dragging them from the predefined functions available
from the tree list into the Expression field. Or you may create them by
clicking keypad operators available below the Expression field.
■ A set of Operator buttons from which you can select accepted operators.
The available operators vary by the expression type you are building.
■ A drop-down list of available SQL clauses that are appropriate for the
active expression type.
■ The validate button which you use to validate the current transformation
expression in the expression builder. The validation return status will be
displayed in the message field located directly below the operator buttons.
Filtering Data
You can conditionally filter out rows from a row-set using the Filter operator. The
Filter operator filters data from a source to a target by placing a WHERE clause in the
code represented by the mapping. You connect the Filter operator to an operator
that is upstream in the Mapping, perform some filtering based on some condition
and pass a subset of rows to any down-stream operator that's connected to it.
The Filter operator can have only one INOUT attribute group. This group can be
connected to both a source and target row-set. It then produces a row-set that is a
filtered subset of the source row-set, based on a boolean filter condition expression.
The Filter operator contains the following property:
■ Filter Condition (operator level)–The boolean condition which determines
which rows will be passed on to the output row-set.
To filter data:
1. If you have not already done so, define a source operator as described in
"Selecting A Source Operator" on page 5-17.
2. Drop the Filter icon onto the Canvas.
3. Connect the source attributes appropriate for your mapping to the Filter
attribute group labeled INOUTGRP1.
4. Open the Filter Property Inspector by right-clicking the operator header and
selecting Operator Properties... from the popup menu.
5. Click the field to the right of the Filter Condition property and click the ...
button to open Expression Builder.
OWB returns the Expression Builder window.
6. Create the correct expression in Expression Builder.
For the example, create the expression shown in Figure 6–6 by double-clicking
on the appropriate inputs from the INPUTS tab, and using the appropriate
operator buttons. You may also type in the expression free form.
11. Examine the generated code for this map in the code viewer dialog box. You
will see the filter condition expression generated as a "WHERE" clause (for
set-based view mode). The filter input names in the original filter condition
have been replaced by actual column names from the source table, qualified by
the source table alias.
Ordering Data
You can produce a sorted row-set through the Sorter operator. The Sorter allows
you to specify on which input attributes the sorting is performed and whether the
sorting is performed in ascending or descending order.
The Sorter operator has one input/output attribute group. This group can be
connected from any output or input/output attribute group and to any target input
3. Drag a target operator from the Object Palette onto the Mapping Editor Canvas.
4. Draw a line from the input/output attribute group of the source operator to the
input/output attribute group INOUTGRP1 of the Mapping Sorter.
8. Select the attributes you want to sort and define whether they will ascend or
descend clicking the appropriate button.
9. Click OK.
Splitting Data
You can use the Splitter operator to split a single input row-set into several output
row-sets. The Splitter uses a boolean split condition as a filter to produce each
output row-set. Each output rowset will have a cardinality less than or equal to the
input cardinality. The effect of the splitter is similar to having several Filter
operators connected to a single upstream source.
The Splitter operator creates an output group called REMAINING_ROWS. If you
use this group, it will produce a row-set containing all input rows not included in
any of the other output groups.You may delete this output group if you want, but
you cannot edit it.
The Splitter Operator contains the following properties:
3. Drag a target operator from the Object Palette onto the Mapping Editor Canvas.
4. Drag a second target operator from the Object Palette onto the Mapping Editor
Canvas.
5. Drag a third target operator from the Object Palette onto the Mapping Editor
Canvas.
6. Connect the attribute group from INOUTGRP1 of the source to the INGRP1 of
the Splitter.
All output attributes are created automatically, and output attribute data types
will be automatically set to match the data type of the corresponding input
7. Open the Splitter Property Inspector by right-clicking a Group header.
8. Click the field to the right of the Split Condition property.
9. Click the ... button immediately to the right of the Split Condition property to
open Expression Builder.
10. Enter a Split Condition in the Expression Builder Editor.
14. Repeat the previous 5 steps except select the appropriate OUTGRP on the
Splitter.
15. Connect OUTGRP1on the Splitter to INOUTGRP1 in the first target.
16. Repeat the previous step except connect the appropriate OUTGRP on the
Splitter to the appropriate INOUTGRP on the targets.
17. Select Mapping > Generate > Mapping from the Mapping Editor menu.
OWB opens the Mapping Code Viewer.
18. Examine the generated code for this map in the code viewer dialog box. You
should see the Split Conditions in the WHERE clauses of the SELECT queries
for the insert DML (There will be a separate query for each target).
De-Duplicating Data
OWB enables you to remove duplicate data from a source to a target by placing a
DISTINCT clause in the select code represented by the mapping. You use the
Deduplicator to perform this operation.
To eliminate duplicate data:
1. Drag a source operator from the Object Palette onto the Mapping Editor
Canvas.
2. Drag a target operator from the Object Palette onto the Mapping Editor Canvas.
3. Drag the Deduplicator operator from the Object Palette onto the Mapping
Editor Canvas.
4. Map the attributes in the source operator to the input/output attribute group
INOUTGRP1 of the deduplicator operator.
5. Map the attributes in the input/output attribute group INOUTGRP1 of the
deduplicator operator to the attributes of the target operator.
Aggregating Data
The Aggregator performs data aggregations, such as SUM or AVG, and provides an
output rowset with aggregated data. Each Aggregator operator shares a GROUP BY
and HAVING clause, so each output parameter in the output parameter group has
the same cardinality. This operator delivers an aggregated row-set derived from the
input row-set; the number of rows in the output row-set is less than or equal to the
number of input rows.
The Aggregator operator has one input attribute group and one output attribute
group. The source row-set can be connected to input attribute group and the
aggregator operator produces the corresponding aggregated row-set in its output
attribute group.
The Aggregator operator contains the following properties:
■ Group By Clause (operator level)–This property defines how the incoming
row-set is grouped to return a single summary row for each group. This
consists of an ordered list of attributes in the input attribute group
specifying how this grouping is performed. All output attributes with no
aggregation function applied (that is Function in the Expression property
for those attributes is NONE ) is necessary to be included in this clause.
■ Having Clause (operator level)–This property is a boolean condition
restricting the groups of rows returned in the output attribute group to
those groups for which this condition is true. If this clause is not specified,
all the summary rows for all the groups will be returned in the output
attribute group. This clause can refer to any attributes or an expression
(possibly with aggregation functions) of the attributes in the input attribute
group.
■ Expression (attribute level)–This property defines the aggregation functions
to be performed on the attribute where this expression is specified. If no
aggregation function is necessary, NONE should be specified for the
Function of this property.
To add an aggregator to a mapping:
1. Drag a source operator from the Object Palette onto the Mapping Editor
Canvas.
2. Drag a target operator from the Object Palette onto the Mapping Editor Canvas.
3. Drag an Aggregator operator from the Object Palette onto the Mapping Editor
Canvas.
4. Map the attributes from the source operator appropriate for your situation to
the attribute group INGRP1 of the aggregator operator.
5. Right-click on the attribute group header OUTGRP1 of the aggregator operator
and select Add/Remove Attributes… from the popup menu.
OWB opens the Add/Remove Attributes dialog.
6. Add the appropriate attributes. See "Adding or Removing Operator Attribute
Groups" on page 5-33 for information on this dialog.
7. Right-click on an attribute in the Aggregator operator and select Attribute
Properties… from the popup menu.
OWB opens the Aggregator Properties Inspector.
8. Edit the Expression property by clicking the … button to the right of that
property.
OWB opens the Expression dialog. Select a function and a parameter from the
drop down lists.
9. Click OK.
10. Repeat steps 7-9 as appropriate for additional attributes on the Aggregator
operator.
11. Click the title bar of the aggregator operator in the canvas. The property
inspector will be refreshed with the properties for the operator the aggregator
operator.
12. Edit the property called Group By Clause by clicking the … button to the right
of that property.
OWB opens the Group By Clause window.
13. Verify that your properties appear in the list of GROUP BY parameters.
15. Edit the property called Having Clause by clicking the … button to the right of
that property.
OWB opens Expression Builder. Use Expression Builder to create a sum
expression—or example, sum(INGRP1.OR_TOTAL) > 10000.
16. Map the attributes you edited from the attribute group OUTGRP1 in the
aggregator operator to the attributes in the target.
Figure 6–25
Tip: You can have intervening operators between the data source
operator and the Joiner (such as an expression operator), but an arbitrarily
complex and non-performing SQL or PL/SQL statement may be generated.
Therefore, a Joiner should immediately follow the data source operators to
be joined in the mapping.
If the input row-sets are related by foreign key relationships in the repository, OWB
will use these foreign key relationships to form a default join condition. You can use
this default condition as it is or you can modify it. If the sources are not related by
foreign key relationships, then you must define a join condition.
The join condition property for any output parameter group can be left blank—a
blank condition will not generate a validation error in the expression builder.
However, by leaving the join condition blank, the Joiner operator brings in all of the
columns of the source it references despite of the number of columns actually being
mapped which can increase the overhead in the ETL process. Therefore, you may
want to create a complete join condition for the first input attribute group but leave
the rest blank. The advantage of doing it the first way is that an input attribute
group could be removed and the final join condition would still be correct.
You may define a join condition to relate columns that are not unique or foreign
keys in the source table. However, the performance of the generated query will be
severely degraded. For this case, it might be better to create an index on the desired
column in the source row-set before attempting to run the generated map.
The join condition may contain other relational operators. Again, it is best if the
related operand columns are both indexed in the sources. However, most real-life
applications would have no need for relational operators other than = .
The join condition may contain transform function calls, but if it does the
performance of the generated query may be severely degraded. For this case it
would be better to create a stage table with a column for the transformed column,
populate the stage table with another map, then join the stage table with the other
sources.ee Appendix F, "Performance Enhancements" for more information on the
value of staging tables.
The join condition may contain arithmetic operators to form a special join condition
(for example, LINES.PO_OR_ORDER_ID + 10 = ORD.ORDER_ID). However,
this will also degrade performance because all values from the source table have to
be read and transformed to find the joined rows for a given row. Therefore, it would
be better to create a stage table with the transformed data before joining. See
Appendix F, "Performance Enhancements" for more information on the value of
staging tables.
The join condition expression can not contain any aggregation functions (SUM, etc).
If a join condition expression contains aggregation functions, compile errors will
occur when deploying the generated code for the map.
You may add an unlimited number of input groups to the Joiner. However, only one
output group is allowed.
5. Connect the INOUTGRP1 attribute group from the first source to the INGRP1
group of the Joiner operator.
OWB automatically create all of the output attributes. The output attribute data
types are set to match the data type of their corresponding input data types.
6. Connect the INOUTGRP1 attribute group from the second source operator to
the INGRP2 group of the Joiner operator.
7. Right-click the title bar of the Joiner operator and select the Operator
Properties… from the popup menu.
8. Click the … button immediately to the right of the Join Condition property.
OWB opens the Expression Builder indicating the default join condition for
what you have mapped.
9. Click Validate.
OWB returns the results in the Validation Results window in Expression
Builder.
10. Click OK.
12. Select Mapping > Generate > Mapping… from the Mapping Editor menu.
OWB opens the Code Viewer dialog which displays the join condition in the
WHERE clause of the SELECT query for the insert DML.
Adding Sequences
A sequence operator provides numeric data which increments each time it is
referenced. The operator contains a display set named OUTGRP which contains two
parameters called CURRVAL and NEXTVAL and no inputs. You determine which
parameter to use as the output of the sequence operator.
You can generate a row-set of consecutively incremented values using the Sequence
operator. You can connect a Sequence operator to a target operator input or to the
inputs of many other types of down-stream operators. The Sequence operator is one
of the exceptions to the rule that all attributes of an input attribute group must be
connected to attributes from the same output group. You may combine the sequence
outputs with outputs from other up-stream operators .
You can bind a Sequence operator to a repository sequence in one of the repository
modules, but you must reconcile it to that object. The repository sequence must then
be generated and deployed before the map is deployed or the generated package
for the map will have errors.
Sequences are incremented even if rows are not selected. If you want a sequence to
start from the last number, then you should not run your SQL package in Set Based
or in Set Based With Failover operating modes. See Setting The Default Operating
Mode on page 7-28 for more information on configuring mode settings.
The Sequence operator contains the following property:
■ Bound Name (operator level)–The name of the physical sequence that will
be used in the generated code. If the sequence has been reconciled from a
repository component, the Bound Name will be equal to the physical name
of the repository sequence.
To add a Sequence to a mapping:
1. Drag a source operator from the Object Palette and drop it onto the Mapping
Editor canvas.
2. Drag a target operator from the Object Palette and drop it onto the Mapping
Editor canvas.
3. Drag the Sequence icon from the Object Palette and drop it onto the Mapping
Editor Canvas.
Builder returns the Add Sequence dialog where you can select one of the four
options:
■ If you select Create new repository sequence and bind, then select the
warehouse module where you want to the sequence to reside and click OK.
Builder returns the New Sequence Wizard. Follow the wizard steps to
create a new sequence.
■ If you select Import sequence into repository and bind, then select the
source module from where you are importing the table and click OK.
Builder returns the Database Link Information dialog. Click New DB Link
to establish connection with your source database and click OK. Builder
returns the Import Object Wizard.
■ If you choose Select from existing repository sequence and bind, you can
either type the prefix to search for a sequence or select from the displayed
list of sequences within the selected module and click OK.
4. Drag the source operator from the palette onto the map. .
5. Drag the sequence operator from the palette onto the map.
6. Connect the appropriate source attributes to the appropriate target operator
attributes.
7. Connect the sequence to the appropriate attribute in the target.
8. Select Mapping > Generate > Mapping… from the Module Editor menu.
OWB opens the Code Viewer dialog displaying the sequence in the SELECT list
for the insert DML.
External Processes are self-contained; you may not use an external process with
other mapping operators.
To add an External Process operator to a mapping:
1. Drag the External Process icon from the Object Palette and drop it onto the
Mapping Editor Canvas.
3. Click field .
4. Select an External Process from the pull down list to the right of the External
Process property
5. Select the map that contains the External process from the navigation tree in the
Warehouse Module Editor.
6. Click Configure.
OWB returns the Configuration Properties inspector.
7. Expand the Steps property and specify the process’ directory location and input
parameters or, in case of Pure Extract, the status file name.
If a record is rejected (that is, it has a format error or causes an Oracle error), the
generated sequence numbers are not reshuffled to mask this. For example, if four
rows are assigned sequence numbers 10, 12, 14, and 16 in a particular column, and
the row with 12 is rejected; the three rows inserted are numbered 10, 14, and 16, not
10, 12, 14. This allows the sequence of inserts to be preserved despite data errors.
When you correct the rejected data and reinsert it, you can manually set the
columns to agree with the sequence.
The Data Generator operator has only one output group. The Data Generator
operator has predefined attributes corresponding to Record Number, System Date,
and a typical Sequence. Modification of these attributes is not recommended but
you can create new attributes. You must ensure the value entered for the expression
is valid SQL*Loader syntax in the context used. There can be at most one Data
Generator operator for a given map. The Data Generator operator is only valid for
an SQL*Loader mapping.
The Data Generator contains the following properties:
■ Expression (common attribute property)–expression to use when this
attribute is mapped. It is the responsibility of the user to ensure this
expression contains valid SQL*Loader syntax for where the attribute is
used.
To add a Data Generator to a mapping:
1. Drag the Data Generator icon from the Object Palette and drop it onto the
Mapping Editor Canvas.
Adding Expressions
The expression operator enables you to write SQL expressions, each of which
defines a non-procedural algorithm for one output parameter of the operator. The
expression text can contain combinations of input parameter names, variable
names, and library functions. You use the Expression operator to transform the
column value data of rows within a row-set using SQL-type expressions, while
preserving the cardinality of the input row-set. To create these expressions, you
open the Attribute Property inspector for the output attribute and open Expression
Builder.
You may have only one input attribute group and one output attribute group in the
Expression operator, both of which are created automatically when you drop it on
the Mapping Editor canvas.
The output expressions for this operator can not contain any aggregation functions.
To use aggregation functions, use the Aggregator operator.
The Expression operator contains the following properties:
■ Data Type (attributes)–The data type of the attribute.
■ Precision (attributes–The precision of the attribute (used for numeric type
attributes only).
■ Scale (attributes)–The scale of the attribute (used for numeric type attributes
only).
■ Length (attributes–The length of the attributes (used for string-type attributes
only).
■ Expression (output attributes)–The text expression template for the output
attribute. For code generation, the actual source columns are substituted for the
input attribute names in the expression template.
To add an expression operator:
1. Drag source operator from the Object Palette and drop it onto the Mapping
Editor Canvas.
2. Drag a target operator from the Object Palette and drop it onto the Mapping
Editor Canvas.
3. Drag the Expression operator from the Object Palette and drop it onto the
Mapping Editor Canvas.
9. Click Validate. You should see a message in the Validation results window
reading Validation Successful!.
10. Click OK to close Expression Builder.
11. Close the attribute property editor.
12. Connect OUTPUT1 in the Expression output attribute to the appropriate target
attribute.
13. Select Mapping > Generate > Mapping… from the Mapping Editor main
menu.
OWB opens the Code Viewer window displaying the expression.
Adding Constants
You can define constants for use in the mapping through the constant operator.
These constants are initialized at the beginning of the execution of the mapping and
these values can be used as inputs to pre-mapping process, post-mapping process,
mapping output parameter and other operators in the data flow.
The constant operator can have only one output attribute group. This group can be
connected to any target input or input/output attribute group. If the constant
defined is of data type VARCHAR or VARCHAR2, its expression needs to be a valid
9. Click Validate. You should see a message in the Validation results window
reading Validation Successful!.
10. Click OK to close Expression Builder.
12. Connect OUTPUT1 in the Constant output attribute to the appropriate target
attribute.
13. Select Mapping > Generate > Mapping… from the Mapping Editor main
menu.
OWB opens the Code Viewer window displaying the constant.
Adding Transformations
You use the Transformation Operator to transform the column value data of rows
within a row-set using a PL/SQL function, while preserving the cardinality of the
input row-set.
The Transformation Operator must be bound to a function or procedure contained
by one of the modules in the repository. The inputs and outputs of the
Transformation Operator will correspond to the input and output parameters of the
bound repository function or procedure. Also, if the Transformation Operator is
bound to a function, a "result" output is added to the operator that corresponds to
the result of the function. The bound function or procedure must be generated and
deployed before the mapping can be deployed, unless the function or procedure
already exists in the repository.
When you place a transformation operator onto the Mapping Editor Canvas, a
selection dialog opens displaying a tree of function libraries, categories, functions
and procedures. You pick a given function or procedure from the list and the
operator appears on the Mapping Editor Canvas with the input and output
parameters predefined.
OWB provides a set of pre-defined PL/SQL library functions that already exist in
the installed run-time schema, any of which can be selected as a bound function
when dropping a Transformation Operator on a mapping. In addition, you may
choose a function or procedure from the Global Shared Library.
The Transformation operator contains the following properties:
■ Function Call (operator level, read-only)–This is the text template for the
function call that will be generated by the code generator for the function call,
with the operator attribute names listed as the calling parameters. For the actual
call, the operator attribute names will be replaced with the actual source or
target columns that are connected to the attributes.
■ Function Name (operator level, read-only)–The name of the function (or
procedure) to which this operator is bound.
■ Procedure (operator level, read-only)–A boolean value indicating, if true, that
the bound transform is a procedure rather than a function and as such, it gives
no returned value
■ Data Type (attributes, read-only)–Indicates the data type of the input, output, or
result parameter of the bound function which corresponds to the given
attribute.
■ Default Value (input attributes, read-only)–The default value (blank if none) for
the given attribute.
■ Optional Input (input attributes, read-only)–A boolean value indicating, if true,
that the given attribute is optional. If the attribute is optional, it does not need
to be connected in the mapping.
■ Function Return (output attributes, read-only)–A boolean value indicating, if
true, that the given output attribute is the result attribute for the function. The
result attribute is normally named result, but this property exists to avoid
confusion in case there is another output named result, or the user changes the
name of the result output.
To add a transformation operator:
1. Drag a source operator from the Object Palette onto the Mapping Editor canvas.
2. Drag a target operator from the Object Palette onto the Mapping Editor canvas.
3. Drag a Transformation operator from the Object Palette onto the Mapping
Editor canvas.
4. Select one of the three options by clicking it. See "Adding Sequences" on
page 6-30 for information about each option.
■ Create a new transformation repository and bind
■ Import existing transformation into repository and bind
■ Select from existing repository transformation and bind
This selection contains a search text box and a directory tree for all the
transforms stored in the OWB repository.
5. Click on the appropriate node to locate a Transformation function or procedure.
6. Double-click on a transformation to select it.
OWB returns to the Mapping Editor displaying a transformation operator
11. Select Mapping > Generate > Mapping… from the Mapping Editor main
menu.
OWB opens the Code Viewer window displaying the transformation.
most one mapping input parameter operator and one mapping output parameter in
a given mapping.
The default value for the mapping parameter for code generation of the PL/SQL
"main" function will appear in the DEFAULT clause following the function
parameter declarations in the generated "main function definition in the PL/SQL
package. For example, if a mapping parameter named param1 with data type
VARCHAR2 is defined, with a default value of ’HELLO’, the generated main
function in the PL/SQL package will appear as:
... param1 IN VARCHAR2 DEFAULT ’HELLO’ ...
Or, if a mapping parameter output named "param1" with data type VARCHAR2 is
defined the generated main function in the PL/SQL package will appear as:
... param1 IN VARCHAR2 ...
The Mapping Input operator contains the following properties:
■ Default Value (attribute level–The character string value which, if specified, will
be place in the generated code as the default value for the specified attribute: i.e.
if the value entered is ‘1-JUN-2001’ then the generated code would contain …
DEFAULT ‘1-JUN-2001’
■ Data Type (common attribute level)–Specifies the data type for this input
parameter
The following instructions assume you have already mapped a source operator to a
target operator.
To add an input parameter to a mapping:
1. Drag a Mapping Input operator from the Object Palette onto the Mapping
Editor Canvas.
2. Add an attribute appropriate for your mapping to the Mapping Input operator:
■ Right-click the MAP_INPUT attribute group.
3. Change the Data Type for the new attribute as appropriate for your application
by using the attribute properties Inspector:
■ Right-click the new property.
■ Select Attribute Properties... from the popup menu.
■ Select a new property from the pulldown list.
5. If necessary, edit target attribute’s condition to match the new attribute in the
Input Mapping operator.
6. Select Mapping > Generate > Mapping… from the Mapping Editor main
menu.
OWB opens the Code Viewer window displaying the main procedure entry
point to the mapping containing the parameter.
defined, with a default value of ’HELLO’, the generated main function in the
PL/SQL package will appear as:
... param1 OUT VARCHAR2 DEFAULT ’HELLO’ ...
Or, if a mapping parameter output named param1 with data type VARCHAR2 is
defined the generated main function in the PL/SQL package will appear as:
... param1 OUT VARCHAR2 ...
The Mapping Output Parameter operator contains the following properties:
■ Data Type (common attribute level)–Specifies the data type for this output
parameter
■ Bound Name (common attribute level)–Specifies the actual physical name for
this output parameter
The following instructions assume you have already created a mapping.
To add an Output parameter to a mapping:
1. Drag a Mapping Output operator from the Object Palette onto the Mapping
Editor Canvas.
3. Change the data type of the new attribute to as appropriate for your application
by using the Attribute Properties inspector.
■ Right-click the new property.
■ Select Attribute Properties... from the popup menu.
■ Select a new property from the pulldown list.
5. Select Mapping > Generate > Mapping… from the Mapping Editor main
menu.
OWB opens the Code Viewer window displaying the main procedure exit point
to the mapping containing the parameter.
Notes:
■ Only components that have a "dummy" source can be input to Triggers
(both pre & post). This means, Constants, and Mapping Input
Parameters can be input to both Pre & Post Triggers.
■ Mapping Input Parameters work like Constants, they can be mapped
into anything that a constant could.
■ Mapping Output Parameters cannot be mapped TO anything, but can
be mapped FROM either Constants, Mapping Input Parameters, or the
Output of a Pre or Post Map Trigger (including the return value).
■ Violation of these rules is reported at generation time.
5. Select Mapping > Generate > Mapping… from the Mapping Editor main
menu.
OWB opens the Code Viewer window displaying the pre-mapping process.
Notes:
■ Only components that have a "dummy" source can be input to Triggers
(both pre & post). This means, Constants, and Mapping Input
Parameters can be input to both Pre & Post Triggers.
■ Mapping Input Parameters work like Constants, they can be mapped
into anything that a constant could.
■ Mapping Output Parameters cannot be mapped TO anything, but can
be mapped FROM either Constants, Mapping Input Parameters, or the
Output of a Pre or Post Map Trigger (including the return value).
■ Violation of these rules is reported at generation time.
Figure 6–69 The Add Transformation Window Used For Selecting a Post-Process
Mapping Operator
5. Select Mapping > Generate > Mapping… from the Mapping Editor main
menu.
OWB opens the Code Viewer window displaying the post-mapping process.
The previous two chapters described how to define a mapping, how to add
operators, transformations, and external processes, how to edit a mapping, and how
a mapping generates the code necessary to load your data warehouse. This chapter
describes the tasks necessary to configure the physical properties of a mapping, and
how to manage code generation. It also provides an in depth discussion of
reconciling mapping operators with repository objects, and mapping validation.
This chapter contains the following sections:
■ Reconciling Mapping Operators With Repository Objects
■ Configuring The Mapping For Deployment
■ Defining Code Generation Strategies For The Mapping
■ Setting A SQL*Loader Step
■ Setting An External Process Step
■ Taking The Next Step
Reconciling Mappings
Mapping operators are independent from the repository objects to which they refer.
The process of linking a mapping operator to a repository object is known as
binding. Binding a mapping operator links it to a repository object both by unique
object identifier and by physical name at the object and attribute levels. If you look
at the Bound Name property of the mapping operator or the Bound Name property
of any of its attributes you will see that these are the physical names of the
corresponding repository object and its attributes. Additionally you can identify the
repository object to which a mapping operator is bound by looking at the tool tip
for the mapping operator; the part in parentheses gives the qualified physical name
of the repository object. The logical names used in the mapping for both mapping
operators and attributes do not need to be the same as the bound names. If you set
your Project Preferences to Logical name mode without propagation to physical
names or if you define your mapping operator and attribute names in the Mapping
Editor then the logical names will generally be different. See
Within the Mapping Editor there are several methods of binding a mapping
operator to a repository object. Some of these methods relate to the original creation
of the mapping operator and some relate to reconciliation—inbound or
outbound—after either the mapping operator or the repository object has been
changed. You reconcile mapping operator attributes with repository attributes using
the Inbound Reconciliation dialog. The Inbound Reconcile Operator Window
sort of automatic name fixing. Physical names (Bound Name ) edited inside the
mapping will be in upper case.
Logical names are used as the displayed identifier of all components, groups,
attributes, and display sets in the mapping environment. Logical names are always
case sensitive. Multiple mapping objects with the same logical name may be placed
on the map as long as their internal constraints allow it. Mapping objects that can be
reconciled must have unique logical names. In the event that a new reconcilable
mapping object would end up with the same name as an existing mapping object, a
new unique name will be created. For example, if creating a mapping table
Employee is attempted from two different installed modules, the automatic
correction algorithm described later will be used to create an alternate logical name
for the second table. Group, attribute, and display set names must be unique within
the containing element. For manual processes (create/rename) the user will be
required to enter a correct name. For batch processes (reconciliation/system
creation/copy and map), this may mean that the automatic correction algorithm
described in the detail section will be used to create an alternate logical name.
Physical names (or Bound Names) are used by the generation framework to
produce the mapping code. Physical names will be case preserved during the
reconciliation process, but will be in upper case if created or modified in the
mapping environment.This is specifically consistent with the behavior if the
integrator framework, i.e., import preserves case, edit does not. Multiple mapping
objects with the same physical name may be placed on the map as long as their
internal constraints allow it. [See the individual operator descriptions later in this
chapter.] Group, attribute, and display set names must be unique within the
containing element. For "copy and map", the automatic algorithm described later
will be used to create a compliant physical name. For all other cases, this may mean
that namespace validation will fail and the user must take corrective action.
The name correction algorithm (when enabled) is:
1. Truncate the name to ensure the total length of the proposed name and any
suffix does not exceed the maximum allowed length.
2. (Physical) Replace illegal characters by underscore.
3. (Physical) Trim leading & trailing spaces.
4. (Physical) Prefix proposed name with A if 1st character is illegal.
5. Add_n to the proposed name, where n is the first number in ascending
order that would make the resulting name unique in its domain.
6. Repeat the first steps until both criteria are met.
operator are added as new attributes at the end of the mapping operator. Mapping
lines for matched attributes are preserved.
Use Match by object identifier if you want to keep your mapping operators in step
with changes to the bound repository object and you want to maintain separate
logical names for your mapping operator attributes regardless of changes to
physical names in the repository object.
Match by object identifier is not available if you want to reconcile to a different
repository object and this check box is grayed out when you select a different object
in the tree. In this case the following two strategies are available.
be removed from the canvas.) Attributes of the selected repository object that could
not be matched with those of the mapping operator are added as new attributes to
the mapping operator. Mapping lines for matched attributes are preserved.
Bound names are read-only after you have bound a mapping operator to a
repository object so it is not possible to manipulate these to achieve a different
match result in inbound reconciliation.
Use Match by physical name as a strategy for reconciliation with the current bound
repository object if you want to maintain equivalence of physical names and logical
names in your mapping operators. This aids clarity when comparing mappings
with generated code but has the limitations associated with physical names. Note
that use of this reconciliation strategy will treat the rename of a column in the
repository object as if the column was deleted and a new column inserted.
Therefore mapping lines for renamed attributes will be removed.
Use Match by physical name as a strategy for inbound reconciliation with a
different repository object:
■ if there have been any deletions or insertions of columns / fields /
parameters in the repository object which would change the structure of the
mapping operator. or
■ if you want to maintain physical names in your mapping operators and you
use the same names consistently across objects
Matching By Position
This strategy matches mapping operator attributes with columns / fields /
parameters of the selected repository object by position; that is the first attribute of
the mapping operator is reconciled with the first attribute of the repository object,
the second with the second, and so on. If the mapping operator has more attributes
than the repository object then the excess attributes are removed from the mapping
operator (When an attribute is removed, any incoming or outgoing mapping line
connected to that attribute will be removed from the canvas ). If the selected
repository object has more attributes than the mapping operator then these are
added as new attributes at the end of the mapping operator. Mapping lines for
existing attributes in the mapping operator are preserved.
As a strategy for inbound reconciliation with the current bound repository object
Match by position behaves in a similar way to Match by object identifier under
normal circumstances. Only if the repository object has undergone a lot of changes
involving deletion and recreation of existing attributes will there be a discernible
difference. Your choice will depend on which is more important to you:
■ preserving the mapping operator’s relationship with other mapping
operators—use Match by object identifier, or
■ keeping the mapping operator structure in line with the repository object
structure—use Match by position.
Use Match by position as a strategy for reconciliation with a different repository
object if you want to preserve the logical names of your mapping operator
attributes. This strategy is most effective when the only changes to the repository
object are the addition of extra columns / fields / parameters at the end of the
object. Otherwise you may need to perform some editing of the mapping to
re-connect mapping lines to the relevant attributes.
When none of the "match by" checkboxes are checked, the reconcile process will
replace the attributes of the operator with an exact copy of the column/fields of the
selected repository object.
When you select multiple checkboxes, the following priority order in types of
matching will be used
1. Match by object identifier
2. Match by position,
3. Match by name.
Reconciliation is supported for the following operator types:
Table 7–1 The Operator Objects Reconciled With Repository Objects
Operator Object Repository Object
Mapping Tables Table, Views, Materialized Views, Sequences, Files, Dimensions
and Facts.
Mapping Views Table, Views, Materialized Views, Sequences, Files, Dimensions
and Facts.
Mapping Materialized Table, Views, Materialized Views, Sequences, Files, Dimensions
Views and Facts.
Mapping Sequences Table, Views, Materialized Views, Sequences, Files, Dimensions
and Facts.
Mapping Flat Files Table, Views, Materialized Views, Sequences, Files, Dimensions
and Facts.
Mapping Dimensions Table, Views, Materialized Views, Sequences, Files, Dimensions
and Facts.
Mapping Facts Table, Views, Materialized Views, Sequences, Files, Dimensions
and Facts.
Mapping Transformations Transformations only (not for OWB 3i).
the repository whose structure (columns, data types, etc.) are derived from the
mapping operator.
■ Automatically create a new object in the repository that matches the
structure of the Mapping Operator.
■ Propagate changes in the attributes of a Mapping Operator to the repository
object from which it was originally derived.
■ Copy and map the attributes of one Operator with a second Operator and
propagate these changes to the repository object associated with the second
Operator.
■ Perform a create-like function to create a new Operator in the Mapping
Editor and a new associated object in the repository.
To start Outbound Reconcile, you select an eligible operator on the canvas and
■ Select Edit > Reconcile Outbound menu item from the menu bar or
■ Right mouse click on the header of the Operator and select Reconcile
Outbound menu item from the popup menu.
OWB will then launch the Outbound Reconcile dialog box.
You can use the outbound reconcile feature to create new objects or update existing
objects in the repository that are derived from a mapping operator. After you have
created a mapping operator, you can copy and map its attributes into a new
operator. You can then create a new corresponding repository object that inherits
the same properties.
Select an operator on the mapping canvas and choose Edit > Reconcile Outbound
and
1. Define a mapping flat file operator and its attributes on the Mapping Editor
Canvas.
2. Create a new unbound mapping table operator with no attributes.
3. Copy and map all the attributes of the mapping flat file Operator to the
Mapping Table. You can do this by
■ left-clicking and dragging the mapping lines across to the new operator, or
■ right-clicking the Operator Group and selecting Link INOUTGRP1 to >
<Operator name> > INOUTGRP1.
To create a new table in the repository associated with this Mapping Table,
1. select the Mapping Table and choose Edit > Reconcile Outbound.
2. Select Create a new table and its location in the repository in the Outbound
Reconcile dialog
3. Click OK.
A replica table with identical properties and attributes as the Mapping Table is
created in the repository.
The following mapping objects contain attribute properties that may require
changing prior to loading:
■ Tables
■ Facts
■ Dimensions
■ Views
■ Materialized Views
The following settings are useful whenever a surrogate key (for instance, a
Sequence operator) is used on a target in a map.
Update: Operation
When a matching row is located and an update operation is performed on the
target, different computations can be done between the data of the source attribute
and the target attribute on the matched row before the resulting value is stored onto
the target.
You can specify one of the following target conditions:
= target:= source
+= target:= source + target
-= target:= target - source
=- target:= source - target
||= target:= target||source
After you’ve completed these settings, you are ready to set the physical properties
of the mapping.
OWB returns the Configuration Properties Inspector. From here, you select the
property that you want to set.
Figure 7–7 The Configure Properties Inspector Showing The Database Link List
The Mapping is now associated to the database link for the module you selected.
Figure 7–8 The Mapping Properties Inspector Showing Partition Exchange Loading
list as that of the constraint. This implies that each primary or unique key
constraint must be backed by a user-defined unique local index. The index that
supports this option was created in step 2.
Note: Note, where applicable the system may generate code for
multiple strategies. For example, if a step can be implemented in
set-based and row-based operating mode, the code viewer will
include both modes.
You use this setting for the operating mode used for running the generated code
package.
Table 7–4 The Default Operating Modes
Setting Description
Set based Execute set based (batch) processing - uses SQL as the
implementation language.
Row based Execute row based processing - uses PL/SQL as the
implementation language.
Row based (target only) Execute row based processing - uses PL/SQL as the
implementation language for the data target.
Set based fail over to row Execute set based (batch) processing, but switch to row based if
based error occurs.
Set based fail over to row Execute set based (batch) processing, but switch to row based
based (target only) (target only) if error occurs
Set Based
The Set Based option enables OWB to insert all of the data in a single SQL
command. This option depends upon a correctly designed mapping. This strategy
starts from the beginning of the mapping and assigns SQL as the implementation
language to each operator unless an operator does not support SQL as the
implementation language. All the operators from that point forward will have
PL/SQL as the implementation language. This strategy is very similar to Batch but
can handle procedures in mapping as well.
Row Based
This strategy starts from the beginning of the mapping and assigns SQL as the
implementation language to each operator up till a point that all the operators from
that point forward supports PL/SQL as the implementation language. You use this
strategy to give maximal amount of auditing or debugging information to the user
since it is likely that the expressions or transforms in the mapping will be
implemented in PL/SQL.
errors when loading into the targets. Examples are foreign key constraint violation
when loading fact with missing primary key at the dimension, or incompatible
implicit data type conversion due to the limited length, scale or precision at the data
targets.
Next, there are two locations where you have the opportunity to supply physical
configuration information to affect the generated SQL*Loader output. One is the
configuration of the physical properties for a load operator. The other is by setting
the values in the physical step configuration. Each will be described below.
indexes listed in the SORTED INDEXES clause must be created before you start
the direct path load.
■ SINGLEROW is intended for use during a direct path load with APPEND on
systems with limited memory, or when loading a small number of records into a
large table. This option inserts each index entry directly into the index, one
record at a time. By default, SQL*Loader does not use SINGLEROW to append
records to a table. Instead, index entries are put into a separate, temporary
storage area and merged with the original index at the end of the load. This
method achieves better performance and produces an optimal index, but it
requires extra storage space. During the merge, the original index, the new
index, and the space for new entries all simultaneously occupy storage space.
With the SINGLEROW option, storage space is not required for new index
entries or for a new index. The resulting index may not be as optimal as a
freshly sorted one, but it takes less space to produce. It also takes more time
because additional UNDO information is generated for each index insert. This
option is suggested for use when either of the following situations exists:
■ Available storage is limited
■ The number of records to be loaded is small compared to the size of the
table (a ratio of 1:20, or less, is recommended)
■ TRAILING NULLCOLS tells SQL*Loader to treat any relatively positioned
columns that are not present in the record as null columns.
■ RECORDS TO SKIP invokes the SKIP command in SQL*Loader. SKIP specifies
the number of logical records from the beginning of the file that should not be
loaded. By default, no records are skipped. This parameter continues loads that
have been interrupted for some reason. It is used for all conventional loads, for
single-table direct loads, and for multiple-table direct loads when the same
number of records were loaded into each table. It is not used for multiple-table
direct loads when a different number of records were loaded into each table.
■ FILES specifies the names of the export files to import. The default extension is
.dmp. Because Export supports multiple export files (see the following
description of the FILESIZE parameter), you may need to specify multiple
filenames to be imported. You need not be the user who exported the export
files; however, you must have read access to the files. If you were not the
exporter of the export files, you must also have the IMP_FULL_DATABASE role
granted to you.
■ Records To Load–If the value specified is greater than 0, then the ‘LOAD =
n’ option will be generated. This value specifies the maximum number of
records to load. If a value is not specified all of the records will be loaded.
■ Rows Per Commit–If the value specified is greater than 0, then the ‘ROWS
= n’ option will be generated. For direct path loads, the value identifies the
number of rows to read from the source before a data save is done. For
conventional path loads, the value specifies the number of rows in the bind
array.
■ Bind Size–If the value specified is greater than 0, then the ‘BINDSIZE = n’
option will be generated. The value indicates the maximum size in bytes of
the bind array.
■ Read Size–If the value specified is greater than 0, then the ‘READSIZE = n’
option will be generated. The value is used to specify the size of the read
buffer.
■ Read Buffers–If the value specified is greater than 0, then the
‘READBUFFERS n’ clause will be generated. READBUFFERS specifies the
number of buffers to use during a direct path load. Do not specify a value
for READBUFFERS unless it becomes necessary, as indicated by ORA-2374.
■ File–If this parameter is set to a non-blank value, then the ‘FILE=’ option
will be generated.
■ Preserve Blanks–If this parameter is set to the value of true, then the
‘PRESERVE BLANKS’ clause will be generated. PRESERVE BLANKS
retains leading whitespace when optional enclosure delimiters are not
present. It also leaves trailing whitespace intact when fields are specified
with a predetermined size.
Parameters Affecting the INFILE clause(s):
The Data Files configuration parameter allows you to specify the characteristics
of the physical files to be loaded. Using this section you have the ability to
specify the name of the file to loaded, the bad file name, discard file name, and
the maximum number of discards allowed for each of the files to be loaded.
The initial values for these parameters will be set from the properties of the flat
file used in the mapping.
■ Data File Name–The full physical filename of a data file to be loaded. The
value entered will be placed in the ‘INFILE’ clause. You should enter the
complete path name for the file in the syntax of the operating system on
which the SQL*Loader script will be deployed. Note: the value specified
will be enclosed in single quotes in the generated code.
■ Bad File Name–The full physical filename of a bad file that SQL*Loader
will create to store records that cause errors during insert or are improperly
formatted. The value entered will be placed in the ‘BADFILE’ clause. You
should enter the complete path name for the file in the syntax of the
operating system on which the SQL*Loader script will be deployed. Note:
the value specified will be enclosed in single quotes in the generated code.
■ Discard File Name–The full physical filename of a discard that SQL*Loader
will create to store records that are neither inserted into a table nor rejected.
The value entered will be placed in the ‘DISCARDFILE’ clause. You should
enter the complete path name for the file in the syntax of the operating
system on which the SQL*Loader script will be deployed. Note: the value
specified will be enclosed in single quotes in the generated code.
■ Discard Max–The value entered, if greater than 0, will be used to generate
the ‘DISCARD n’ clause. It specifies the number of discards that will
terminate the load.
Only the following operators support generation of SQL*Loader:
Extract Operators:
■ Mapping File
■ Data Generator
Transformation Operators:
■ Filter
■ Expression
■ Transformation
Load Operators:
■ Mapping Table
■ Mapping View
■ Mapping Dimension
■ Mapping Fact
Strategy:
Oracle Warehouse Builder will examine each operator in the mapping to determine
if it supports SQL*Loader generation. Only if all of the operators support
SQL*Loader generation will SQL*Loader be a valid generation
In order to configure your data warehouse you must use the Configuration
Properties inspector. The Properties inspectors are specific to the type of object that
is being configured. Make sure you go through and configure each object you are
planning to deploy. The Properties inspectors allow you to look at the current
parameter settings and modify them according to your needs.
Depending on the parameter, you can either select an option from a drop-down
list, or type in a value. Use the parameter descriptions starting on page 8-7 to
help define your parameters. The descriptions are separated into objects and go
in the order that they display in the Warehouse Module Editor.
2. Choose the object you want to create and click in the space to the right of the
object’s name.
The ... button appears. This button allows you to add and delete objects.
4. Type in the name of the object you want to create and click Add. You can
continue on adding new objects by typing in new names and clicking Add.
When you are done click OK.
5. Expand the object type name to display the new object.
6. Expand the new object name and categories to display the new object’s
configuration parameters.
7. Choose the parameter you want to configure and click in the space to the right
of the parameter’s name to be able to edit the parameter value.
Depending on the parameter, you can either select an option from a drop-down
list, or type in a value. Use the parameter descriptions starting on page 8-7 to
help define your parameters. The descriptions are separated into objects and go
in the order that they display in the Warehouse Module Editor.
Database Links
Target schemas pull data from database sources using PL/SQL packages, and these
packages rely on database links to connect with the sources. Thus, a definition for a
database link must be created, configured, and deployed for each database source.
The link is deployed in the target schema.
Each time you create a mapping that pulls data from a database source, OWB
verifies that a definition for the required database link exists. If the definition does
not exist, OWB creates one from the connection information stored in mapping’s
source module. Thus, the default parameter values for a database link correspond
with the connection information in a source module.
When you deploy a physical instance, you must verify that the database links
generated by OWB point to the correct sources. For example, if a test application
system was used to develop the logical warehouse but the physical instances use
real data stored in production systems, then you must reconfigure the definitions to
reflect this change.
OWB stores definitions for database links in the warehouse module that pulls the
data but are visible in the Properties inspector.
You can specify the host machine using and SQL*Net connect string or provide the
host name, port, and the ID of the database instance.
Note: If your source and target tables are in the same instance,
you can choose to link directly to the schema. You set this up in the
mapping configuration. This will improve performance.
When the source module references an Oracle Designer repository,
you must configure the database link so it points to the actual
database and not the Designer repository.
Generation Preferences
This category defines preferences for the generated scripts. The End of Line
parameter that you set is dependent up on the platform to which you are deploying
your warehouse. For example, if you are deploying to a UNIX platform, use \n; and
if you are deploying to an NT platform, use \r\n.
Identification
The Top Directory parameter specifies the location where OWB stores generated
scripts. The value for the parameter must terminate with appropriate file separator
for the OS that OWB client is running on, on NT this would be the "\", and on
UNIX this would be the "/" (backslash character). The directory contains several
subdirectories which are configured in the Generation Target Directories category,
and it resides on or must be mapped directly to the machine that hosts the target
warehouse.
Configuring Dimensions
OWB always generates two scripts for a dimension: one to create the dimension
object and the other to create the underlying table. Additional scripts are generated
when indexes are defined on the dimension table, or when the definition was
generated by the Time Dimension Wizard. In the latter case, OWB generates an
insert statement that loads the dimension. The configuration parameters for a
dimension specify how these scripts are generated and whether the dimension is
deployed.
To configure a Dimension:
1. Open the Warehouse Module Editor, select the Dimension and select Edit >
Configure....
For additional information on the package OWB uses in the analyze script, see the
Oracle8i Designing and Tuning and Performance and PL/SQL User’s Guide and Reference
guides.
Partition Parameters
When you partition a table, you specify a partition key and method (Hash or
Range). The Partition Parameters apply when you create hash partitions. For more
information see "Partitions" on page 8-21.
Storage Space
A dimension table can reside in one or more tablespaces. Use the Tablespace
parameter to specify the name of each tablespace.
Generation Options
This category contains parameters that determine whether to generate scripts that
create a dimension object and its underlying table.
Identification
The Top Directory parameter specifies the location where OWB stores generated
scripts. The value for the parameter must terminate with appropriate file separator
for the OS that OWB client is running on, on NT this would be the "\", and on
UNIX this would be the "/" (backslash character). The directory contains several
subdirectories which are configured in the Generation Target Directories category,
and it resides on or must be mapped directly to the machine that hosts the target
warehouse.
Configuring Facts
To configure a Fact:
1. Open the Warehouse Module Editor, select the Fact and select Edit >
Configure....
For additional information on the package OWB uses in the analyze script, see the
Oracle8i Designing and Tuning and Performance and PL/SQL User’s Guide and Reference
guides.
Partition Parameters
When you partition a table, you specify a partition key and method (Hash or
Range). The Partition Parameters apply when you create hash partitions. For more
information see "Partitions" on page 8-21.
Storage Space
A fact table can reside in one or more tablespaces. Use the Tablespace parameter to
specify the name of each tablespace. A fact can also be partitioned.
Identification
The Top Directory parameter specifies the location where OWB stores generated
scripts. The value for the parameter must terminate with appropriate file separator
for the OS that OWB client is running on, on NT this would be the "\", and on
UNIX this would be the "/" (backslash character). The directory contains several
subdirectories which are configured in the Generation Target Directories category,
and it resides on or must be mapped directly to the machine that hosts the target
warehouse.
Usage Notes:
■ OWB does not generate code for a view if its query text is not included
in its Properties inspector nor if it has no columns defined.
■ OWB generates a Create Materialized View statement to deploy the
view even if its syntax is invalid: OWB does not check the syntax of
the select statement used to define a view.
Configuring Sequences
OWB generates a script for each sequence object. Each sequence object has a start
and increment parameter. Both parameters are numeric.
To configure a Sequence:
1. Open the Warehouse Module Editor, select the Sequence and select Edit >
Configure....
Configuring Tables
OWB generates multiple scripts to create a table depending on how the table is
created. One creates the table and there are separate scripts for each constraint that
is defined on the table, there is also an ANALYZE TABLE.. script generated.
Additional scripts are generated when indexes are defined on the table.
To configure a Table:
1. Open the Warehouse Module Editor, select the Table and select Edit >
Configure....
The Configuration Properties inspector displays.
Note: Indexes, and Partitions are purely physical objects. They are
not created during the logical modeling. They must be created in
the Configuration Properties inspector before you can configure
their parameters. See "Configuring New Physical Objects" on
page 8-4 for more information.
Indexes
Indexes are created on tables to speed up query processing. They are often created
on large materialized views for the same reason. You can create definitions for
single and multiple column indexes. After you create a definition for an index, you
can then generate either a BITMAP, UNIQUE, or a non-specific index.
Bitmap indexes are created on a fact table’s foreign key reference columns to take
advantage of the Oracle8i Star Transformation algorithm. Composite indexes are
created on a subset of a table’s foreign key reference columns. This more
application-specific index is created to take advantage of the Oracle8i star
optimization algorithms and works well when user queries mostly constrain a
subset of a fact table’s dimensions.
For a complete discussion of indexing strategies, see the Oracle8i Data Warehousing
and Oracle8i Designing and Tuning for Performance Release 3 (8.1.7 or 9i) guides.
Partitions
Partitions are created on fact tables to improve query and load performance and to
simplify the management of physical storage. Transportable tablespaces are often
introduced for performance reasons and to transport data across Oracle8i databases.
A transportable tablespace is the fastest means to move a large volume of data
between two Oracle8i databases. Dimension tables and materialized views also
occupy storage space and are often candidates for intelligent partitioning.
You can create and configure definitions for partitions directly from the
Configuration Properties inspector. A table can be partitioned using hash, range
partitions, or a combination of range and hash partitions.
Hash Partitions To create a hash partition, specify a hash key, number of partitions,
and tablespace names. Oracle partitions the storage space and stores rows according
to a hash algorithm.
Range Partitions To create a set of range partition, you specify a range key, names for
the partitions, and a set of tablespaces. Oracle8i then stores rows in a partition
according to the specified ranges.
Range with Hash SubPartitions You can create a set of range partitions that have
hashed subpartitions. For this case, create a range partition key, a set of partitions,
and then create a hash partition key to specify the number of logical partitions.
Configuring Views
OWB generates a script for each view defined in a warehouse module. You can
configure whether to deploy specific views or not.
To configure a View:
1. Open the Warehouse Module Editor, select the View and select Edit >
Configure....
Usage Notes:
■ OWB does not generate code for a view if its query text is not included
in its Properties inspector nor if it has no columns defined.
■ OWB generates a Create View statement to deploy the view even if its
syntax is invalid: OWB does not check the syntax of the select
statement used to define a view.
Validating Definitions
After you configure a set of definitions for a physical instance, you need to validate
the set before you generate and deploy objects and scripts to a physical instance.
This section describes why validation is necessary and how to validate a selected set
of definitions.
Valid Definition
A definition is Valid if the validation process returns no Error codes. The definition
can include one or more Warning codes.
Invalid Definition
A definition is Invalid if the validation process returns at least one Error code. The
definition can also include one or more Warning codes.
The definitions for the following objects are all invalid because their definitions
contain at least one error code.
There are two panes in this window: Selected Objects and Validation Messages.
Selected Objects
This part of the window lists summary information for each object selected for
validation. The summary information includes:
■ Names of the objects selected for the validation
■ Date and time of the last validation
■ Status: Valid or Invalid
■ Date and time when the object was last updated.
■ Edit: This allows you to go directly into an Editor in OWB and edit the
object you have highlighted. For example, if you have a table highlighted
and you click Edit, the Table Editor opens with the highlighted table
displayed.
Generating Scripts
Once you have a validated a set of definitions for a configured physical instance,
you can generate the scripts required to create and populate the instance. During
this phase, OWB generates scripts for the selected warehouse module.
OWB generates several kinds of scripts for a target warehouse:
■ DDL scripts to create or drop database objects
■ SQL*Loader control files to extract and transport data from file sources
■ TCL scripts to schedule and manage jobs (registered with Enterprise Manager)
When you generate objects, it is important to note that a single script is generated
for each physical object you want to create. For example, there is one script for each
index you are creating.
This can be extremely useful if you need to re-deploy a single object at a later time.
This allows you to not have to invest the resources into deploying the entire
warehouse all over again. The following discussion summarizes the actual scripts
generated for each object in the warehouse module.
To generate scripts for a set of objects in a warehouse module:
1. Open the module and select a set of warehouse objects.
As with validation, you can select an individual object, a set of objects, or all the
objects in the module.
2. Select Module→Generate.
Database Links
A data warehouse pulls data from its database sources using database links. The
mechanism is straightforward:
■ OWB generates a script for a database link to the source database.
■ The database link is deployed in the target schema.
■ The PL/SQL scripts that pull data from a source database reference the source
tables using the deployed synonyms.
For example, OWB generates the following script to create a database link to the
GCCAPPS source.
ALTER SESSION ENABLE PARALLEL DDL;
CREATE DATABASE LINK GCCAPPS
CONNECT TO gccapps IDENTIFIED BY manager
USING ’gccnc’;
This database link is deployed to the physical instance by executing the script.
Dimensions
OWB can generate multiple ddl scripts for each dimension depending on whether
indexes are configured. The scripts can include a ddl script for:
■ The underlying table and its configured partitions
■ The hierarchies and levels defined on the table.
■ The indexes and index partitions configured for the table.
After generating the ddl, OWB returns the Generation Results window.
The Generated Results window contains a list of scripts that create three different
kinds of objects for the Days dimension:
■ A Table
■ A Dimension
■ An Index
You can view any of the generated scripts by selecting the dimension’s name and
then clicking the View button. The example below illustrates the code generated to
add hierarchies onto an existing table:
ALTER SESSION ENABLE PARALLEL DDL;
CREATE FORCE DIMENSION customers_DIM
LEVEL customer IS CUSTOMERS.cs_cust_WH
LEVEL account IS CUSTOMERS.at_account_ID
LEVEL segment IS CUSTOMERS.sg_segment_ID
HIERARCHY customer_sums (
customer CHILD OF account CHILD OF segment )
ATTRIBUTE customer DETERMINES (cs_loctype,cs_ship_to_num)
ATTRIBUTE account DETERMINES (at_account_desc)
ATTRIBUTE segment DETERMINES (sg_segment_desc);
After generating the ddl, OWB returns the Generated Results window. You can view
the generated code and deploy the materialized view from this window.
If the view you are generating is part of a mapping, OWB does not generate a ddl
script for the view. OWB generates regular package with assumption that the view
is updatable. No error checking is done to verify if view is updatable or not.
You must make sure that the view meets the definition of an updatable view before
including this view into the map. See the Oracle 8i SQL Reference for the definition
of updatable view. Views and materialized views are generated in the same way as
regular tables
Mappings
OWB generates multiple scripts to implement each PL/SQL mapping:
PLS scripts create the PL/SQL packages that pull data from database sources,
perform transformation operations, and load data into the physical instance of
the data warehouse.
DDL scripts create database links.
TCL scripts that are registered with Oracle Enterprise Manager and Oracle
Workflow to support job scheduling as well as to capture and log audit and
error information.
Run the Packages When OWB returns the Generated Results window for a mapping,
it enables the Run button. Thus, after you deploy the mapping to the target schema,
you could push this button to load data into the target warehouse. See Chapter 9,
"Periodic Loads and Updates" for information on how to schedule and monitor
database loading using Oracle Enterprise Manager and Oracle Workflow, and see
Chapter 10, "Administration" for information on analyzing audit and error
messages using the Builder Runtime Audit Viewer.
Sequences
OWB generates a single DDL script for each sequence defined by the warehouse
module. Each script creates a sequence object in the physical instance.
Tables
OWB generates multiple DDL scripts for each table which include DDL scripts for:
■ The table and its configured partitions
■ Constraints on the table
■ The indexes and index partitions configured for the table
■ The partitions configured for the table.
After generating the DDL, OWB returns the Generated Results window. You can
view the generated code and deploy the dimensions from this window.
The Schema Objects tab displays objects that you can deploy to create your
warehouse. Use the Ctrl button to select multiple objects.
You can select from these actions:
■ View Code: Use this button to view and edit the code generated by OWB.
Select the object’s name and then click View Code. OWB returns the generated
code in a code editor. You can choose to view or edit the code. If you edit the
code, you will be prompted to save your changes when you close the window.
■ Deploy...: This deploys the selected objects to your target data warehouse. See
the descrption under the Transforms tab for more information.
■ Save as File: This allows you to save the code to a file in order to use another
tool to deploy. See the descrption under the Transforms tab for more
information
The Transforms tab displays mappings that you can deploy to create your
warehouse. Use the Ctrl button to select multiple objects.
Select an object and choose from these actions:
■ View Code: Use this button to view and edit the code generated by OWB.
Select the object’s name and then click View Code. OWB returns the generated
code in a code editor. You can choose to view or edit the code. If you edit the
code, you will be prompted to save your changes when you close the window.
■ Deploy...: Use this button to deploy selected object to a physical instance of the
warehouse. This is the point in time when your data warehouse is physically
created. In order to create your data warehouse, you must select all the
necessary generated scripts and then click Deploy... .You must select the
runtime database you are deploying to each time you deploy. This allows you
to be able to configure once and deploy to many instances.
OWB allows for flexible deployment. This means that you have the option of
selecting which scripts you want to deploy to your warehouse. Typically, you
would deploy all scripts when you initially create your warehouse. However, if
you decide to create additional objects, such as indexes at a later time, you have
the option of generating and deploying those scripts without having to
re-deploy your entire warehouse.
■ Save as File: This allows you to save the code to a file in order to use another
tool to deploy. Choose this option when you want to deploy a script that creates
an object to a subdirectory of the Top Directory. The Top Directory is an
operating system directory that is configured for the warehouse module.
OWB writes the generated script to a subdirectory that corresponds with the
script’s language as defined in the Generation Results or Generated Scripts
inspector. Specifically, the script is written to the file:
\Top Directory\ddl\database_link_name.ddl
For example, the generated scripts for the Customers dimension are written to
the DDL subdirectory in the following form:
e:\target\ddl\Customers.ddl
e:\target\ddl\Customers_DIM.ddl
Where the Top Directory was configured as e:\target.
■ Run: Use this button to run a deployed PL/SQL package that implements a
mapping. The usage of this button is intended for testing PL/SQL load
packages with a relatively small data samples. Initial loads and periodic
refreshes of a physical instance should be scheduled as jobs.
Note: This function will run the last deployed package that is
currently in the database. If you have made changes, you must first
re-deploy, before running the scripts.
■ OEM Register: Use this button to register the selected TCL scripts with Oracle
Enterprise Manager. OWB generates one TCL scripts for each mapping. Oracle
Enterprise Manager and Oracle Workflow uses the TCL script to initiate,
execute, and terminate the capture of audit statistics and error messages. If you
plan to schedule jobs using Oracle Enterprise Manager or Oracle Workflow, you
must register the TCL script with Oracle Enterprise Manager.
Notes:
■ If you modify the configuration parameters in any way, you
must regenerate the scripts, redeploy all of them, and then
reregister them with OEM.
■ If you attempt to register a job with Enterprise Manager that
already exists in its Job Library, OWB returns a VDJ-2003 error.
You must remove the job from Job Library before you can
successfully register a new version.
Deploying Scripts
To create and populate the physical instance of the data warehouse, you run the
generated scripts to deploy objects in the target schema, deploy the scripts to an
operating system directory, register the scripts with Oracle Enterprise Manager and
Oracle Workflow, and then schedule jobs to initially load the warehouse.
To deploy generated job scripts:
1. Select a module and open the Warehouse Module Editor.
2. Select View > Generated Scripts.
The Generated Scripts window displays with the Schema Objects tab on top.
3. Select the tab that contains the object or mapping you want to deploy and click
Deploy.... You can select multiple objects by pressing Ctrl while you select.
The Connection Information dialog displays.
The Database Deployment dialog displays. Use this to verify the objects you are
deploying.
complete, the Database Deployment dialog displays again, only this time, the
results of the deployment are displayed in the lower half of the window.
6. Click Close. The scripts have now been deployed to the database.
■ PL/SQL mapping
Change Repository
Metadata
Warehouse Warehouse
Metadata Analysis
Analyzed
Upgrade Impact
Plan Generated Report
Execute Upgrade
Scripts Warehouse
OWB utilizes the Change Management (CM) Pack to analyze the existing contents
of a target instance and synchronize them with changes in the OWB warehouse
design. Next, OWB provides an Impact Report generated by CM detailing the plan
for the upgrade; CM also generates necessary SQL and DDL scripts to manage this
transition. Before executing the scripts, you should review the Impact Report to
make an informed choice on whether to perform the upgrade or take the
appropriate action.
You can create, add, update, and rename the following Warehouse objects:
Note: The upgrade feature does not work if you deploy a table
with Float data type because the OEM Change Management Pack
does not support it. If you want to upgrade tables with FLOAT data
type, the NUMBER data type can be used to achieve the same
results.
The warehouse upgrade feature does not currently support deleting objects. To
a
delete an object, you can select the Drop objects first checkbox in the Generation
Mode dialog. This will create DROP scripts for the objects selected.
For OWB to utilize the OEM Change Management Pack, you must have:
■ Oracle 8.1.7 database running.
■ OWB 3i client installed in the same Oracle home as the Oracle 8.1.7 client.
■ OEM Change Management 2.2 installed in the same oracle home as Oracle 8.1.7
client, with OMS 2.2 running on an accessible host.
Additionally, you need to configure the OEM Preferences panel within the OWB
Preferences window.
To configure the OEM Preferences panel
1. Select Project > Preferences.
OWB returns the OWB Preferences window containing seven tabs.
2. Select the OEM tab.
3. Enter the following connection information:
■ The OEM Domain - This should be the same machine that you used during
the OEM installation. For more information, please refer to the OWB
Installation Guide.
■ The OEM User
■ The OEM Password
4. Click OK.
OWB is now configured to utilize the OEM Change Management Pack technology.
3. Click OK.
OWB returns the Connection Information dialog.
4. Enter the username, password, machine name, port number and SID for the
target runtime schema you want to upgrade.
5. Click OK.
OWB returns the Generation Progress panel indicating the progress of the
analyses and script generation for the selected objects.
Once the process is complete, OWB returns the Generation Results dialog.
6. The Generation Results dialog displays an “Impact Report” listing all objects to
be upgraded using the newly generated scripts.
Note: There is only one Impact Report generated for all the objects
selected for upgrade.
From this dialog, you can view the Impact Report and Generation Summary
information and perform the following actions:
■ View Code
Click this button to view a SQL summary of the changes that will take
place. The summary is shown in a separate window and is read-only.
If you view the generated code, you will see hints that contain previously
deployed object names. This is included for informational purposes only.
For example, if you are changing the name of the object from DIM to DIM1,
DIM will be in the hint. This basically informs you that the table DIM1 that
you are creating, was named DIM when it was created last.
■ Upgrade
Use this button to upgrade the selected objects at the physical instance of
the target warehouse.
■ Save File
■ Print File
7. If there are no errors and your schema objects can be readily upgraded from the
information supplied, the Upgrade button is activated. Click Upgrade to run
the scripts.
8. The Upgrade dialog confirms script that will upgrade the objects that were
selected. At this point, you must click Execute to execute the script.
9. When the script completes, you can either click Commit to save the changes
you have made, or Rollback to erase the changes and stop the upgrade.
The physical instance in your target warehouse is upgraded.
This chapter shows you how to set up and schedule jobs that initially load and
periodically refresh a data warehouse. You can enforce the job processing sequence
manually or through automation. This chapter illustrates both methods.
This chapter covers the following topics:
■ Loading and Updating Jobs
■ Scheduling with Oracle Enterprise Manager
■ Managing Dependencies Using Oracle Workflow
■ Viewing the Runtime Audit
■ Taking the Next Step
Scheduling Jobs
There are two main ways for you to schedule your deployed scripts:
Manual Scheduling After you generate and deploy your scripts you are given the
option of registering them as jobs in Oracle Enterprise Manager (OEM). You can
then schedule a job, or sequence of jobs. OEM allows you to manually schedule
each job within a batch and check the completion status of each job in the batch
before scheduling the next batch. For more information about scheduling using
OEM, see "Scheduling with Oracle Enterprise Manager" on page 9-3.
Automated Scheduling After setting up your jobs in OEM, you can proceed to
automate those jobs based on a process you define. Oracle Workflow allows you to
automate the entire schedule for a set of jobs by defining a process. You can then
schedule the process rather than the individual jobs. The Oracle Workflow server
manages the process so that jobs run in the proper sequence. If an exception occurs,
the Workflow server terminates the process. This minimizes rather than eliminates
manual intervention. For more information about scheduling using Workflow, see
"Managing Dependencies Using Oracle Workflow" on page 9-10.
Types of Jobs
These are the different types of jobs listed in the OEM:
■ Loader Mappings extract and load data from flat file sources.
■ PL/SQL Mappings extract, transform, and load data from database sources.
4. Click Close. The scripts have now been deployed to the database.
5. Select the deployed scripts and click Save as File. The scripts must be saved or
you will get an error message if you attempt to register them.
6. Select the objects you want to register with OEM and click OEM Register. You
must select the TCL language jobs to register with the OEM.
OWB connects with Enterprise Manager, registers the scripts necessary to run
the load jobs, and returns a confirmation list.
You can select a specific job and set up its schedule directly from this window.
Examples in the next section show you how.
Scheduling
To schedule a job, select the job’s name, click Edit. Enterprise Manager returns a
multi-page Edit Job window. Select the Schedule tab. Enterprise Manager returns
the Schedule page.
Specify the schedule and close the window. You can submit the job from this panel
now or later.
of a submitted job (Submitted or Running) from the Active pane. After the job has
completed, you can check its status in the History pane (Completed or Failed).
If you right-click the job’s name from the History pane, Enterprise Manager returns
a pop-up list that allows you view more details regarding the job, remove the job
from the history log, or create another job like the selected job.
The Enterprise Manager’s log contains summary information about a job’s
execution, but in those cases when the job fails to terminate normally, you need
more detailed information. The OWB Runtime Audit Viewer provides that type of
information. For more information, see "Viewing the Runtime Audit" on page 9-23.
Running the TCL Script To modify a parameter’s value for a job using Enterprise
Manager, open the Job Library from the toolbar, select the job name (SALES_
MAPPING_job), and then click Edit. OWB returns the Job Editor window. Select the
parameters tab. OWB returns the Parameters panel.
Select the TCL script and locate the parameter in the Parameters text box. Modify
the parameter in the text box and then submit the job.
2. Click Next.
The wizard returns its Maps page which solicits a list of mappings to be
deployed.
The wizard returns its Functions page which identifies the names that Oracle
Warehouse Builder assigned to the individual mappings. Within Workflow,
these mappings are called "functions."
To display the internal function name for a specific mapping, select the
mapping’s name in the navigation tree. The wizard returns the function’s
internal name, display name, and description.
You cannot modify names on this page.
6. Click Next.
■ The Item Type page displays.
Note: If the Item Type you are defining already exists with the
Workflow server, it is overwritten. This includes any modifications
such attribute values and process diagram dependencies.
7. Click Next.
The Process page displays.
Verify the contents of this page. Use the Back button to make changes.
9. Check the Deploy the workflow process to OEM? box if you intend to
schedule the workflow process using Oracle Enterprise Manager.
The wizard deploys the name of the process to Enterprise Manager’s Job
Library only if the warehouse module is configured for Oracle Enterprise
Manager. No other method is available to deploy the process name to the Job
Library.
10. Click Finish.
The wizard deploys the mappings as a set of Workflow functions defined with
the specified Item Type to the Workflow server.
You can now start the Oracle Workflow Builder and define the process to initially
load the Warehouse.
2. To set the client’s access level, Select Help > About Oracle Workflow Builder.
The About Oracle Workflow window displays. This window defines the access
level. You can change its access level by entering a new value.
Each function stored in a Workflow Server has a specific access level between
zero and one thousand. The Workflow Builder client can edit a function only if
its access level is less than or equal to that of the function.
The Workflow Deployment Wizard assigns each function an access level of (20)
during the deployment operation. Thus, to edit these functions, you must set
the access level of the OWB client to a value less than or equal to twenty.
3. Set the Workflow Builder client’s access level to a value less or equal to twenty
and Click OK.
4. Select File > Open or click the Open icon.
5. Select the Database button and then enter connection information for the Oracle
Workflow server:
■ User name and password pair for the server
■ SQL*Net connect string
6. Click OK.
Oracle Workflow Builder returns a list of Item Types in a selection panel.
7. Move the Item Type to the Visible pane and click OK.
9. Fully expand the navigation tree and open the deployed process.
Oracle Workflow returns the process functions in a separate window.
Oracle Workflow stacks the functions which represent the individual mappings
on top of each other. To define the workflow process, drag each function to a
logical place within the window, and then graph the workflow process.
10. Define the dependencies among the functions as a Workflow process.
The graph below illustrates the Workflow process that properly sequences the
Workflow functions to load the data warehouse.
After the job completes, normally or abnormally, you can view its audit and log
entries using the OWB Runtime Audit Viewer. For more information, see "Viewing
the Runtime Audit" on page 9-23.
Where:
6. Select a Process Name from the down-arrow list, enter an Item Key, a User Key,
and, if necessary, enter new runtime parameters.
7. Click OK.
Oracle Workflow Monitor starts the process and returns its Notifications List
page. Choose View Diagram on this page to monitor the process.
The Runtime Audit Viewer window has two panes. The left pane contains a
navigation tree. The right pane contains a list of details for the node currently
selected in the navigation tree.
3. Use the Navigation tree to select objects in the left pane to display detailed
information in the right pane.
When the Audit Viewer first opens, all of the objects are rolled up under the
Jobs node. As you expand the nodes, you will see the following layers of objects
available to view:
■ Jobs
■ Job Instances
■ Tasks
■ Detailed Mappings
"Understanding the Audit Viewer" on page 9-29 describes each of these areas in
detail.
Option Description
Recent (Default) Only the most recent instance of each job is displayed
All All instances of each job are displayed
Range Only those instances run within a specific date range are
displayed
Note: The Default Job node only has one job instance. The date
associated with this single job instance is the date the warehouse
tables were established, so it may disappear from the tree for some
values of the Range option.
Option Description
Name This is where you type in the name of the object you are
searching for. Names of targets are enclosed in double quotes.
When entering the name, you can use * to abbreviate the name.
For example:
"D* will match all names beginning with D, and
"D*2 will match all names beginning with D and ending with 2.
Object Type Allows you to search all object types, or one specific type.
Search In This establishes the scope of the search.
Current Folder - searches currently selected object folder in
the navigation tree.
All Folders – searches whole navigation tree.
Match Case Allows you to determine whether or not the alphabetic case
used in the Name you are searching for is significant.
Clicking the Find button displays a list of objects matching the search criteria. You
can then click over one of these entries and then click the Select in Tree button, to
select the relevant object in the navigation tree.
The Search In option has two settings. If you select Current Folder, the current
folder you have selected in the navigation tree will be searched for a object with the
name you specified. If the object is found, you may click the Select in Tree button.
This will drill you down in the folder to the object you were searching on. If the
object is in another folder, and you have Current Folder selected, the object will not
be found.
You should note that as there is only a single job instance entry for ‘Default Job’, it is
not possible to selectively purge the ‘Default Job’ entries. Since the date associated
with this single entry for ‘Default Job’ corresponds to the date the runtime tables
were first established, you should be careful not to purge all the Default Job audit
information accidentally.
Nodes
Node
Details
job. Each time a run of the parent job is started, a new job instance is added. The text
alongside shows the name of the job and the time at which the run started.
Selecting a job node in the tree or selecting a job entry in the right hand pane and
clicking the View Instances button displays details about instances of the job. A job
instance represents a specific run of the job. The following information is displayed
for each job instance:
The Date Range option affects the job instance entries displayed here in exactly the
same way as the job instances shown in the navigation tree. By default, only the
latest job instance of a job is displayed.
If the View errors only box is checked, a job instance will not be displayed unless it
has the Errors column = YES.
Note: The Default Job will always have only one job instance. The
date corresponds to the date the runtime tables were established,
and it will always have Status=BEGIN and Errors= NO, regardless
of the status and error details of the Tasks associated with it.
Selecting a job instance node in the tree or selecting a job instance entry in the
right-hand pane and clicking the View Tasks button will display information about
the Tasks performed by the job instance.
A Task entry represents a run of a mapping. Task entries are set up both for
mappings that are run as part of a Workflow process and for those that are run
directly. When the job instance represents a run of a Workflow process, there will be
a Task entry for each mapping that is carried out by the process. However, when a
mapping is executed directly, the Task entry will be associated with the single job
instance entry for ‘Default Job’.
If the View errors only box is checked, only those Task entries with errors will be
displayed.
The following information is displayed for each Task:
The statistics values are normally the sum of the corresponding values in the
relevant Detailed Mapping entries described later. However, the value for the
number of records selected may sometimes be less than the sum of the records
selected in the individual Detailed Mapping entries. (For example, this may occur in
the row-based modes, if mappings to multiple target tables are combined within a
single loop in the generated PL/SQL.)
only be one Detailed Mapping for a Task, but various scenarios may cause a Task to
have more than one Detailed Mapping.
Selecting a task node in the tree, or the ‘Targets’ node below it, or selecting a task
entry in the right-hand pane and clicking the View Task Details button will display
information about its Detailed Mappings. A Detailed Mapping entry represents a
mapping to a specific target table. A Task that affects multiple target tables will
have a Detailed Mapping entry for each target table. Also, if a PL/SQL mapping is
run in “set based fail over” mode, and the set based run detects errors for a specific
target table, there will be two Detailed Mapping entries for the table. One will be for
the set based run and one for the row based run.
Also, if the relevant detailed mapping cannot be started when processing a Task,
there will be no Detailed Mapping entry for it. For example, a set-based run cannot
be started with certain Loading Types (e.g. DELETE). In these circumstances, a
“set-based fail over” run will immediately switch to the relevant row-based mode,
but a pure set-based run will cause the mapping to be abandoned, the Task itself
will not be marked as COMPLETE, and it will end up with a reduced or empty list
of Detailed Mappings.
If the View errors only box is checked, only those Detailed Mapping entries with
errors will be displayed.
Note that for PL/SQL mappings, the values of the statistics reported may depend to
some extent on the mode in which the mapping is run; for example in:
■ Set-based mode, if any errors are found, normally only the first error detected
will be logged, and the number of errors will be set to 1.
■ Row-based modes, multiple errors may be logged.
■ Set-based mode, the value for number of records selected is always the same as
the number of records inserted in the target table. If any errors are detected, the
transaction is rolled back, and the number of records selected and the number
of records inserted will both be zero.
■ Row-based (target) mode, the value for the number of records selected is
derived from a cursor that implements all the stages of a mapping. Thus the
value normally corresponds to the number of rows that will be applied to the
target table.
■ Row-based mode, the cursor used to derive the number of records selected may
omit the final stage of the mapping in some circumstances. For example, if the
final stage involves a splitter, the number of records selected will reflect the
records selected as input to the split operation, and so its value may be larger in
row-based mode than in set-based or row-based (target) modes.
The error entries identify the target table, the column, the error number and the
error message. However, in many cases the column is set to ‘*’ as the identification
of the problem column is not readily available.
Further details of the cause of the error can be obtained by selecting this entry and
clicking the ‘View Error Details’ button. This error message indicates that the
set-based mapping has been abandoned and the transaction has been rolled back. If
the mapping is being run in “set based fail over” mode, the relevant row-based
mapping will be run. (This should record the error that caused the set-based run to
fail, and possibly others as well.)
Understanding Errors
When you look at the errors, it is important to understand that an error does not
always mean that the data did not load correctly. And conversely a message stating
"Rows are inserted" does not mean all is fine. Rows can be inserted but they may
violate foreign key constraints.
For example, if a row violates a foreign key constraint, an error is logged by OWB in
the runtime audit and you can see the error through the audit viewer. The violating
row is still inserted, but the foreign key constraint cannot be fully validated due to
this violation. Therefore, OWB places the foreign key constraint in "enabled
novalidate" state. The foreign key constraint is enabled, but it does not reinforce the
constraint on rows already in the table, but it will be as normal for future incoming
rows. In this way, OWB allows you to load data without forcing the process to fail
every time there is a violation.
For PL/SQL mappings run in the row-based modes, the error details will also
include a list of the values of each of the columns of the row on which the error
occurred.
This chapter shows you how to complete the several administrative tasks using
Oracle Warehouse Builder utilities. There are two types of administration discussed;
Repository Administration and Reports Administration.
The chapter covers the following topics:
■ Repository Administration
■ The OWB Metadata Loader
■ The OWB Transfer Wizard
■ The Archive/Restore Utility
■ Reports Administration
■ Using the Administration Pages
■ Registering an OWB Repository
■ User Access
■ Registering a Custom Report
Administration 10-1
Repository Administration
Repository Administration
Repository Administration covers information relating to the repository and the
metadata that is stored within it. This section discusses the OWB Metadata Loader
(MDL) as well as the OWB Transfer Wizard and the Archive/Restore Utility.
When you first install or upgrade OWB, you have the option of using the following
wizards to help you set up your OWB warehouse:
■ OWB Repository Assistant
■ OWB Runtime Assistant
■ OWB MDL File Upgrade Utility
You can either run these at installation or upgrade, or defer to a later time. Please
refer to the OWB Installation Guide for specific instructions on how to use each of
these features.
Using the MDL With Multiple Users Starting in version 3i, OWB gives you the ability to
have multiple users accessing the same repository at the same time. It does this by
applying locks to objects that are being modified. These locks help to maintain work
done on the repository. This feature primarily affects metadata import. When you
import metadata, OWB applies locks to all individual objects you are importing.
When the import is complete, the changes are committed.
Using the MDL with Large Files Large MDL exports and imports may require a large
amount of memory. For large exports and imports, if the default -Xmx of 256M in
exp.bat, imp.bat, or owbclient.bat is not enough, MDL will fail due to lack of
memory. You need to increase the -Xmx setting in the appropriate bat file to fix this
problem.
When importing a large MDL file that will result in a large number of updates
and/or adds, OWB may not have the capacity to lock all of the objects affected
depending on the OWB repository configuration. In this case, OWB will attempt to
switch to single user mode. Also, if more than 300 locks or 1/6 of the total enqueue
resources for the OWB repository, whichever is less, are required to import a MDL
data file, OWB will attempt to automatically switch to single user mode. This allows
the MDL to avoid performance degradation when using a large number of locks.
This also helps limit the potential of running out of enqueue resources. If the MDL
switches to single user mode, no other users will be able to log on to the repository
until after the MDL import completes.
Whenever possible, large MDL exports and imports should be run on the database
server where the OWB repository resides in order to get the best performance.
Notes: ■To avoid potential loss of work, large imports are best done
Metadata Export
The Metadata Export Utility exports objects from an OWB repository to an
operating system file. The Utility can export an entire project, a set of modules, or a
set of objects defined by a module. It can also export the global-shared
transformation library.
Administration 10-3
The OWB Metadata Loader
Subsets of Objects You can export all of the objects in a project, or just a subset of
those objects. For example, you can export the entire Warehouse project to a file, a
few selected modules, or selected objects within a source or warehouse module.
When you export a subset of objects, the Utility exports definitions for each object
selected and all of that object’s ancestors. For example, if you export only the
dimension, the export file will contain definitions for:
■ The dimension
■ The dimension’s parent (The warehouse module)
■ The warehouse module’s parent (The warehouse project)
Table 10–1 lists the repository objects that can be exported and imported by the
Metadata Loader.
Note: If you are exporting a subset of objects, make sure that you
export all referenced objects as well. The Metadata Import Utility
allows you to import repository objects even if that object’s
references to other repository objects cannot be satisfied.
Exported Values for Configuration Parameters By default, the Metadata Export Utility
always exports values for configuration parameters.
You can override this behavior when you run the Metadata Export Utility directly
from the command line by including the statement CONFIGPARAM=N in the
Metadata Export Utility’s parameter file. For more information see "Metadata
Loader Command Line Utility" on page 10-17.
Exporting Metadata
1. Select the name of the object(s) you want to export.
To export a project:
1. Select the Project’s name from the Project Tree view.
2. Select Project > Metadata Export > File
To export a module or set of modules from a project:
1. Select the names of the module(s) to be exported from the Project Tree view.
To select multiple modules, press CTRL and select the additional modules.
Administration 10-5
The OWB Metadata Loader
The Metadata Export Utility window displays. This window displays the name
of the objects you are exporting.
Administration 10-7
The OWB Metadata Loader
The Metadata Export Progress panel displays the progress. When the export
completes, the Metadata Export Results dialog displays.
This dialog displays the object types and the number of each type that were
exported. For a more detailed look at the export process, click View Log File.
This displays the entire log file.
Metadata Import
The Metadata Loader imports objects from an export file into an OWB repository.
The Utility operates in one of four modes: add, replace, add and replace, and add
and merge.
Import Searching When you use the MDL Import Utility, it searches the repository for
any repository objects that exist in the repository and in the file you are importing.
The MDL allows three different way for searching for objects: Universal Identifiers,
Logical Names, and Physical Names.
■ Universal Identifiers - The Utility exports a universal identifier, also known as
the Universal Object IDentifier or UniversalID, for each object it exports. These
identifiers can be used to determine whether an object should be created,
replaced, or merged during an import operation.
■ Logical and Physical Names - The Utility exports each object’s physical and
logical name to the export file. These names determine whether an object
should be created, replaced, or merged during an import operation.
An example best illustrates the search algorithm. Suppose the search is by the logical
name of a repository object in the export file. The Import Utility searches the
repository for the object’s logical name.
If the Import Utility does not find the logical name, the resulting actions are based
on the import mode.
If the Import Utility does find the logical name, the following actions result based
on the import mode:
Administration 10-9
The OWB Metadata Loader
When importing in Add and Replace, and Replace mode, the import completely
replaces the existing object’s children so that the final object is exactly the same as
the source object. Specifically, any children of a repository object that are not
replaced or added are deleted. This occurs regardless of whether a child occurs in a
mapping or is a foreign, primary, or unique key column.
For example, in the MDL export file, Table CUST contains 3 columns with physical
name Last_Name, First_Name and Middle_Init. In the OWB repository, the same
table CUST contains 4 columns with physical name Last_Name, First_Name, Status
and SSN. During a replace operation, the columns Last_Name and First_Name
will be replaced, column Middle_Init will be added, and column Status and SSN
will be deleted. The final result is that Table CUST in the OWB repository contains
the same metadata from Table CUST in the export file.
The ultimate consequence is that after the import operation, mappings and foreign,
primary, and unique key constraints can be malformed. For example, after the
import a mapping may reference non-existent columns.
Tables, Views, Materialized Views Columns, Foreign Keys, Unique Keys, Primary
Keys, Check Constraints, Named Attributes,
Configurations
Importing Metadata
To import objects from an export file:
1. Select Administration > MetaData Import from the Administration Tree view.
If you have made any changes, the Metadata Import Confirmation dialog
displays. Click Commit to save any changes or Rollback to ignore changes and
revert to previously saved version.
Administration 10-11
The OWB Metadata Loader
Import Option
■ Add new metadata only - This option allows you to add new objects to a
repository. If you import a file that contains objects that already exist in
your repository, they are ignored. The old objects remain unchanged.
■ Add new metadata and replace existing objects - This option allows you
to add new objects to a repository and update existing objects.
■ Add new metadata and merge existing objects - This option allows you to
add new objects and merge existing objects in your repository. This allows
you to reconcile any changes you have made to your repository with any
changes or additions that have been elsewhere and then exported to an
MDL data file.
■ Replace existing objects only - This option allows you to replace existing
objects in your repository.
Search by
■ Ignore Universal Identifier - This option allows you to ignore searching
for the objects you are importing using Universal Identifiers. By default, the
Universal Identifiers are used to determine if an object already exists or not.
■ Logical Names - Select this option to search your repository using the
logical names of the objects you are importing to make sure the objects do
not already exist.
■ Physical Names - Select this option to search your repository using the
physical names of the objects you are importing to make sure the objects do
not already exist
Character Set - Select the type of character set used to create the export file. The
default character set is defined by the machine that hosts the OWB client. Use
the down-arrow list to change the output character set.
4. Click Import.
The Metadata Import Confirmation dialog displays only if the exported
metadata data information has not been reviewed.
Administration 10-13
The OWB Metadata Loader
The Metadata Import Progress panel displays. When the import is complete, the
Metadata Import Results dialog displays.
This dialog displays the object types and the number of each type that were
imported or skipped. For a more detailed look at the import process, click View
Log File. This displays the entire log file.
The Log File There are three types of status messages that can show up in the log file:
■ Informational - This is intended to provide information about the import or
export.
■ Warning - This is intended to caution you about the import or export of an
object.
■ Error - This is intended to indicate that the MDL export or import was aborted
and did not complete successfully.
Example 10–2 displays the contents of an import log file. Notice that the import
statistics display the total number of objects that have been added, replaced, and
skipped.
-------------------------------
Project = PRJ_Dimension
Administration 10-15
The OWB Metadata Loader
Detailed Error Messages If you are running an MDL Import or Export and get an
error, a brief error message displays.
You can click Detail to display a detailed error log that will pinpoint the repository
object and the object line that the error occurred in. This is extremely useful for ad
hoc troubleshooting. In the example below, the repository object is the dimension
CUST and the object is the level TOTAL.
Standard Error
Message
Detailed Error
Message
Administration 10-17
The OWB Metadata Loader
Project Name PROJECT Project name. Wildcard format supported for Project,
but if used, no other object type keywords may follow.
In order to export shared transformations, use
PROJECT=Global Shared.
Field Separator FIELDSEPARATOR Field separators: ’|’, ’^’ or ’~’ use without quotes.
Log File LOG File name for the status and statistics of the export.
CHARACTERSET Specifies the character set to use for the export data file.
TABLES
VIEWS
FILES
SEQUENCES
MATERIALIZEDVIEWS
DIMENSIONS
FACTS
FUNCTIONS
MAPPINGS
Export a Project
This example shows you how to export the entire GCCWarehouse project. The
operation requires two steps: create the directives file and then execute the
Metadata Export Utility (exp).
Create the Directives File The directives file is a simple text file that contains a set of
directives for the export utility.
USERID=GCCWH/GCCWH@dwdoc11-pc:1521:ora816
PROJECT=GCCWarehouse
FILE=e:\MDL\GCCWarehouse-exp-JUL01
FIELDSEPARATOR=|
LOG=e:\MDL\GCCWarehouse-exp-JUL01-LOG
CONFIGPARAM=N
Execute the Export Utility The following command invokes the Export Utility and
specifies the above directive file:
w:\owb\bin\win32>exp parfile=e:\MDL\EXP_Directives
Processing ... Export successful.
Administration 10-19
The OWB Metadata Loader
The objects have now been exported to the file and can be imported into the same or
another repository using the Import utility.
Log File LOG File name for the status and statistics of the export.
CHARACTERSET Specifies the character set to use for the export data file.
SINGLEUSER Request a single user lock (Y/N) for running the import.
Default is N.
Create the Directives File The directives file is a simple text file that contains a set of
directives for the export utility.
USERID=GCCWH/GCCWH@dwdoc11-pc:1521:ora816
FILE=e:\MDL\gccstar-exp
LOG=e:\MDL\gccstar-imp-LOG
MODE=CREATE
CONFIGPARAM=N
Execute the Import Utility The following command invokes the Import Utility and
specifies the above directive file:
w:\owb\bin\win32>imp parfile=e:\MDL\IMP_Directives.txt
Processing ...
Import successful.
Administration 10-21
The OWB Transfer Wizard
Code Generation Before you generate scripts from imported definitions, you should
first configure the definitions and then validate them. The validation will trap
malformed definitions. For additional information on the configuration, validation
and generation of scripts, refer to the discussion and examples in Chapter 8,
"Configure, Generate and Deploy".
Foreign Key Definitions A foreign key definition can be updated in a repository that is
not identical to the foreign key in the exported metadata file if its referenced unique
or primary key does not exist in the target repository. A warning message is written
to the log file that the foreign key does not contain a referenced key.
Transfer Considerations
Before you transfer metadata between two data warehousing tools, you need to
perform tasks within the source tool to ensure that the metadata transfers
successfully and displays appropriately in the target tool.
For detailed information on transfer considerations for metadata import and export,
refer to Appendix A, "OWB Bridges: Transfer Parameters and Considerations".
Administration 10-23
The OWB Transfer Wizard
The Oracle Transfer Wizard Welcome window displays, identifying the steps
you perform while using the Transfer Wizard.
4. If you want to display version information about the Transfer Wizard, press the
About Oracle WB Transfer Tool... button.
For version information about the individual bridges, press the Bridge
Versions ... button.
Note: Each of the Transfer Wizard pages allows you to click the
Help button or F1 to display help for the current window.
Administration 10-25
The OWB Transfer Wizard
Administration 10-27
The OWB Transfer Wizard
7. Review your entries. If any are incorrect, click Back to return to the previous
screen and make the necessary changes.
8. Click Finish on the Confirmation window to begin the transfer process. The
transfer window displays with a status bar.
The title of the transfer window is the description you assigned to the transfer
on the Choose Data Source and Target Types window. If you did not provide a
description, a title does not display.
Note: To save the log for reference, click Save As to open the Save dialog
box. Select the folder where you want to store the log and click Save.
■ If you determine the cause of the failure from the Information Log, note the
data requiring update. Close the log by clicking Ok. On the transfer
window, click Return to Wizard and update the erroneous data on the
Transfer Parameters window. Then transfer the data again.
■ If you cannot determine the cause of the failure from the Information log,
you can create a Trace log. Close the current log by clicking Ok. On the
transfer window, click the Return to Wizard button and change the Log
Level to Trace on the Transfer Parameters window. Then transfer the data
again.
During a successful transfer, the Transfer Wizard creates the output file and stores it
in the location you specified.
Administration 10-29
The OWB Transfer Wizard
The Oracle Transfer Wizard Welcome window displays, identifying the steps
you perform while using the Transfer Wizard.
4. Click Next to use the Transfer Wizard to export metadata from OWB to a target.
Note: Each of the Transfer Wizard pages allows you to click the
Help button or F1 to display help for the current window.
Administration 10-31
The OWB Transfer Wizard
The Transfer Parameters window table lists parameters that you must enter or
select. This window displays a different set of parameters depending on the
target you selected in the previous step.
For detailed information on transfer parameters for each target type, refer to
Appendix A, "OWB Bridges: Transfer Parameters and Considerations".
6. Click Next. The Confirmation of OWB Transfer window displays.
7. Review your entries. If any are incorrect, click Back to return to the previous
screen and make the necessary changes.
8. Click Finish on the Confirmation window to begin the transfer process. The
transfer window displays with a status bar.
Administration 10-33
The OWB Transfer Wizard
The title of the transfer window is the description you assigned to the transfer
on the Choose Data Source and Target Types window. If you did not provide a
description, a title does not display.
■ If a transfer failure message displays, click View Log File and review the
log. You can also view the log of a successful transfer.
Note: To save the log for reference, click Save As to open the Save dialog
box. Select the folder where you want to store the log and click Save.
■ If you determine the cause of the failure from the Information Log, note the
data requiring update. Close the log by clicking OK. On the transfer
window, click Return to Wizard and update the erroneous data on the
Transfer Parameters window. Then transfer the data again.
■ If you cannot determine the cause of the failure from the Information log,
you can create a Trace log. Close the current log by clicking OK. On the
transfer window, click Return to Wizard and change the Log Level to Trace
on the Transfer Parameters window. Then transfer the data again.
During a successful transfer, the Transfer Wizard creates the output file and stores it
in the location you specified.
OW B
R epos itory
Versioned
R epos itory
Archive Check In
Check Out
R estore Add
Get
Undo C heck Out
File System
Administration 10-35
The Archive/Restore Utility
There are two places in OWB where you can set up the version label used in the
archive/restore. The first is in the New Project Wizard. The New Project Wizard
contains a step that allows you to define Version Properties. The version label that
you set here is the version label that is used when that project is archived. After you
have created a project, you can edit the version label by opening the Properties
dialog for the Project. Click on the Version Properties tab to modify the project’s
version label.
It is important to note that Archive and Restore are different from Import and
Export. The following two tables describe the main differences between these
features.
Setting up Preferences
You can set up most of the archive and restore specifications using the Preferences
dialog from the Administration or Project Windows. Use this dialog to specify
labeling options, archive/restore directory locations and log folders.
To set up Archive/Restore preferences:
1. Select Preferences from the Administration or Project menus depending on
what view you are in.
The Preferences dialog displays. This is a generic preferences dialog that is not
specific to the Archive/Restore. You must select the Archive/Restore tab if it is
not displayed on top.
Administration 10-37
The Archive/Restore Utility
3. Specify how you want to handle the label. There are three options:
Archiving a Project
Archiving a project allows you to copy metadata stored within an OWB repository
to an external location for the purpose of securing that data at a fixed point in time.
OWB provides an Archive Wizard to assist you in this process.
Note: Before you archive your project, you can update the
project’s Version Label with its Project Properties dialog.
To archive a project:
1. Select Archive from the Project menu or from the Administration menu
depending on what view you are in. You can also select Archive from the
right-click menu when a Project is selected.
The Archive Wizard Welcome page displays. This page does not require any
settings, however, you can uncheck the Show this page the next time box to
have this page skipped during future archives
2. Click Next.
The Summary page displays. This page displays a summary of the archive
settings prior to running the archive process. If you want to see the details of
Administration 10-39
The Archive/Restore Utility
your archive after the archive process is complete, check the Show details
dialog following a successful archive box.
3. Click Finish.
This begins the archive process. A progress window appears. When the
progress bar reaches 100%, the archive process is complete.
If you checked the Show details dialog following a successful archive box, the
Archive Results dialog display. This dialog displays the name of each object
type and how many of each were archived.
For a more detailed look at the archive process, click View Log File. This
displays the entire log file.
Restoring a Project
Restoring a project allows you to recreate metadata within an OWB repository from
an external location.
To restore a project:
1. Select Restore from the Administration menu in the Administration View.
Administration 10-41
The Archive/Restore Utility
The Restore Wizard Welcome page displays. This page does not require any
settings, however, you can uncheck the Show this page the next time box to
have this page skipped during future restore processes.
2. Click Next.
The Select Archive page displays. Browse to or type in the Archive File you
want to restore.
3. Click Next.
The Summary page displays. This page displays a summary of the restore
settings prior to running the restore process. If you want to see the details of
your restore after the restore process is complete, check the Show details dialog
following a successful restore box.
4. Click Finish.
This begins the restore process. A progress window appears. When the progress
bar reaches 100%, the restore process is complete.
If you checked the Show details dialog following a successful restore box, the
Restore Results dialog display. This dialog displays the name of each object
type, how many of each were restored, and how many of each were skipped.
Administration 10-43
The Archive/Restore Utility
For a more detailed look at the archive process, click View Log File. This
displays the entire log file.
Reports Administration
Reports Administration covers information relating to setting up reporting on your
metadata. Since OWB relies on the OWB Browser as the main supported method of
reporting on your metadata, this section is devoted to administration tasks that you
do directly from the OWB Browser.
When you first install or upgrade OWB, you have the option of using the OWB
Browser Assistant to set up your OWB Browser. You can either run this wizard
during your installation or upgrade process, or defer it to a later time. Please refer
to the OWB Installation Guide for specific instructions on how to use this wizard.
Before you can set up the Administration features for the OWB Browser you must
have Oracle Portal running on your web browser.
Administration 10-45
Using the Administration Pages
The Warehouse Builder Administration pages can only be accessed if the Oracle
Portal username you are logged in as has Full Administrator privileges.
Administration
Actions
OWB Browser
Resources
Administration Actions Across the top of the Administration page there are
administration actions to choose from:
■ Register an OWB Repository enables you to register a new Warehouse Builder
Repository for use with the OWB Browser. For more details, see Registering an
OWB Repository on page 10-48.
■ Register a Custom Report enables you to register a new Custom Report with
the browser system. Custom Reports are created as Application Components
using the Oracle Portal system. For more details, see Registering a Custom
Report on page 10-57.
■ Purge Stale User Information removes information relating to users which
have been deleted from the single sign-on repository. This information will
remain unused within the browser system repository until it is removed by
using this operation. For more details, see Purging Stale User Information on
page 10-57.
OWB Browser Resources At the bottom of the Administration Page is a table listing
all of the existing configurable resources within the browser system. Various
operations can be performed on these resources. The different types of resource are
listed in Table 10–7.
Table 10–7 Browser Resources
Resource
Type Description Available Actions
Portlet A portlet provided by the Access - allows you to grant or revoke
browser system. In this repository access privileges to the users.
release of the OWB
Browser, the portlet is
named Launcher Portlet.
The portlet provides access
to the repository navigation,
reporting, favorites, and
administration functionality.
Repository An OWB Repository that is Access - allows you to grant or revoke
browsable through the repository access privileges to the users.
browser system.
Edit - allows you to edit repository properties.
Unregister - allows you to unregister the
repository. After unregistration, the repository
can no longer be browsed using the browser
system. You must re-register the repository if
you want to browse it again.
Role A viewpoint of the data in a Access - allows you to assign users and
Warehouse Builder groups to roles. A user can have access to
Repository. You are able to multiple roles.
define what users belong to
each role. In this release of
the OWB Browser, the roles
provided are Warehouse
Engineer, QA User, and
Warehouse User. For more
information, see
"Understanding Roles" on
page 10-54.
Administration 10-47
Registering an OWB Repository
Repository page where you can register OWB repositories, and administer database
links.
Administration 10-49
Registering an OWB Repository
2. Click Apply to register the repository. You may continue to edit the repository
properties by applying your changes. Click OK when you are finished.
The repository now displays in the Warehouse Builder Administration home
page.
Administration 10-51
Registering an OWB Repository
Note: The View Database Link page does not allow you to edit the
link. Use the Edit Database Link page to make changes and updates
to the link.
2. Make any edits to the database link and click Apply. You may continue to edit
the link by applying your changes. Click OK when you are finished.
To drop a database link:
■ From the Administer Database Links page, select drop for the database link you
want to drop. The drop link is under the Actions column.
The database link is dropped and you are returned to the Administer Database
Links page. You cannot undo this action.
If the database link has been used to register OWB repositories, unregister the
OWB repositories first.
Administration 10-53
User Access
Unregistering a Repository
To unregister a Repository:
1. Select the Administer Warehouse Builder Browser link from the Browser home
page.
The Warehouse Builder Administration page displays with the registered
repositories listed in the table at the bottom of the page.
2. Select the repository you want to unregister and click on the unregister link.
The repository is unregistered and no longer appears in the list of registered
repositories. You can no longer browse it using the Browser.
User Access
The Warehouse Builder Administration pages allow you define the access level
available for each user. You can use these features to determine which users have
access to what repositories. You can also maintain the amount of user information
that gets saved. The following sections define these features in detail:
■ Understanding Roles
■ Granting or Revoking Access
■ Assigning a Custom Report to a Role
■ Purging Stale User Information
Understanding Roles
In order to browse the OWB Repository, you must first choose one of the three
pre-defined roles to use. These roles are:
■ Warehouse Developer - someone that uses OWB to create the warehouse
■ QA User - someone that will test the quality of the warehouse before it is
deployed
■ Warehouse User - someone that will be using the deployed Warehouse to
understand the underlying metadata
The Administrator can restrict access to these roles to certain users and groups. All
of the pre-defined Reports and Navigation pages are available to all roles. When
you add custom reports or register repositories, you can choose which Roles they
will be available for. For example, you can have one Repository be available to the
Warehouse Developer Role, and another Repository available to all Roles.
There is one extra feature that is available when browsing as a QA user. Any objects
that have failed validation will have an error icon next to them in the Contents tab
of the Navigation page.
QA User
Error Icon
Administration 10-55
User Access
status is provided in the table at the bottom of the page. This contains the users or
groups that currently have access to this resource.
■ To revoke an access right, click the revoke action link in the appropriate table
row from the Change Access section of the page.
■ To grant an access right to a browser user, enter the name of the user in the text
box, and then click the grant user button.
■ To grant an access right to a browser group, enter the name of the group in the
text box, and then click the grant group button.
■ To close this page and return to the main administration page, click Close.
■ To remove access from a given role, click on the remove action in the
appropriate table row.
■ To close this page and return to the main administration page, click the close
button.
Note: There is no way to undo this action. Once you click Purge
Stale User Information, the information is purged. There is no
confirmation message displayed.
Administration 10-57
Registering a Custom Report
Metadata reporting allows you to examine the data that is stored in your repository.
Builder offers comprehensive metadata reporting using the OWB Public Views and
the OWB Browser. The OWB Browser integrates with Oracle Portal and makes it
possible for you to create your own metadata portal. The Browser works together
with the Public Views to create reports that look at all repository objects and
relationships between objects. You can choose to run these reports from the client or
from a web browser. You can also use the Public Views to create your own custom
reports.
In this chapter:
■ Viewing OWB Reports
■ Using the OWB Browser
■ Available OWB Reports
■ Creating Custom Reports
Note: In order to use the OWB Browser you must have access to
an Oracle Portal site with the OWB Browser portlet installed. For
more information about installing the OWB Browser portlet, see the
Installation Guide.
11-1
Viewing OWB Reports
The Oracle Portal site you defined in the Preferences opens and displays the
logon.
3. Enter your Internet Application Server (IAS) Single Sign-On username and
password the first time you run a report during this session.
11-3
Viewing OWB Reports
After you are logged on, the OWB Browser displays a list of reports available
for the selected item.
4. Click on the view action link for the report you want to view.
The report you selected displays in a separate window. In the example below,
the Table Summary Report is displayed.
5. To print the report, select the print operation from your web browser’s menu or
toolbar.
2. Click Login. The OWB Browser uses a standard Oracle Portal login screen. This
is not specific to the OWB Browser.
3. Logon to the Single Sign-On using a user-name and password that has access
privileges to the OWB Browser. The Internet Application Server (IAS)
Administrator is responsible for providing user accounts. Each user has their
own user-id and password.
After logging in, your default homepage displays with an OWB Browser Portlet
on the page. If you have not already added the OWB Browser portlet to your
11-5
Viewing OWB Reports
Oracle Portal Home Page, it will not display. You can use the Customize Page
option to add it.
OWB
Browser
Portlet
Other Portlets
Depending on the role, different reports are available. Roles are setup in the
OWB Browser Administration pages by your Warehouse Administrator. For
more information, see "User Access" on page 10-54.
6. Click Browse.
This takes you to the Warehouse Builder Navigation Pages. You can then select
and navigate around your repository and find the item that you want to report
on. Then select the Reports tab to display the available reports for that item.
Select the view link to view the report.
11-7
Using the OWB Browser
Header
Item Definition
Item Details
Header
The header defines the type of page you are looking at and has links to other
common pages.
The Title The title lets you know the type of page you are looking at. For example, in
this case you are looking at a Warehouse Builder Navigation page. There are also
Warehouse Builder Administration and Favorites pages.
The Home Link This link takes you to your default home page.
The Date The date shows you when the page is displayed. This is typically the
current date. If you print a report, this can be helpful to keep track of when the
report was run.
Add To My Favorites Select this link to add the current Navigation page to your
Favorites pages. Use this to bookmark important reports.
Browse My Favorites Select this link to view the page containing your favorite
Navigations and Reports that you previously book marked.
Logout Select this link to log out of the OWB Browser and Oracle Portal.
Item Definition
The Item Definition gives you the information you need to identify the item and its
type.
The Item Name The name of the item that you have navigated to. In the case above, it
is the Warehouse Builder Repository.
Help/Question Mark The Help link will take you to online help for the Navigation
Page
The Path The Path shows you the context of the item. It lists the items in the
hierarchy and also shows the type of each item. In the example above, Path:
Warehouse Builder: Repository, the Repository named Warehouse Builder is the
current item. You can click on any of the items in the path to make that the current
item.
The Role The role that you are logged in as is shown. In this case, it is Warehouse
Engineer.
11-9
Using the OWB Browser
Item Details
The Item Details section consists of a Tabbed Table. The Table will show different
information depending on which tab is currently selected.
The Properties Tab The Properties Tab displays property name-value pairs of the
current Item. The property names will be different depending on the type of the
current item.
The Contents Tab The Contents Tab lists the Items that are contained within the
current item. For example, if the current item was a table, then the Contents Tab
would list its columns, keys and foreign keys. This is the tab that you use when you
are drilling down into the OWB Repository (by using the Contents Action on an
item in the list). In the diagram below, the current item is the Warehouse Builder
repository and the list of items contained in this repository are Admin Project, Global
Shared, and My Project projects.
11-11
Using the OWB Browser
Note: You can also use the Contents action to select a new item
and then switch tabs when the screen has refreshed. The Properties,
Related and Reports actions can be thought of as shortcuts.
The Related Tab The Related Tab allows you to view relationships between items. For
example, if the current item is a table, then you can use it to identify which tables it
is related to with foreign keys. Like the Contents Tab, you can use this Tab to drill
down into items in the repository. When you make one of these items the current
item, the path will switch to represent the path of this new item.
The example below shows the foreign key associations with a table. The cardinality
of the association is shown before the name of the related objects, (0-*) symbolizes a
zero to many association.
11-13
Using the OWB Browser
The Reports Tab The Reports Tab shows you the available reports for the current
item. Each role has its own set of reports available for each item type, so if you are a
Warehouse User, you will see a different set of reports from a Warehouse Engineer.
Header
Filter
Navigation
Favorites
Report
Favorites
Header
The header defines the type of page you are looking at, in this case Warehouse
Builder Favorites, and has links to your default home page, your Favorites
customization page, and log out.
If you want to customize you Favorites page, select the Customize link. For details
about customizing your page, see Customizing Your Favorites Page on page 11-17.
Filter
You can narrow down the content of the two Favorite Tables by selecting a
particular Repository, Role or Item Type. Each of these Items has an All option.
11-15
Using the OWB Browser
Navigation Favorites
This list contains items that you chose to Add to My Favorites while it was the
current item in the Navigation Page. The table contains these columns:
Type The Type of the item together with an icon representing the type
Name The name of the Item. Selecting the name will take you straight to the
Navigation content page of that item.
Path The Path shows the fully qualified name of the item (as it would appear in the
Path field on the Navigator page). If you find the Page is to cluttered, then this
column can be removed using the Favorites Customize Options Page.
Actions These Actions allow you to jump to the specific tab in the Navigator for that
item.
Description You can give a description to a favorite in the Favorites Customize Page.
It will be displayed here.
Reports Favorites
This list contains Items that you chose to Add to My Favorites while it was the
current item in a Report Page. The table contains these columns:
Type The Type of the item together with an icon representing the type
Name The name of the Item. Selecting the name will take you to the Navigator with
this item as the current item.
Report The name of the Report. Selecting the report name takes you straight to the
report.
Path The Path shows the fully qualified name of the item (as it would appear in the
Path field on the Navigator page). If you find the Page is to cluttered, then this
column can be removed using the Favorites Options Page.
Description You can give a description to a favorite in the Favorites Customize Page.
It will be displayed here.
Options
Customization
Actions
11-17
Using the OWB Browser
Revert to Defaults The display settings will be reverted back to the install defaults.
Apply Applies the changes without taking you back to the previous page
OK Applies the changes and takes you back to the previous page
Cancel Ignores any changes you may have made and takes you back to the previous
page
Show All The Navigation List and the Reports List will contain all entries that you
have added
Limit List to n Favorites You can choose the maximum number of rows you wish to
see in the tables. If there are more items than can be shown, you will see Next and
Previous buttons that you can use to see the remaining items
Show / Hide Descriptions You can stop the description column from being displayed.
Show / Hide Path You can stop the path column from being displayed. The path can
be quite long and can clutter the screen.
Summary Reports
Summary Reports are run against a Module. Each Summary Report presents a list
of items contained within the Module. Only items of a particular type are displayed.
The type of items are determined by the choice of Summary Report. For example, A
Table Summary Report will list all Tables in the Module. A Materialized View
Summary Report will list all Materialized Views in the Module. There is also some
header information that identifies the Module. Selecting the name of an item will
take you to the Detailed Report for that Item.
11-19
Available OWB Reports
Detailed Reports
Detailed reports provide comprehensive information about a particular item. For
example, a Detailed Table Report will list information about the tables’s columns,
keys, foreign keys and its physical configuration parameters.
The Detailed Reports are:
Report Purpose
Detailed Installation Report contains information on Projects
Report Purpose
Detailed Project Report contains information on Modules and Business
Areas
Detailed Module Report contains information on Facts, Dimensions,
Function Libraries, Materialized Views, Sequences,
Tables, Views, Transform Maps, Files and physical
configuration parameters
Detailed Dimension Report contains information on Hierarchies, Levels, Level
Attributes and physical configuration parameters
Detailed Fact Report contains information on Measures, Dimensions and
physical configuration parameters
Detailed Table Report contains information on Columns, Keys, Foreign
Keys and physical configuration parameters
Detailed View Report contains information on Columns, Keys, Foreign
Keys and physical configuration parameters
Detailed Materialized View Report contains information on Columns, Keys, Foreign
Keys, and physical configuration parameters
Detailed Sequence Report contains information on Columns and physical
configuration parameters
Detailed File Report contains information on Records and physical
configuration parameters
Detailed Record Report contains information on Fields
Detailed Business Area Report contains information on items in the Business Area
Detailed Function Library Report contains information on Functions and physical
configuration parameters
Detailed Function Report contains information on Parameters and Function
Implementations
Detailed Transform Map Report contains information on Object Uses, Map
Components, Item Maps and physical configuration
parameters
11-21
Available OWB Reports
Implementation Reports
Implementation Reports can be run on Dimensions and Facts. They provide
information on how real items are used to implement abstract items.
The Implementation Reports are:
Report Purpose
Fact Implementation Report provides information on Tables that implement the
Fact, Columns that implement the Measures,
Foreign Keys that implement the Fact to Dimension
Use
Dimension Implementation Report provides information on Levels and the tables that
implement them, Level Attributes and the Columns
that implement them
Impact Analysis Reports Impact Analysis Reports list all items belonging to the
subject of the report, that are used as a source of a mapping. The name of the
mapping and the name of the item that it is mapped to will also be displayed. The
report basically gives a one step impact analysis for all items of an object.
For example, if you wanted to list all the columns in a table that are used as a source
in any maps, this is the report you would use.
Lineage Reports Lineage Reports are similar to Impact Analysis Reports. Rather than
reporting the items that are the source of a map, it reports items that are the targets
of a map.
Here is a section from an Impact Analysis report
11-23
Available OWB Reports
This diagram shows how the Table, F006_SRC, is used as an input to a splitter. The
outputs of this splitter feeds into a materialized view, MatView1, and two other
views, View3 and View4. Each of these Views are used as inputs to a Join that has
an output to the Table F006_TGT.
11-25
Creating Custom Reports
Note: You can customize the appearance of the custom report you
are creating by continuing to click Next. You can also select Edit
from the list of actions next to the report after the report is created.
Your queries need to reference a database link to the OWB repository. You can use
the link created during the OWB Browser installation and named "default_owb_
link". The SQL query for a report can only call PUBLIC db link or links within the
application schema in which a report resides.
Reports can reside in a schema other than OWB Browser schema; however it has to
be executable by the OWB Browser schema. To grant execution privilege of a portal
report, go to Oracle Portal Home Page > Database Objects > Database Schemas >
Report Schema > Report Package > Grant Access.
For a simple project report which lists the information systems it contains, a suitable
query is:
select * from all_iv_information_systems@default_owb_link where project_id = :id
When run from the OWB Browser Navigation pages, the marker :id will be
automatically substituted at runtime by the appropriate value.
You should verify that this statement executes successfully from SQL*Plus. Make
sure that you are logged on as the user that owns the report. You can get this from
the Develop page for the report. When doing this you need to replace the marker
:id by a valid project_id. You should also verifying that you can run the report
from the Oracle Portal. From the Develop page, select the Customize link, and enter
a valid project_id in the edit box labelled "Id" and then click Run Report.
11-27
Creating Custom Reports
11-29
Creating Custom Reports
11-31
Creating Custom Reports
This chapter describes the reserved words that should not be used to name objects
in Oracle Warehouse Builder.
■ Reserved Words
Reserved Words
The following table contains a listing of reserved words. Do not use these words as
physical object names within an Oracle Warehouse Builder Project.
Tool Tips
Rolling the mouse pointer over Node an Attribute, an Attribute Group the canvas
will show a Tool Tip with information (e.g. non-truncated name, data type,
direction, etc.). Note: roll-over for a Node, Attribute Group, Attribute while
performing an Mapping will cause the object under the pointer to be high-lighted if
the object is a legal target.
Keyboard Operations
You can navigate the Mapping Canvas using the "Tab" key and the keyboard
"Arrow" keys.
The "Tab" key will navigate the user to the "Next" object on the canvas and select it.
When no objects are selected, the system will select the node which is proximity is
closest to the left/upper corner of the canvas.The order of navigation is determined
by the position in which the objects appear on the canvas; the system will follow a
"Z" navigation path:
Within a selected attribute set, the user can navigate between the attribute (groups),
using the up and down keys. When no attribute (group) is selected, the system
navigates to the first attribute (group) whichever of the up/down key is entered.
When positioned on an input attribute, the left arrow key will allow the user to
navigate to incoming mapping line (there can only be one incoming mapping line
per Attribute). The right arrow key is not active
When you select an object and then press the delete key, the selected object will be
deleted from the canvas (and the Mapping). You can delete the following objects
from the canvas using the "Del" key:
■ Operators (but not attribute groups or attributes). You will be prompted to
confirm the delete before the delete takes place.
■ Mapping lines coming from or arriving at an individual Attribute. You cannot
delete mapping lines that originate from, or arrive at, an Attribute Group or
Header (without ‘Or Header’).
Other Dialogs
When adding or editing operators, OWB will return dialogs in which you enter
information that will define the operator. This section describes those operators.
Management
Data Model
Implementation Model
Classification Model
Transformation/Mapping Model
This section describes how to retrieve and store data from XML documents in a
target schema using the XML Toolkit. This toolkit can extract data from XML
documents, which can reside in a variety of sources and formats, and store that data
in Oracle8i tables, CLOB database columns, Advanced Queues, and other Oracle8i
database objects.
An XML document is one that conforms to the Extensible Markup Language (XML)
specification. XML is a subset of SGML, and this simplified dialect allows developers
to design their own customized markup languages which can be optimized for
delivery of documents on the World Wide Web and to support implementation of
e-commerce and numerous other applications.
The XML Toolkit is set of PL/SQL procedures, functions, and packages which you can
use to retrieve and load data from XML documents into Oracle8i database objects.
For example, you can retrieve data from an XML document that resides in a file and
load it into several tables that reside in a data warehouse.
Two Entrances
A transformation can invoke the XML Toolkit using one of the following entry
points into the API:
■ The PL/SQL procedure wb_xml_load(control_file)
■ The PL/SQL function wb_xml_load_f(control_file)
Both of these calls extract and load data from XML documents into database targets.
The function, however, returns the number of documents read during the operation. The
control file, itself an XML document, specifies the source of the XML documents, the
targets, and any runtime controls.
After the transformation has been defined, a mapping typically calls the
transformation as a pre-map or post-map trigger.
The following example illustrates a script that can be used to implement an OWB
transformation which extracts data from an XML document stored in the file
products.xml and loads it into the target table books.
begin
wb_xml_load(
’<OWBXMLRuntime>’ ||
’<XMLSource>’ ||
’ <file>\ora817\GCCAPPS\products.xml</file>’ ||
’</XMLSource>’ ||
’<targets>’ ||
’ <target XSLFile="\ora817\XMLstyle\GCC.xsl">books</target>’ ||
’</targets>’ ||
’</OWBXMLRuntime>’);
end;
Notes:
■ The file names for the document source and the XSL style sheet
are relative to the node that supports the Oracle8i instance.
■ The white space in the example control file that separates the
text from the concatenate characters is unnecessary and is
included only to improve readability.
■ The control file is a well-formed XML document. See the control
file’s Document Type Definition (DTD) on page D-19.
The XML Document The XML document below (ORDERS) resides in a file named
\ora817\examples\ex1.xml. This file name is relative to the Oracle8i database instance.
<ORDERS>
<?xml version="1.0"?>
<ROW>
<ID>100</ID>
<ORDER_DATE>2000.12.20</ORDER_DATE>
<SHIPTO_NAME>Jeff Q. Vintner</SHIPTO_NAME>
<SHIPTO_STREET>500 Marine World Parkway</SHIPTO_STREET>
<SHIPTO_CITY>Redwood City</SHIPTO_CITY>
<SHIPTO_STATE>CA</SHIPTO_STATE>
<SHIPTO_ZIP>94065</SHIPTO_ZIP>
</ROW>
</ORDERS>
The Control File The control file below directs the XML Toolkit to extract and load the
data from the ORDERS document into the Purchase_Orders table.
’<OWBXMLRuntime>’||
’<XMLSource>’||
’<file>\ora817\examples\ex1.xml</file>’||
’</XMLSource>’||
’<targets>’||
’<target dateFormat="yyyy.MM.dd">Purchase_Orders</target>’||
’</targets>’||
’</OWBXMLRuntime>’
About the dateFormat Attribute The dateFormat attribute defined for the target element is
necessary so that the XML SQL Utility (XSU) can correctly store the text data in the
table in the order_date column which has a data type of DATE. Refer to the Oracle8i
XML Reference Guide Release 3 (8.1.7) for additional information.
from the XSL processor can store the
stored in various modes. Each example is a control file. When a transformation uses
the wb_xml_load procedure of the wb_xml_load_f function to call the XML Toolkit, it
must include a complete control file.
wb_xml_load (control_info VARCHAR2)
A Builder Transformation If you create a transformation using this control file and call
the transform from a pre-map trigger, the following actions occur:
1. The XML Toolkit reads the document ORDERS into a buffer and parses its data.
2. The Toolkit calls Oracle8i XML SQL utility (XSU) to load the parsed data into the
Purchase_Orders table.
Inexact Matches
When the element names in the XML document fail to match the column names in
the target column, you must include an XSL style sheet that reformats the data
before it is loaded into the target table. This example shows you how to reformat the
data by specifying a style sheet using the XSLFile attribute. The control file extracts
and reformats the data before loading it into the Purchase_Orders table.
The XML Document The XML document below (purchaseORDER) resides in the file
\ora817\examples\ex2.xml. This file name is relative to the Oracle8i database instance.
<purchaseOrder>
<id>103123-4</id>
<orderDate>2000-10-20</orderDate>
<shipTo country="US">
<name>Alice Smith</name>
<street>123 Maple Street</street>
<city>Mill Valley</city>
<state>CA</state>
<zip>90952</zip>
</shipTo>
<comment>Hurry, my lawn is going wild!</comment>
<items>
<item>
<item>
<partNum>845-ED</partNum>
<productName>Baby Monitor</productName>
<quantity>1</quantity>
<USPrice>39.98</USPrice>
<shipDate>1999-05-21</shipDate>
</item>
</items>
</purchaseOrder>
The Target Table The column names in the target table (Purchase_Orders) are described
in the previous example on page D-6.
The Control File The control file below directs the XML Toolkit to extract and reformat
the data from the purchaseORDER document before loading it into the target table
Purchase_Orders.
’<OWBXMLRuntime>’||
’ <XMLSource>’||
’ <file>\ora817\examples\ex2.xml</file>’||
’ </XMLSource>’||
’ <targets>’||
’ <target XSLFile="\ora817\examples\ex2_1.xsl" dateFormat="yyyy-MM-dd">’||
’ Purchase_Orders||’
’ </target>'||
' </targets>'||
'</OWBXMLRuntime>'
The only addition to this control file is the XSLFile attribute for the element target.
The Style Sheet The style sheet itself is a straightforward XML document that
associates a parsed data item from the XML document with a column name in the
A Builder Transformation If you create a transformation using this control file and call
the transform from a pre-map trigger, the following actions occur:
1. The XML Toolkit reads the document ORDERS into a buffer and parses its data.
2. The Toolkit uses the style sheet to associate parsed data with table columns.
3. The Oracle8i XML SQL utility (XSU) loads the parsed data into Purchase_Orders.
The Transformation then returns control to the mapping.
Multiple Targets
This control statement extracts and reformats data from the purchaseORDER document
and stores it into two target tables: Purchase_Orders and Items. The tables have
different column names, and so a style sheet must be specified for each target.
The XML Document The XML script for the previous example on page D-7 describes
the source document (purchaseORDER).
The Target Tables The column names for Purchase_Orders are described on page D-6; the
column names for items are not required to understand the control file script.
The Control File The control file below directs the XML Toolkit to extract the data
from the BookAreUs document by dividing the document according to its catalogs,
and then load each part into the target table books.
'<OWBXMLRuntime>'||
clientOrders
ID Number
xmlOrder CLOB
voiceOrder BLOB
clientOrder BLOB
The XML Document The XML document which is stored in the first row of the
clientOrders table is exactly the same as the order described in the first example. The
complete XML document that defines the order is described on page D-5.
Comments on the Control File A few comments are in order regarding this control file,
especially regarding the values assigned to attributes.
1. The first row of the table is specified as an attribute of the CLOB element:
CLOB whereClause="where id=’’1’’"
The ID column of the clientOrders table identifies each row.
2. The dateFormat attribute describes the format of the character value parsed from
the ORDER_DATE element. This information is necessary to load the parsed data
into the Date datatype column of Purchase_Orders.
3. A style sheet is not required because the element names in the XML document
exactly match the column names of the Purchase_Orders table. If they did not,
then a style sheet would be required.
4. You could store the data parsed from the XML document in multiple tables by
including additional target elements. Of course, a style sheet would be required
whenever the column names of a target table fail to match the XML elements.
The XML Document The XML documents which are periodically placed on the
newOrders queue is exactly the same as the order described in the first example. The
complete XML document that defines the order is described on page D-5.
The Control File The control file below directs the XML Toolkit to extract data from
documents that are periodically place on the newOrdersAQ and store them into the
Purchase_Orders table.
’<OWBXMLRuntime>’||
’<XMLSource>’||
’<AQ wait="WAIT" waitTime="WAIT_FOREVER">’||
’<AQName>newOrders</AQName>’||
’</AQ>’||
’</XMLSource>’||
’<targets>’||
’<target dateFormat="yyyy.MM.dd">Purchase_Orders</target>’||
’</targets>’||
’</OWBXMLRuntime>’);
The waitTime attribute is configured so that a dequeue call wait until an entry is
available on the queue before it is released.
The XML Document The XML documents which are periodically placed on the
newOrdersAQ queue is exactly the same as the order described in the first example.
The complete XML document that defines the order is described on page D-5.
The Control File The control file below directs the XML Toolkit to extract data from
documents that are periodically place on the newOrdersAQ Advanced Queue and
store them into the Purchase_Orders table.
’<OWBXMLRuntime>’||
’<XMLSource>’||
’<AQ wait="WAIT" waitTime="20">’||
’<AQName>newOrdersAQ</AQName>’||
’<ObjectType>xmlMessages</ObjectType>’||
’<CLOBColumn>xmlEntry</CLOBColumn>’||
’</AQ>’||
’</XMLSource>’||
’<targets>’||
’<target dateFormat="yyyy.MM.dd">Purchase_Orders</target>’||
’</targets>’||
’</OWBXMLRuntime>’);
The waitTime attribute specifies that a dequeue call made on an empty queue will
wait a maximum of twenty seconds for a document to be placed on the queue.
Source Elements
This table describes all the elements used to define sources of XML documents and
their respective attributes.
Name Description
targets Specifies all the database targets. You specify individual targets
using target elements.
Attributes: None.
target Specifies the target of a database load.
Attributes:
truncateFirst
If TRUE, then truncate the target object before the load.
XSLfile
Address of the XSL style sheet which the Toolkit uses to
associate parsed data with individual target columns.
XSLRefURL
URL the Toolkit uses to resolve external references made by
the XSL style sheet
LoadType
Specifies the load operation as INSERT, UPDATE, or DELETE.
When UPDATE or DELETE is specified, truncateFirst and
truncateBeforeEachLoad are set to FALSE.
The following attributes are all XU attributes which are defined
in the Oracle8i XML Reference Guide Release 3 (8.1.7).
ignoreCase
commitBatch
rowTag (to set, use VARCHAR ‘NULL’)
dateFormat
batchSize
keyColumnList
updateColumnList
Runtime Control
This table describes elements that determine the runtime environment.
This appendix contains the following topics describe Batch Services (BS) in OWB 3i:
■ Overview
■ Batch Service Interface
■ Batch Service Command Line Feature
Overview
The Batch Services (BS) feature in Oracle Warehouse Builder allows users to run
batch oriented operations like validation, import or generation off-line. These
operations are available within the OWB Client Application, but there are a couple
of reasons why these operations are more suitable to be run as batch services:
Bulk metadata operations on the OWB repository can be time consuming
(multi-hour) processes which preferably should be run off-line and/or scheduled by
a system administrator
BS in OWB, provides a framework with the necessary characteristics to run batch
oriented operations separate from the OWB Client Application.
1. oracle/wh/service/sdk/batchservice/WBBatchInvokeAPI.java
2. oracle/wh/service/impl/batchservice/WBBatchInvoke.java
The Batch Service interface provides the following methods to enable third party
developer to access OWB 3i through batch interaction:
■ Open and Close Repository Connection
■ Projects
■ Applications
■ Metadata Import
■ Validation
■ Generation
■ Deployment
Close the connection after committing the repository data. This allows the user to
have control over committing the data before closing the connection.
public void commitCloseConnection() throws WBException,
SQLException;
Projects
Get an array of projects that are currently available.
Make a project a current project. This can be done by providing project name to the
current method.
public void setCurrentProject (String projectName) throws
WBException;
Applications
To get all the applications that are present within a project we use the getModules()
method. It returns an array of application names that are present in given Project.
public String[] getModules() throws WBException;
Metadata Import
The following method allows importing of MDL exported data as an inputstream.
The log file parameter must include the full path name. The Mode denotes the
mode of importing (Create, Update). usePhyiscal Name parameter is to ensure that
the user uses physical name while importing.
public void importMetaData(
InputStream importFileStream, String logFile,
String mode, boolean usePhysicalNames)
throws WBException, IOException;
The following method allows the import of Metadata using an MDL exported file
without using the character set. The default character set is used.
public void importMetaData(
String m_import_file, String m_log_file,
String m_mode, boolean m_usePhysicalNames)
throws WBException;
The following method allows the import of Metadata using an MDL exported file.
A valid character set string would look like WE8MSWIN1252
public void importMetaData(
String m_import_file, String m_log_file,
String m_mode, boolean m_usePhysicalNames,
String characterSet)
throws WBException;
Validation
An element like a dimension or a table needs to be validated. That can be done by
using the validate method. It needs an application name, the element name, and
type of the element. The typename could be any of the following: TABLE, VIEW,
MATERIALIZEDVIEW, DIMENSION, FACT, SEQUENCE, MAPPING.
public boolean validate(
String appName, String elementname, String typename)
throws WBException;
Once the validation has been performed. We can get the validation results in an
array of strings.
public String[] getValidationResults(
String appName, String element, String typeName)
throws WBException;
We can display the validation results in console by using the following method:
public void displayValidationResults (
String appName, String element, String type)
throws WBException;
Generation
To generate an element use the following generate method. The typename could be
any of the following: TABLE, VIEW, MATERIALIZEDVIEW, DIMENSION, FACT,
SEQUENCE, MAPPING.
public void generate(
String appName, String elementname, String typename)
throws WBException;
Deployment
The following methods allow you to deploy your previously generated scripts to
either a file system or database. The typename could be any of the following:
TABLE, VIEW, MATERIALIZEDVIEW, DIMENSION, FACT, SEQUENCE,
MAPPING.
Deployment in a Database
public void deployInDatabase(
String appName, String elementname, String typename,
String user, String passwd,
String host, String port, String sid)
throws WBException, Exception;
Note: Batch Services does not generate objects when you run the
deployment methods. You must generate the scripts first by using
the generation method.
Note: The project name may have spaces between them. Since the
Kornshell does not recognize a string enclosed in quotes as one
argument, use the standard typesetter ("_^") notation of inserting
space to denote spaces.
For Example:
■ "My Project" (with one space) should be written as "My_^Project" in
the command line.
■ "My Project" (with two spaces) should be written as "My_^_^Project"
in the command line.
Validate
batchservice_class.ksh <user> <passwd> <host> <SID> <port> -validate <project
name> <application name> <element name> <element type> [<logDir>]
For Example:
batchservice_class.ksh owb34 owb34 sroychow-pc3 owbqa817 1521 -validate "My_
Generate
batchservice_class.ksh <user> <passwd> <host> <SID> <port> -generate <project
name> <application name> <element name> <element type> [<logDir>]
For Example:
batchservice_class.ksh owb34 owb34 sroychow-pc3 owbqa817 1521 -generate "My_
^Project" im1 tab1 TABLE
For Example:
batchservice_class.ksh owb34 owb34 sroychow-pc3 owbqa817 1521 -deployfile "My_
^Project" im1 tab1 TABLE /tmp/scott
where
<duser> = runtime database
<dpasswd> = runtime password
<dhost> = runtime database host name
<dSID> = SID of the runtime database
<dport> = port number of runtime database
For Example:
batchservice_class.ksh owb34 owb34 sroychow-pc3 owbqa817 1521 -deploydb "My_
^Project" im1 tab1 TABLE owb34run owb34run sroychow-pc3 ora817 1521
Type 1
batchservice_class.ksh <user> <passwd> <host> <SID> <port> -import <import file
name> <log file name> < mode> <use_physical_names >
where
<mode> = CREATE, REPLACE, UPDATE, or INCREMANTALUPDATE
<use_physical_names> = true or false
For Example:
batchservice_class.ksh owb34 owb34 sroychow-pc3 owbqa817 1521 -import class_
project.mdl log1.log CREATE true
Type 2
batchservice_class.ksh <user> <passwd> <host> <SID> <port> -import <import file
name> <log file name> < mode> <use_physical_names > <character set>
where
<mode> = CREATE, REPLACE, UPDATE, or INCREMANTALUPDATE
<use_physical_names> = true or false
For Example:
batchservice_class.ksh owb34 owb34 sroychow-pc3 owbqa817 1521 -import class_
project.mdl log1.log CREATE true WE8MSWIN1252
Type 3
batchservice_class.ksh <user> <passwd> <host> <SID> <port> -import <import file
name> <log file name> < mode> <use_physical_names > <ignoreUniversalID>
<character set>
where
<mode> = CREATE, REPLACE, UPDATE, or INCREMANTALUPDATE
<use_physical_names> = true or false
<ignoreUniversalID> = true or false
For Example:
batchservice_class.ksh owb34 owb34 sroychow-pc3 owbqa817 1521 -import class_
project.mdl log1.log CREATE true true WE8MSWIN1252
Parameter file
=======================================================
# pound sign is for comments
# validate "My_^Project" <application Name> <element Name> <element Type> <logdir>
validate "My_^Project" IM1 TAB1 TABLE /tmp/.owbObjects
# generate
For Example:
batchservice_class.ksh owb34 owb34 sroychow-pc3 owbqa817 1521 -paramfile
batchservce.param owb34run owb34run sroychow-pc3 ora817 1521
If the parameter file has not deployment in database action, then it is enough for the
user to provide. Therefore, this option will work for Validation, Generation, and
Deployment into File Systems.
batchservice_class.ksh owb34 owb34 sroychow-pc3 owbqa817 -paramfile
batchservce.param
UNIX
■ shiphome/owb/bin/solaris/batchservice.ksh
DOS
■ shiphome/owb/bin/win32/batchservice.ksh
The log file has the following typical structure. The messages are shown in italics. The
action and the date of activity are highlighted in bold.
Action = validate Date = Mon Apr 02 14:30:26 GMT-08:00 2001
project = im1, element = tab1, type = TABLE,
"ERROR", "No Columns", "Add new Column"
Validation Examples
Example 1
BEGIN -----------------------------------------------
Input:
owb34 owb34 sroychow-pc3 owbqa817 1521 -validate My_^Project im1 tab1
TABLE
Output:
directory = /owb/shiphome/owb/bin/im1_tab1_validate.log
END -----------------------------------------------
Example 2
BEGIN -----------------------------------------------
Input:
owb34 owb34 sroychow-pc3 owbqa817 1521 -validate My_^Project im1 dim1
DIMENSION
Output:
directory = /owb/shiphome/owb/bin/im1_dim1_validate.log
Output:
Import file =/m/whdev/2.0/owb/bin/MyPPP.mdl
Log file =/m/whdev/2.0/owb/bin/log.log
Mode =CREATE
Use Physical Names =true
5 Percent Complete
10 Percent Complete
15 Percent Complete
20 Percent Complete
25 Percent Complete
30 Percent Complete
35 Percent Complete
40 Percent Complete
44 Percent Complete
49 Percent Complete
54 Percent Complete
60 Percent Complete
65 Percent Complete
70 Percent Complete
75 Percent Complete
80 Percent Complete
85 Percent Complete
90 Percent Complete
95 Percent Complete
Import successful.
END -----------------------------------------------
Example 2
BEGIN -----------------------------------------------
Input:
owb34 owb34 sroychow-pc3 owbqa817 1521 -import /m/whdev/2.0/owb/bin/my_
project-20010330_1938.mdl /m/whdev/2.0/owb/bin/log.log CREATE true
Output:
Import file = /m/whdev/2.0/owb/bin/my_project-20010330_1938.mdl
Example 3
BEGIN -----------------------------------------------
Input:
owb34 owb34 sroychow-pc3 owbqa817 1521 -import
/m/whdev/2.0/owb/bin/doesNotExist.mdl /m/whdev/2.0/owb/bin/log.log CREATE
true
Output:
Import file =/m/whdev/2.0/owb/bin/doesNotExist.mdl
Log file =/m/whdev/2.0/owb/bin/log.log
Mode =CREATE
Use Physical Names =true
*************************************************************
Error: MDL-1122 Import data file /m/whdev/2.0/owb/bin/doesNotExist.mdl not found
*************************************************************
*************************************************************
Error: java.lang.NullPointerException
*************************************************************
Generation Example
BEGIN -----------------------------------------------
Input:
owb34 owb34 sroychow-pc3 owbqa817 1521 -generate My_^Project im1 dim1
DIMENSION
Output:
directory = /owb/shiphome/owb/bin/admin/im1_dim1_generate.log
Output
directory = /owb/shiphome/owb/bin/admin/im1_dim1_deployFS.log
END -----------------------------------------------
Input:
owb34 owb34 sroychow-pc3 owbqa817 1521 -deploydb My_^Project im1 dim1
DIMENSION sroychow sroychow sroychow-pc3 ora817 1521
Output:
directory = /owb/shiphome/owb/bin/admin/im1_dim1_deployDB.log
END -----------------------------------------------
Example 2
BEGIN -----------------------------------------------
Input:
owb34 owb34 sroychow-pc3 owbqa817 1521 -deploydb My_^Project im1 dim1
DIMENSION customerDB customerDB sroychow-pc3 ora817 1521
Output:
directory = /owb/shiphome/owb/bin/admin/im1_dim1_deployDB.log
END -----------------------------------------------
Overview
There are many reasons for creating and maintaining data warehouses. One of them
is the expected high performance that a data warehouse could bring to business
applications, such as DSS, OLAP, and Data Mining. These applications share a
salient characteristic: they often need to query a large amount of historical data
organized along a time dimension. The horizontal data partitioning technology,
available since Oracle 8TM, can effectively help the queries cut down the amount of
data that have to be processed by many levels of magnitude. This is done through
an automatic mechanism in the Oracle SQL optimizer known as partition pruning.
Data partitioning is also an enables the backup and/or removal of dormant data
that has aged out over time.
The way data is partitioned is a key data warehouse design issue, which must be
considered after the logical design of a data warehouse. Oracle Warehouse Builder
3i provides assistance in partitioning various physical objects, including tables,
dimensions, facts, materialized views, and indexes.
Starting with OWB3i, design for data partitioning has one added importance: it can
also be leveraged within a certain context to achieve significant performance gains
in the process of loading a data warehouse. This new OWB runtime performance
feature is known as Partition Exchange Loading (PEL).
PEL technique performs “loading” of new data by “exchanging” them into a target
table as a partition. What actually get exchanged are merely identities, in the
following manner. The table that holds the new data takes over the identity of one
empty partition from the target table; at the same time, this empty partition
assumes the identity of the source table. The whole exchange process is purely a
DDL operation. No data movement is involved. The general idea of PEL is depicted
in Figure F–1.
In Figure F–1, data from the “Source” table needs to be inserted into a target table
consisting of four partitions: Target_P1, Target_P2, Target_P3, and Target_P4.
Suppose that the new data needs to be loaded into Target_P3. The partition
exchange operation will swap the names on the data objects. The actual data never
moves. After the exchange, the “Source” table is renamed “Target_P3”, and the
“Target_P3” is renamed “Source”. Most importantly, the target table is still
composed of four partitions named Target_P1, Target_P2, Target_P3, and Target_P4.
The partition exchange operation provided by Oracle8TM completes the loading
process without generating the need for data movement.
Figure F–1 shows a highly simplified case where only one table is presented as a
source, and there is an implicit assumption that this source table is readily available
for changing its identity. Being a general data warehouse design tool, OWB
operations are not this simple. OWB must be prepared for the more general
possibility, that the “source” may be the results from a join of multiple source tables.
Some of these source tables may also be located in other databases.
In general, there may not be a single local table for partition exchange. The design
decision in OWB3i is to automatically create a temporary table which “materializes”
results from source processing before the partition exchange actually happens.
Will the materialization of results from source processing hurt performance? Will it
render the PEL useless since data movement (i.e., DML) has not been avoided? In
the case that there is no single local table for partition exchange, it is quite obvious
that avoiding DML entirely is not possible. As such, the PEL’s performance
potential can only be gauged by an examination of how it does DMLs, and
specifically, the INSERTs. The remainder of this section presents a brief explanation
of how PEL works. This should answer the above questions. Getting familiar with
the technical background will be very important to you if you plan to use the
Partition Exchange Loading feature.
Overhead-Free INSERT
When you use PEL, a new temporary or staging table is automatically created to
hold results from source processing. Because this staging table is purely internal to
the PEL process and invisible to general users, the PEL process does not create any
indexes and constraints before the INSERT operation is completed. This measure
can drastically reduce the amount of data that need to be processed due to index
maintenance and foreign key lookups.
In contrast, using the normal non-PEL style processing requires data to be directly
inserted into the target that often has to carry several huge indexes and many
constraints. Of course, you could choose to drop all the indexes and disable all the
constraints before loading, but when the target has accumulated enough historical
data, recreating indexes and re-enabling constraints after loading may be a very
costly decision.
Error Handling
Whenever an error is encountered during inserting into the temporary table,
building indexes, or enabling constraints, the temporary table is dropped and the
error logged. The target is not altered. Data in the target is still in its previous state.
In contrast, if the PEL method is not used, several factors can hinder the loading
process from fully utilizing the CPU resource. First, index maintenance can generate
more I/O requests and reduce CPU utilization. (The PEL technique would have no
index maintenance during insert.) Second, when loading into a partitioned table, a
more serious issue results from the fact that Oracle 8i assigns only one server
process to each partition. If all data must go into same partition as is true for
incremental loading of daily or monthly data, the loading process runs serially, as
shown in Figure F–2.
log files daily. Each row of source data is about one mouse click from a Web user.
Depending on the popularity of the site, as much as several million rows per day
could be generated. These data then need to be transformed and loaded into a data
warehouse holding a lot more historical data, e.g., from the past five years. For this
type of situations, the PEL will be the key to scalable loading performance that
makes the loading time correlated only to the amount of new data.
A third condition under which the PEL can help greatly is when all the new data must be
loaded into the same partition in a target table, as shown in Figure F–2. If the data
warehouse collection is scheduled on a regular basis, this condition can normally be
satisfied.
Again, take the clickstream warehouse as an example. If the target table is
partitioned by day, then all the daily data will have to be loaded into one partition.
The non-PEL loading will go serially, but the PEL will be able to run parallel
direct-path INSERT.
In case the target table is partitioned by month and the collection of new clickstream
data is still scheduled daily, new data may have to be inserted into a nonempty
partition. In case the target partition is not empty, the PEL process will not actually
perform partition exchange. It will directly insert new data into one explicitly
specified partition, still using parallel direct-path INSERT. The drawback on
performance is that the insertion is accompanied by simultaneous index and
constraint maintenance. Therefore, using the PEL method to load data into a
nonempty partition will go slower than if the target partition is empty.
Still a third case in our clickstream example: assume the target table is partitioned
by hour and new data is still collected daily. New data collected from one day will
be able to go into separate partitions in parallel. In this case, the PEL is not useful
anymore. In fact, in OWB 3i, the PEL does not work for such a case. Table 1 below
summarizes these three possibilities.
As Table F–1 shows, the PEL method can be used in the case that the loading size is
less than or equal to the partition granularity of the target. In OWB 3i, you will be
able to specify the target partition granularity. But there is currently no validation to
check if the loading size is not larger than the partition granularity.
Suppose it has been decided that all new data to ORDER_SUMMARY table will
always go into same partition, and most times they go into an empty partition.
Partition Exchange Loading into the ORDER_SUMMARY table appears to be a
good strategy under these conditions.
In order to configure the mapping to use PEL, open the Properties inspector. The
Properties inspector for the GET_SALES_SUMMARY is shown above in Figure F–4.
In the property inspector window and within the “Operators” category, each of the
sources and the target starts a property group. Expand the property group for
ORDER_SUMMARY as in Figure F–4. You will see a subgroup labeled Partition
Exchange Loading. Within this group, two properties must be configured. The first
is a Boolean property named “Use PEL”. Set to “true” for this property. The other
property is named “Partition Granularity.” This property tells OWB’s PL/SQL code
generator how the target table (ORDER_SUMMARY) is partitioned. There are seven
levels of partition granularity you can choose from, as shown in Figure F–4.
Suppose the ORDER_SUMMARY table is partitioned by day. We then select “Day”
from the drop-down list as the value for the “Partition Granularity” property. And
that is all we need to do on the mapping in order to enable the Partition Exchange
Loading feature. Once the PEL is enabled, the OWB code generator will generate
different kind of batch processing code.
The partition naming convention is in fact very straightforward. For example, the
partition name “Y2001_Q2_M05_W1_D03” corresponds to Year 2001, Quarter 2,
Month 5, Week 1, and Day 3, which is exactly May 3, 2001. But can the same
partition be simply named “Y2001_M05_D03” without the quarter and week
information? The answer is no. The partition name must contain information of all the
time levels leading to the intended granularity.
The detailed naming scheme is designed for ease of partition administration later. If
the DBA decides to merge all the daily partitions into monthly partitions, he/she
can easily find which partitions to merge together based on their names. For
example, all the daily partitions for May 2001 are named like “Y2001_Q2_M05*”.
(Here the asterisk means a wildcard matching a string of characters.) They can be
merged together to form a renamed partition “Y2001_Q2_M05”. Furthermore, this
naming scheme helps create a consistency between the partitions’ name ordering
and value ordering. That is, if the partitions are sorted based on the partition names,
the partitions holding smaller DATE values will appear earlier.
However, to many people, figuring out to which quarter and week a date belongs,
as is required by the naming convention, is not as immediate as figuring out its day,
month, and year components. This may lead to errors during partition creations. If
partitions are created with errors, it will be extremely difficult to correct them later.
To help eliminate errors during partition creations, you may find the two PL/SQL
functions toward the end of this appendix very useful.
"Function Example 1: GET_PN" on page F-18 contains source code for a stand-alone
PL/SQL function named get_pn, which stands for “get partition name.” It can help
OWB users calculate partition name from a given date value. For example, if we
want to find the correct partition name for the partition containing value May 3,
2001, and we want to partition target table by day, the correct partition name can be
obtained by issuing a SQL statement that calls the get_pn function in the following
manner.
SQL> SELECT get_pn(TO_DATE(’03-MAY-2001’,’DD-MON-YYYY’),
2 ’DAY’) partition_name
3 FROM DUAL;
PARTITION_NAME
---------------------
Y2001_Q2_M05_W1_D03
The first argument is a date value, and the second argument is the partition
granularity. The function returns the correct partition name under the intended
partition granularity for the partition containing the date value. The above example
shows that the correct partition name for the partition containing May 3, 2001 is
“Y2001_Q2_M05_W1_D03.” If, however, the second argument to the get_pn
function was “Month” instead of “Day”, the partition name result would be
“Y2001_Q2_M05”.
After all the partitions are added with correct names, the partitions must be further
configured for their “VALUE LESS THAN” properties as shown in Figure F–6
below. Figure F–6 shows that the “VALUE LESS THAN” property for partition
“Y2001_Q2_M05_W1_D08” is being configured. The property value is “TO_
DATE(‘09-05-2001’,’DD-MM-YYYY’)”. Using the name and the “VALUE LESS
THAN” property, OWB will generate a DDL script for creating the partitioned table.
Part of the DDL script related to the partition shown in Figure F–6 will read as
follows.
. . .
PARTITION Y2001_Q2_M05_W1_D08
VALUES LESS THAN (TO_DATE(‘09-05-2001’,’DD-MM-YYYY’)),
. . .
The get_vc function is used in a similar manner as get_pn. First, find any value that
would fall within the partition you are trying to calculate the “VALUE LESS
THAN” property value. Then call the get_vc function as follows.
SQL> SELECT get_vc(TO_DATE(’08-MAY-2001’,’DD-MON-YYYY’),
2 ’DAY’) value_less_than
3 FROM DUAL;
VALUE_LESS_THAN
-----------------------------------
TO_DATE(’09-05-2001’,’DD-MM-YYYY’)
indexes for one with same column list as that of the constraint. This naturally
implies that each primary or unique key constraint must be backed by a
user-defined unique local index.
Figure F–8 below shows an example in which the primary key constraint on
ORDER_SUMMARY table is specified with the “USING INDEX” option. The index
that supports this option was created in Step 2 earlier.
Indexes and constraints can share the same name without problem, and it is
customary to create a constraint and its underlying index with the same name as
shown in Figure F–7 and Figure F–8.
Restrictions
There are several restrictions that OWB users need to be aware of. These restrictions
are necessary to minimize the complexity of implementation in the debut release of
the PEL feature. Some of the restrictions might be lifted in future releases.
Performance Comparisons
There can be three possible methods for doing incremental loading into a target,
which cumulates historical data. This type of target is usually a fact table. The three
loading methods are
■ Method 1: Use the PEL method and load into a partitioned target table.
■ Method 2: Do not use the PEL method and load into a partitioned table.
■ Method 3: Do not use the PEL method and load into a non-partitioned table.
The qualitative performance advantages of PEL can clearly be seen in the section on
“General Feature Description.” This section demonstrates the quantitative
performance advantage of the PEL over the other two incremental loading methods.
When a mapping using the PEL technique is run, the following things happen, in
this order.
Step 1: Find target’s tablespace name. If the target has more than one tablespace, the
loading process is aborted with an error message like the following.
Fatal error: all partitions of target table RT_OWNER.ORDER_SUMMARY must be in one
tablespace
Step 2 : Find the tablespace name for all indexes. If there are more than one
tablespace name found, the loading process is aborted with an error message like
the following.
Fatal error: all partitions of local indexes on table RT_OWNER.ORDER_SUMMARY must be in
one tablespace
Step 3. Create a temporary table that has same schema definition as the target.
Should this step fail, the loading process is aborted with the following error
message.
Fatal error: failed the attempt to create a temporary table like table RT_OWNER.ORDER_
SUMMARY
Step 4 : Parallel direct-path load into the temporary table. If there is anything wrong
in this step, the batch processing terminates with an Oracle server error, but the
entire loading process is not aborted. The loading process may drop down to
row-by-row auditing mode to find error details if the “set-based with fail-over”
mode is selected.
Step 5 : Find partition name from the first row of freshly loaded data. If this step
fails, the following error message is logged in OWB audit trail.
Fatal error: calculating partition name failed
Step 6 : If the target partition is not empty, then parallel direct-path insert into the
target partition. Oracle server errors may occur and be logged in OWB audit trail.
But the loading process is not aborted. It may drop down to row-by-row processing
if user so configured the mapping. No matter if errors occur, the mapping
terminates.
Step 7 : If the target partition is empty, all indexes are created on the temporary
table. If errors occur in this step, the loading process is not aborted. The row-based
process may be invoked if user selected “set-based with fail-over” mode.
Step 8 : Add all constraints, including primary/unique key constraints and foreign
key constraints. If errors occur in this step, the loading process is not aborted. The
row-based process may be invoked if user selected “set-based with fail-over” mode.
Step 9 : Exchange partition. If error occurs, the loading process is aborted with the
following error message.
Fatal error: failed exchanging partition Y2001_Q2_M05_W1_D03 in target RT_OWNER.ORDER_
SUMMARY
Step 10. Drop the temporary table. If any error occurs, a warning is logged in OWB
audit trail, but the mapping is still considered being successful. The warning looks
like the following.
Warning: cannot drop table RT_OWNER.T53
x_vc := ’TO_DATE(’’01-10-’||x_year||’’’,’’DD-MM-YYYY’’)’;
END IF;
ELSE
x_month := TO_NUMBER(TO_CHAR(p_date, ’MM’));
IF x_granularity = ’MONTH’ THEN
x_month := x_month + 1;
IF x_month = 13 THEN
x_year := x_year + 1;
x_month := 1;
END IF;
x_vc := ’TO_DATE(’’01-’||TO_CHAR(x_month,’09’)||’-’||x_year||
’’’,’’DD- MM-YYYY’’)’;
ELSE
IF x_granularity = ’WEEK’ THEN
IF p_date+7 > LAST_DAY(p_date) THEN
x_day := 1;
x_month := x_month + 1;
IF x_month = 13 THEN
x_year := x_year + 1;
x_month := 1;
END IF;
ELSE
x_day := (TRUNC(TO_NUMBER(TO_CHAR(p_date,’DD’))/7)+1)*7+1;
END IF;
x_vc := ’TO_DATE(’’’||TO_CHAR(x_day,’09’)||’-’||
TO_CHAR(x_month,’09’)||’-’||x_year||
’’’,’’DD- MM-YYYY’’)’;
ELSE
IF x_granularity = ’DAY’ THEN
x_vc := ’TO_DATE(’’’||TO_CHAR(p_date+1,’DD-MM-YYYY’)||
’’’,’’DD-MM-YYYY’’)’;
ELSE
x_day := TO_NUMBER(TO_CHAR(p_date,’DD’));
IF x_granularity = ’HOUR’ THEN
x_hour := TO_NUMBER(TO_CHAR(p_date,’HH24’));
IF x_hour = 23 THEN
x_vc := ’TO_DATE(’’’||TO_CHAR(p_date+1,’DD-MM-YYYY’)||
’’’,’’DD-MM-YYYY’’)’;
ELSE
x_hour := x_hour + 1;
x_vc := ’TO_DATE(’’’||TO_CHAR(p_date,’DD-MM-YYYY’)||
TO_CHAR(x_hour,’09’)||
’’’,’’DD-MM-YYYY HH24’’)’;
END IF;
ELSE
x_minute := TO_NUMBER(TO_CHAR(p_date,’MI’));
IF x_minute = 59 THEN
IF x_hour = 23 THEN
x_vc := ’TO_DATE(’’’||TO_CHAR(p_date+1,’DD-MM-YYYY’)||
’’’,’’DD-MM-YYYY’’)’;
ELSE
x_hour := x_hour + 1;
x_vc := ’TO_DATE(’’’||TO_CHAR(p_date,’DD-MM-YYYY’)||
TO_CHAR(x_hour,’09’)||
’’’,’’DD-MM-YYYY HH24’’)’;
END IF;
ELSE
x_minute := x_minute + 1;
x_vc := ’TO_DATE(’’’||TO_CHAR(p_date,’DD-MM-YYYY HH24:’)||
TO_CHAR(x_minute,’09’)||
’’’,’’DD-MM-YYYY HH24: MI’’)’;
END IF;
END IF;
END IF;
END IF;
END IF;
END IF;
END IF;
RETURN x_vc;
END get_vc;
/
Transfer Parameters
The OWB Transfer Wizard allows you to export metadata from data warehousing
tools and file systems, such as OMG CWM, CA ERwin and Powersoft
PowerDesigner, and import the metadata into Oracle warehousing tools, such as
Oracle Discoverer, and Oracle Express.
When you use the OWB Transfer Wizard, you are required to enter transfer
parameter information based upon the metadata source or target you have selected.
The following tables list details about the transfer parameters you need to provide
for each data source or target type.
Table G–4 Transfer Parameters when OMG CWM is selected as the target
Transfer Parameter Name Description
OWB Exported Business Select the Business Areas you want to export from OWB.
Areas The default is All Business Areas; you can select
individual Business Areas from the drop-down list.
Transfer Considerations
Before you transfer metadata into the OWB repository or out of the OWB repository,
you need to perform tasks within the source and target tools to ensure that the
metadata can be transferred successfully.
This Appendix provides instructions for preparing to transfer metadata from a
source tool to the OWB repository or from the OWB repository to a target tool. It
also lists the objects that are extracted from the source tool during the transfer and
their corresponding OWB objects.
The OWB Transfer Wizard exports metadata from the OWB repository as Business
Areas. Before you export metadata, you must create business areas within the OWB
repository.
This section includes the following topics:
■ Creating Business Areas in OWB
■ Importing Metadata from an Object Management Group (OMG) CWM
Standard System
■ Importing Metadata from Computer Associates ERwin 3.5.1
■ Importing Metadata from Powersoft PowerDesigner 6.0
■ Exporting Metadata to Oracle Discoverer 3.1 and 4i
■ Exporting Metadata to an Object Management Group (OMG) CWM Standard
System
■ Exporting Metadata to Oracle Express
Figure G–1 Business Area Dialog with All Dimensions and Facts Selected
8. In the lower section of the dialog, Please Select Objects, do one of the following:
■ To include all the facts, dimensions, tables and/or views in the module in
the business area, click (check mark) Fact, Dimension, Table, and/or View
in the Selected column, Figure G–1 on page G-7.
■ To include specific facts, dimensions, tables, and views from the module in
the business area, expand the fact, dimension, table, or view in the Type
column and then select the desired facts (Figure G–2), dimensions, tables, or
views to be added to the business area. (For example, you may want to
create individual business areas for each fact and its dimensions.)
Click OK to return to the Warehouse Module Editor. The new business area
An
9.
now displays in the warehouse target module, Figure G–3 on page G-9.
10. To create additional business areas for the module, repeat Steps 1–9.
11. Commit your changes.
After you complete this task and any other applicable tasks in this chapter, you are
ready to transfer the metadata to Discoverer.
Table G–7 Object Conversion for Import from OMG CWM into OWB (Cont.)
Object in OMG CWM Imported into OWB
Table Table
Column Columns
Foreign Key Foreign Keys
Unique Constraint/Primary Key Unique Keys
View View
Column Column
Table G–8 Object Conversion for Import from ERwin into OWB
Object in ERwin Imported into OWB
Table Table
Column Columns
Foreign Key Foreign Keys
Primary Key Unique Keys
View View
Column Columns
Table G–9 Object Conversion for Import from PowerDesigner into OWB
Object in PowerDesigner Imported into OWB
Table Table
Column Columns
Index Foreign Keys
Index Unique Keys
View View
Column Columns
Before you transfer metadata to Discoverer, you need to perform some additional
tasks within OWB to ensure that the metadata transfers successfully and displays
appropriately in Discoverer. These tasks include:
■ Creating business areas in a OWB warehouse module so that the transferred
metadata displays as business areas within Discoverer.
■ Hiding some OWB table columns so that they are grayed in Discover
Administration Edition and unavailable in Discoverer User Edition
■ Specifying that some attributes are to be used as Item Classes in Discoverer
■ Using names to indicate which attributes are to be placed in the hierarchy nodes
within Discoverer
The following sections provide instructions for performing these tasks.
The actual ’dummy’ table to real dimension association relies on any one of the
contained columns. The ’dummy’ column to fact association is determined by
making the column’s physical name the same as the physical name of the foreign
key constraint in the fact.
The following example illustrates how dimensional roles can be set up for exporting
to Discoverer:
8. You can also use this dialog to define Item Class and set default aggregation
and default position of table columns within Discoverer.
DAY : SHIP_DATE
FLIGHTS
OPERATOR (hidden)
OPERATOR : Default (see default role above)
PRODUCT (hidden)
PRODUCT : PURCHASE
PRODUCT : TICKET
SALES
4. Once the project is open, select Express Database Maintenance and enter the
user name, password, and service name for your RAA repository.
5. Choose Create Maintenance Procedure. Provide the procedure and select
general maintenance.
The RDBMS login displays automatically.
6. Select Generate Qualified Selects at Runtime.
7. Select defaults for dimension processing.
8. Name your Express database and log file (these will be saved on the OES server
machine under d:\orant\database\express_info).
9. Choose OES > OES Batch Manager to monitor this job (Jobs -> Monitor).
10. You have now created your raw Express database.
OSA Configuration
Before you look at the data, you need to follow these configuration steps:
1. Open the OSA Application Manager.
2. Select Database Setup > Create.
You can now create a .dsc file (give it a name which reflects the project that you
transferred). After you enter a name, choose edit and select remote thin-client.
For the configuration file, go to the directory where you saved the database and
log file and choose the .rdc file that relates to the project that you just
transferred.
3. Select Communication Setup > Define > Create.
4. Name your setup and choose thin-client, remote system (this is the server
machine – dwqa1-pc). For RPC, choose TCP/IP.
The server login is OESDBA/OESDBA; the relational login is your RAA
repository user name/password.
5. Save.
6. You can now open OSA and choose New > Reports or Graphs to view your
data. You’ll need to first select the correct dimensions, hierarchies, and
measures based on your OWB repository.
Index-1
configuration views, 8-23
Oracle Reports, 11-2 warehouse module, 8-7
parallel, 8-13, 8-16 connection information
partition parameter, 8-13, 8-16 data source
performance parameter, 8-13, 8-16 update connection, 4-27
configuration parameters non-Oracle database system, 4-4
Dimension, 8-11 Oracle Designer Repository, 3-6
Facts, 8-14 source modules, 4-2
generation options, 8-13 warehouse module, 3-6
generation preferences, 8-8 console
identification, 8-11, 8-14, 8-16 see Builder Console, 2-11
materialized Views, 8-16 constraint
materialized views, 8-18 change, 3-26
OEM registration, 8-8 change UK to PK, 3-44
Oracle Enterprise Manager, 8-9 check, 3-28
overview, 8-2 DEFAULTIF and NULLIF, 4-30
partition, 8-13, 8-16 fact table
performance,parallel, 8-12, 8-15 foreign key reference, 3-39
rules for export, 10-5 fact table foreign key references, 3-3
runtime directories, 8-9 generated unique key constraints, 3-26
Sequences, 8-18 unique key constraint on levels, 3-12
storage space, 8-13, 8-16 view, 3-55
target directories, 8-10 container
time dimension generation, 8-13 database sources, 4-7
warehouse module, 8-7 flat file sources, 4-13
Workflow Queue Listener, 8-9 flat files, 4-13
configuration phase Oracle Designer Repository, 4-12
general discussion, 1-5 source module, 4-2
configuring warehouse modules, 3-5
data warehouse, 8-2 create definition
database links, 8-7 Builder Project, 2-7
dimension, 8-11 delimited flat file, 4-41
facts, 8-14 dimension, 3-11
hash partitions, 8-23 fact table, 3-37
indexes, 8-20 flat file, 4-28
logical objects, 8-3 flat file sources, 4-28
materialized views, 8-16 hierarchy, 3-20
new physical objects, 8-4 materialized view, 3-46
OEM Preferences, 8-43 Oracle Workflow process, 9-17
partitions, 8-21 transformation, 3-64
physical instance, 8-2 view, 3-52
range partitions, 8-23 create Windows NT user, 9-4
range with hash subpartitions partitions, 8-23 creating
sequences, 8-18 database links, 4-5, 10-51
tables, 8-19 diagram of source definitions, 4-27
Index-2
dimensions, 3-14 deploy
indexes,partitions,database links, 8-4 job scripts, 9-4
physical objects, 8-4 PL/SQL mapping, 8-32
source modules, 4-7 table, 8-33
time dimension, 3-34 deploying
warehouse module, 3-5 jobs, 9-4
CWM bridges scripts, 8-37
business areas, 3-70 Designer Repository
CWM Transfer Wizard import definitions into Builder repository, 3-45
online help, 10-25, 10-31 desktop view, 3-52
developmental phases, 1-2
diagram
D
generate with Source Module Editor, 4-17
data source, 4-1 source definitions, 4-27
data transformation, 6-1 dimension
overview, 3-58 attribute definition, 3-18
data type basic definition, 3-2
flat file fields, 4-30 create definition, 3-11
portable, 4-30 define a level of aggregation, 3-16
data warehouse denormalized dimension table, 3-13
configuration parameters, 8-2 dimension object, 3-2
loading, 9-2 generated scripts, 8-30
database links hierarchies, 3-19
configuring, 8-7 hierarchy, 3-12, 3-20
creating, 4-5, 8-4 levels, 3-12
IBM DB2 system, 4-6 mapping, 5-8
New Database Link Panel, 4-4 New Dimension Wizard, 3-11
Oracle database system, 4-5 object
source module, 4-2 Builder rules, 3-12
warehouse module, 3-8 property sheet, 3-22
definition products, 3-14
attribute, 3-18 create, 3-14
business area, 3-69 property sheet, 3-22
delimited file, 4-41 table
delimited flat file, 4-41 property sheet, 3-23
fixed-length file, 4-31 time
flat file, 4-28 creating, 3-34
materialized view, 3-46 time dimension, 3-23
transformation, 3-64 update, 3-21
valid and invalid, 8-25 validate example, 8-26
validate a set of definitions, 8-28 dimension table
warehouse key column, 3-20 default column order, 3-25
definitional phase, 1-2 physical aspects, 3-2
delimited file reordering the columns, 3-25
definition, 4-41 dimensions
Index-3
creating, 3-14 F
directives
Metadata Export Utility, 10-18 fact table
create definition, 3-37
Metadata Import Utility, 10-20
create definitions, 3-37
Discoverer bridge
business area, G-6 default column order, 3-25
define foreign key reference, 3-39
business areas, 3-70
physical aspects, 3-3
Display Sets
default attribute sets, 5-5 property sheet, 3-42
reordering the columns, 3-26
definition of, 5-4
sales fact table description, 3-38
display welcome page, 2-24
drawer update definition, 3-41
filter data with a transform, 3-64
utilities, 2-15
first-class objects, 10-4
fixed-length file
E definition, 4-31
edit flat file
DML Type, 5-27 character set, 4-29
editing create definition, 4-28
dimensions, 3-21 data sample, 4-32
invalid objects, 8-27 definition, 4-28
editor delimited
dimension, 3-21 create a format, 4-41
materialized view editor, 3-51 update format, 4-47
source module editor delimited format, 4-41
generate diagram, 4-17, 4-27 field constraint, 4-30
view editor, 3-56 field mask, 4-30
warehouse module editor, 3-10 field type, 4-30
environment, 2-12 fixed-length, 4-31
administration, 2-15 create format, 4-32
Builder console, 2-12 format, 4-35
project, 2-12 generic file based application, 4-15
export infrastructure requirements, 4-52
business area, G-6 multiple physical records per logical
exporting from Builder repository, 10-29 record, 4-29
list of first-class objects, 10-4 multiple physical records per logical
log file, 10-29, 10-34 records, 4-41
metadata export file, 10-3 physical record length, 4-29
metadata with Metadata Export Utility, 10-3 source module, 4-13
subset of objects, 10-4 update format definition, 4-39
exporting Flat File Sample Wizard, 4-28, 4-31
MDL, 10-3 Folder-in-Use Lock, definition of, 2-4
Express bridge format
business areas, 3-70 flat file, 4-35
extract transformation, 5-36, 7-2
Index-4
G definition
database source, 4-17
gateways database systems, 4-17
transparent, 4-4
Import Metadata Wizard, 4-21
generated
re-import, 4-21
column name, 3-16 definitions into a warehouse module, 3-45
unique key constraints, 3-26
importing into Builder repository, 10-23
generated scripts
Metadata Import Utility, 10-8
dimension, 8-30 selected modules, 10-21
general description, 8-28
validation rules, 10-21
mapping, 8-32
Import Metadata Wizard, 4-31
materialized view, 8-31 importing
sequences, 8-33
metadata, 10-8, 10-11
tables, 8-33
indexes
types, 8-43 bitmap,unique, 8-20
generating upgrade scripts, 8-43
configuring, 8-20
generation phase, 1-2
creating, 8-4
general discussion, 1-5 infrastructure requirements
generic file based application, 4-15
flat file sources, 4-52
group by operation as a transformation
source modules, 4-51
operation, 6-21 warehouse module, 3-73
init.ora, 4-6
H integrators, 4-2
hash partitions, 8-22, 8-23
help for CWM Transfer Wizard, 10-25, 10-31 J
heterogeneous source, 4-2
job dependencies
hierarchies
Oracle Workflow, 9-19
dimension, 3-19 job scheduling, 9-2
hierarchy, 3-12
job scripts
create definition, 3-20
deploy, 9-4
how to schedule, 9-7
create a source module, 4-7
schedule job with parameters, 9-8
switch projects, 2-9
jobs
update definition of a dimension, 3-23 deploying, 9-4
update definition of a fact table, 3-41
registering, 9-4
update definition of a materialized view, 3-51
scheduling, 9-2, 9-7
update definition of a view, 3-56 updating,loading, 9-2
I L
icon levels
commit, 2-10 dimension, 3-12
ID column
library
rename as warehouse key column, 3-20 transformation, 3-59
import
Index-5
load and manage phase, 1-2 default column order, 3-25
loading generated scripts, 8-31
jobs, 9-2 performance, 3-4
log file refreshing, 8-18
export to OMG CWM, 10-29, 10-34 reordering the columns, 3-26
logical constraints update definition, 3-51
view, 3-55 Materialized View Editor, 3-51
logical name, 2-21 metadata
creating, 2-3, 2-20 detailed reports, 11-20
descriptions, 2-3, 2-20 implementation reports, 11-22
maximum length, 2-22 lineage and impact analysis diagrams, 11-24
propagate physical to logical name, 2-23 lineage and impact analysis reports, 11-23
uniqueness requirements, 2-22 summary reports, 11-19
logical tree Metadata Export Utility
set naming mode, 2-21 directives, 10-18
logon to a repository, 2-8 Metadata Import Utility
directives, 10-20
Metadata Loader
M
Export Utility, 10-3
major component Import Utility, 10-8
Builder console, 2-11 Loader Utilities in MS-DOS window, 10-17
manage and load phase Pure*Extract, 4-49
general discussion, 1-6 Pure*Integrate, 4-49
managing dependencies metadata loader (MDL), 10-2
Workflow, 9-10 command line utility, 10-17
manual scheduling, 9-2 exporting, 10-3
mapping, 5-1 exporting metadata, 10-5
definition of, 1-4 import options, 10-12
definitions, 5-2 import searching, 10-8
dimension, 5-8 importing, 10-8, 10-11
edit DML Type, 5-27 large imports,large exports, 10-2
extract transformation, 5-36, 7-2 mulitple user considerations, 10-2
generated scripts, 8-32 metadata reports, 11-1, 11-19
transformations, 6-1 migrating a repository, 10-2
triggers, 5-36, 7-2 mixed levels of aggregation, 3-13
Mapping Editor mode of operation
about, 5-8 administration environment, 2-15
keyboard operations, B-10 logical or physical naming mode, 2-21
menu bar, B-1 project environment, 2-12
mouse operations, B-7 transformation libraries, 2-14
object palette, B-5 module
toolbar, B-4 definition of, 1-3
materialized view, 3-4 mapping, 1-4
configuring, 8-16 source, 1-3
create definition, 3-46 source module, 4-2
Index-6
database definitions, 4-7 O
flat files, 4-13
unique names in project, 2-20 object
children of first-class objects, 10-10
warehouse module, 3-5
import selected modules, 10-21
creating a business area, 3-71
module editor import with Metadata Import Utility, 10-8
OEM
source module
configuring preferences, 8-43
generate diagram, 4-17, 4-27
warehouse scheduling, 9-2, 9-3, 9-7
open_links, 4-6
basic function, 1-xxii
optimizer hints as a transformation, 7-13
warehouse module, 3-10
multiple user access, 2-4 Oracle Designer, 8-8
import definitions into Builder repository, 3-45
source module, 4-12
N Oracle Discoverer
name business areas, 3-70
Builder object names, 2-3, 2-20 Oracle Enterprise Manager
creating logical and physical names, 2-3, 2-20, configuration parameters, 8-9
2-21 create Windows NT user, 9-4
default naming mode, 2-21 Job History Pane, 9-38
naming policies, 2-20 summary, 9-2
renaming an object, 2-21 Oracle Express
named attribute sets, 3-29 business areas, 3-70
naming mode, 2-3 Oracle Portal, 11-1
default naming mode, 2-21 Oracle Reports
default preferences, 2-21 configuration, 11-2
preferences Oracle Transparent Gateway, 4-4
persistence of naming preferences, 2-20 infrastructure requirements, 4-51
propagate physical to logical name, 2-23 Oracle Warehouse Builder Metadata Loader, 10-2
remembering preferences, 2-21 Oracle Warehouse Builder Runtime Library, 9-38
setting preferences, 2-21 Oracle Workflow
naming policies, 2-20 access level
navigation client, 9-17
search navigation tree, 2-25 Builder client access level, 9-17
warehouse module navigation tree, 3-10 define process, 9-17
wizards, 2-23 Deployment Wizard, 9-11
navigation tree, 2-11 server, 9-11
New Database Link Panel, 4-4 OWB Browser
New Fact Table Wizard, 3-37 administration, 10-45
New Materialized View Wizard, 3-46 assigning a custom report to a role, 10-56
New Module Wizard, 4-13 browsing the favorites, 11-14
New Time Dimension Wizard, 3-33 browsing the repository, 11-7
New Transform Wizard, 3-64 contents tab, 11-11
New View Wizard, 3-52 creating custom reports, 11-26
non-Oracle database systems, 4-4 creating database links, 10-51
Index-7
customizing the favorites pages, 11-17 range with hash subpartitions, 8-23
detailed reports, 11-20 performance
dropping database links, 10-53 materialized views, 3-4
editing database links, 10-52 warehouse keys, 3-3
granting and revoking access, 10-55 physical aspects
implementation reports, 11-22 dimension table, 3-2
lineage and impact analysis diagrams, 11-24 fact table, 3-3
lineage and impact analysis reports, 11-23 physical name, 2-23
properties tab, 11-10 creating, 2-3, 2-20
purging stale user information, 10-57 propagate physical to logical name, 2-23
QA user role, 10-55 syntax, 2-20, 2-23
registering a custom report, 10-46, 10-57 uniqueness requirements, 2-20
registering a repository, 10-46, 10-48 physical partition
related tab, 11-12 configuration parameters, 8-13, 8-16
reports, 11-1, 11-19 post-load tasks, 9-38
reports tab, 11-14 predefined attribute set, 3-29
roles, 10-47, 10-54 predefined time dimension elements, 3-33
setting up preferences, 11-2 preface
summary reports, 11-19 conventions table sample, 1-xxiv
unregistering a repository, 10-54 Preference.properties file, 2-20
user access, 10-54 Preferences
viewing database links, 10-52 display welcome page on all wizards, 2-24
warehouse developer role, 10-54 naming mode, 2-20, 2-21
warehouse user role, 10-55 default preferences, 2-21
OWB MDL File Upgrade Utility, 10-2 OWB Browser, 11-2
OWB Reports, 11-1 utility, 2-16
OWB Repository Assistant, 10-2 add a utility, 2-16
OWB Runtime Assistant, 10-2 remove a utility, 2-17
OWB Transfer Wizard, 10-22 update a utility, 2-17
print report, 11-4
project
P
definition of, 1-3
parallel, 8-12, 8-15 how to switch projects, 2-9
parameter new project wizard, 2-10
basic copy transformation, 3-64 unique module names, 2-20
physical partition, 8-13, 8-16 project environment, 2-12
schedule job with parameters, 9-8 propagate physical to logical name, 2-23
transformation, 3-59 property icon, 2-18
Partition Exchange Loading, 8-23 property sheet, 2-18
partitions default column order, 3-25
configuring, 8-21 dimension, 3-22
creating, 8-4 object, 3-22
hash, 8-23 table, 3-23
hash,range, 8-22 fact table, 3-42
range, 8-23 materialized view, 3-51
Index-8
view, 3-56 running scripts, 8-36
Runtime Audit Viewer, 9-23, 9-24, 9-29
purging runtime entries, 9-28
Q
refreshing the view, 9-28
query rewrite searching the navigation tree, 9-27
conditions, 3-4 setting the audit level, 9-24
viewing by date range, 9-26
R viewing the error details, 9-38
viewing the errors, 9-36
range partitions, 8-22, 8-23 viewing the job audit, 9-30
with hash subpartitions, 8-23 viewing the job instance audit, 9-30
reference materials viewing the task audit, 9-32
distributed database systems, 4-4 viewing the task details audit, 9-33
non-Oracle database systems, 4-4 runtime auditing, 9-23
Oracle8i Data Warehousing Guide, 3-2, 3-4 runtime library
Ralph Kimball books, 3-2, 3-4 infrastructure requirements, 3-73
refreshing materialized view, 8-18 schema objects, 9-38
registering
jobs, 9-4
rename in logical or physical mode, 2-21 S
rename warehouse object sales fact table, 3-37
view, 3-57 description, 3-38
reorder columns, 3-25 sample
warehouse objects, 3-26 data sample for flat file, 4-32
reporting, 11-1 scalar function transformation, 3-64
Reports, 11-19 schedule
creating custom, 11-26 job scripts, 9-4
detailed, 11-20 scheduling
implementation, 11-22 automated, 9-2
lineage and impact analysis, 11-23 jobs, 9-2, 9-7
lineage and impact analysis diagrams, 11-24 manual, 9-2
printing, 11-4 with OEM, 9-2, 9-3
summary, 11-19 with Workflow, 9-2
repository Workflow process, 9-23
logon to a repository, 2-8 search a navigation tree, 2-25
repository administration, 10-2 secondary source
reserved words, A-2 view, 3-55
road map of a Builder project, 2-2 semi-colon, 3-49
Row-Sets sequences
definition of, 5-2 configuring, 8-18
rules generated scripts, 8-33
dimension object, 3-12 services
running heterogeneous services, 4-4
TCL scripts, 9-9 short name
Workflow process, 9-20 defining, 1-9
Index-9
reserved words, A-2 physical configuration, 8-13
software integrators, 4-2 toolbar
source Builder console, 2-11, 2-18
data source, 4-1 commit, 2-10
source definition property icon, 2-18
update, 4-25 Transfer Wizard
source module, 4-2 log file
connection information, 4-2 export, 10-29, 10-34
create definition, 4-13 online help, 10-25, 10-31
creating, 4-7 version, 10-25
database definitions, 4-7 transform
database links, 4-2 create definition, 3-64
flat files, 4-13 New Transform Wizard, 3-64
general description, 2-3 SQL optimizer hint, 7-13
import definitions, 4-17 transformation, 6-1
Oracle Designer Repository, 4-12 basic copy transformation, 3-64
Source Module Editor create definition, 3-64
generate diagram, 4-17, 4-27 custom transformation example, 3-64
SQL optimizer hints as a transformation, 7-13 extract, 5-36, 7-2
star schema filter data, 3-64
basic example, 3-2 group by operation, 6-21
summarize data with a transformation, 6-21 library, 3-59
switch projects, 2-9 overview, 3-58
Synchronization, 2-6 parameters, 3-59
syntax errors scalar function, 3-64
extra semi-colon, 3-49 transformation category
unique transformation names, 2-20
transformation library environment, 2-14
T
transparent
table agents, 4-4
attribute sets, 3-29 gateways (infrastructure requirements), 4-51
configuring, 8-19 transportable tablespace, 8-21
default column order, 3-25 trigger
generate and deploy, 8-33 general discussion, 5-36, 7-2
generated scripts, 8-33
reordering the columns, 3-26
runtime library tables, 9-38
U
table properties unbound, 5-5
dimension table, 3-22 unique index, 8-20
fact table, 3-42, 3-43 unique key
tablespace, 8-13, 8-16 constraint on levels, 3-12
testing deployed scripts, 8-36 Universal Identifiers (UniversalIDs), 10-8
time dimension update
create, 3-23 connection
time dimension generation data source, 4-27
Index-10
flat file reordering the columns, 3-26
format, 4-47 View Editor, 3-56
operations on specific columns, 7-14 viewing
source definitions, 4-25 OWB Reports, 11-1
fixed format file, 4-39 runtime audit, 9-23
update definition validation details, 8-27
dimension, 3-23 Views
materialized view, 3-51 configuring, 8-23
view, 3-56
updating
W
jobs, 9-2
user-defined attribute set, 3-29 warehouse keys
using column, 3-20
Properties inspector, 8-4, 8-7 performance, 3-3
Workflow, 9-11 warehouse module, 3-5
Utilities button, 2-11 connection information, 3-6
utilities button, 2-15 creating, 3-5
utilities drawer, 2-15 creating a business area, 3-71
add a utility, 2-16 database links, 3-8
configuration, 2-16 displaying, 3-10
remove a utility, 2-17 general description, 2-3
import definitions, 3-45
navigation tree, 3-10
V rename objects
validating, 8-24, 8-26 materialized view, 3-51, 3-57
editing invalid objects, 8-27 unique object names, 2-20
invalid definitions, 8-25 Warehouse Module Editor, 3-10
valid definitions, 8-25 function, 1-xxii
validation codes, 8-27 warehouse object, 3-5
validation messages, 8-27 rename objects, 3-51
validation materialized view, 3-51
general discussion, 1-5 view, 3-57
rationale and general discussion, 8-24 warehouse schema, 1-3
rules for imported definitions, 10-21 welcome page
verifying display welcome page, 2-24
OEM registration, 9-5 wizard
versions display welcome page, 2-24
bridges, 10-25 Flat File Sample Wizard, 4-28
Transfer Wizard, 10-25 New Dimension Wizard, 3-11
view New Fact Table Wizard, 3-37
conventional, 3-5 New Materialized View, 3-46
create definition, 3-52 New Module Wizard, 3-5, 4-13
default column order, 3-25 new project wizard, 2-10
logical constraints, 3-55 New Time Dimension Wizard, 3-33
property sheet, 3-56 New Transform Wizard, 3-64
Index-11
New View Wizard, 3-52
online help, 10-25, 10-31
Oracle Workflow Deployment Wizard, 9-11
wizard navigation, 2-23
Wizard button, 2-11
Workflow
defining the process, 9-17
deploying mappings, 9-11
launching processes, 9-22
managing dependencies, 9-10
process example, 9-20
running the process, 9-20
scheduling, 9-2, 9-10
scheduling the process, 9-23
Workflow Deployment Wizard, 9-11
Workflow Queue Listener, 9-21
configuration parameters, 8-9
Write Lock, definition of, 2-4
Index-12
Index-13
Index-14
Index-15
Index-16
Index-17
Index-18
Index-19
Index-20
Index-21
Index-22
Index-23
Index-24
Index-25
Index-26
Index-27
Index-28
Index-29
Index-30
Glossary
additive
Describes a fact (or measure) that can be summarized through addition. An additive
fact is the most common type of fact. Examples include Sales, Cost, and Profit.
(Contrast with nonadditive, semi-additive.)
attribute
A descriptive characteristic of one or more levels. Attributes represent logical
groupings that enable end users to select data based on like characteristics. Note
that in relational modeling, an attribute is defined as a characteristic of an entity. In
Oracle8i, an attribute is a column in a dimension that characterizes elements of a
single level.
aggregation
The process of consolidating data values into a single value. For example, sales data
could be collected on a daily basis and then be aggregated to the week level, the
week data could be aggregated to the month level, and so on. The data can then be
referred to as aggregate data. Aggregation is synonymous with summarization, and
aggregate data is synonymous with summary data.
aggregate
Summarized data. For example, unit sales of a particular product could be
aggregated by day, month, quarter and yearly sales.
ancestor
A value at any level above a given value in a hierarchy. For example, in a Time
dimension, the value “1999” might be the ancestor of the values “Q1-99” and
“Jan-99.” (See also descendant, hierarchy, level.)
Glossary-1
attribute
A descriptive characteristic of one or more levels. For example, the Product
dimension for a clothing manufacturer might contain a level called Item, one of
whose attributes is Color. Attributes represent logical groupings that enable end
users to select data based on like characteristics.
Note that in relational modeling, an attribute is defined as a characteristic of an
entity. In Oracle8i, an attribute is a column in a dimension that characterizes
elements of a single level.
child
A value at the level below a given value in a hierarchy. For example, in a Time
dimension, the value “Jan-99” might be the child of the value “Q1-99.” A value can
be a child for more than one parent if the child value belongs to multiple
hierarchies. (See also hierarchy, level, parent.)
cleansing
The process of resolving inconsistencies and fixing the anomalies in source data,
typically as part of the ETT process. (See also ETT.)
console
The main window of the Oracle Warehouse Builder application. It contains a menu
bar, launcher, and navigator.
data source
A database, application, repository, or file that contributes data.
data mart
A data warehouse that is designed for a particular line of business, such as sales,
marketing, or finance. In a dependent data mart, the data can be derived from an
enterprise-wide data warehouse (as a dependent data mart). In an independent data
mart, data can be collected directly from sources. (See also data warehouse.)
Glossary-2
data warehouse
A relational database that is designed for query and analysis rather than transaction
processing. A data warehouse usually contains historical data that is derived from
transaction data, but it can include data from other sources. It separates analysis
workload from transaction workload and enables a business to consolidate data
from several sources.
In addition to a relational database, a data warehouse environment often consists of
an ETT solution, an OLAP engine, client analysis tools, and other applications that
manage the process of gathering data and delivering it to business users. (See also
ETT, OLAP.)
ddl
Data Definition Language.
denormalize
The process of allowing redundancy in a table so that it can remain flat. (Contrast
with normalize.)
dimension
A structure, often composed of one or more hierarchies, that categorizes data. Several
distinct dimensions, combined with measures, enable end users to answer business
questions. Commonly used dimensions are Customer, Product, and Time. In Oracle8i, a
dimension is a database object that defines hierarchical (parent/child) relationships between
pairs of column sets. In Express a dimension is a database object that consists of a list of
values.
dimension value
One element in the list that makes up a dimension. For example, a computer
company might have dimension values in the Product dimension called “LAPPC”
and “DESKPC.” Values in the Geography dimension might include “Boston” and
“Paris.” Values in the Time dimension might include “MAY96” and “JAN97.”
Glossary-3
dml statement
There are four types of data manipulation, or dml, statements: select, insert, update,
or delete.
drill
To navigate from one item to a set of related items. Drilling typically involves
navigating up and down through the levels in a hierarchy. When selecting data, you
can expand or collapse a hierarchy by drilling down or up in it, respectively. (See
also drill down, drill up.)
drill down
To expand the view to include child values that are associated with parent values in
the hierarchy. (See also drill, drill up.)
drill up
To collapse the list of descendant values that are associated with a parent value in
the hierarchy.
element
An object or process. For example, a dimension is an object, a mapping is a process,
and both are elements.
ETT
Extraction, transformation, and transportation. ETT refers to the methods involved
in accessing and manipulating source data and loading it into a data warehouse.
The order in which these processes are performed varies.
Note that ETL (extraction, transformation, load) and ETM (extraction,
transformation, move) are sometimes used instead of ETT. (See also data warehouse,
extraction, transformation, transportation.)
editor
A window in Oracle Warehouse Builder used to define or edit objects and their
relationships to each other.
extraction
The process of taking data out of a source as part of an initial phase of ETT. (See also
ETT.)
Glossary-4
fact table
A table in a star schema that contains facts. A fact table typically has two types of
columns: those that contain facts and those that are foreign keys to dimension
tables. The primary key of a fact table is usually a composite key that is made up of
all of its foreign keys.
A fact table might contain either detail level facts or facts that have been aggregated
(fact tables that contain aggregated facts are often instead called summary tables). A
fact table usually contains facts with the same level of aggregation.
fact/measure
Data, usually numeric and additive, that can be examined and analyzed. Values for
facts or measures are usually not known in advance; they are observed and stored.
Examples include Sales, Cost, and Profit. Fact and measure are synonymous; fact is
more commonly used with relational environments, measure is more commonly
used with multidimensional environments.
file-to-table mapping
Maps data from flat files to tables in the warehouse.
hierarchy
A logical structure that uses ordered levels as a means of organizing data. A
hierarchy can be used to define data aggregation; for example, in a Time dimension,
a hierarchy might be used to aggregate data from the “Month” level to the
“Quarter” level to the “Year” level. A hierarchy can also be used to define a
navigational drill path, regardless of whether the levels in the hierarchy represent
aggregated totals. (See also dimension, level.)
hub module
The metadata container for process data.
integrator
Software that works with Oracle Warehouse Builder to facilitate definition, design,
and extraction of source data. Examples of integrators include the Oracle
Applications Integrator, the PeopleSoft Integrator, and the SAP Integrator.
launcher
The panel in the Oracle Warehouse Builder console window that contains buttons to
control the active environment. These environments include the Project
environment, Administration environment, and Transformation Library
Glossary-5
environment. Environments act as separators between the separate functions of the
Oracle Warehouse Builder product. For example, you use the Transformation
Library to define the reusable transformation functions, and you use the Project
environment to define the metadata used to create a data warehouse.
level
A position in a hierarchy. For example, a Time dimension might have a hierarchy
that represents data at the “Month,” “Quarter,” and “Year” levels. (See also family,
hierarchy.)
mapping
The definition of the relationship and data flow between source and target objects.
measure
Data, usually numeric and additive, that can be examined and analyzed. Values for
facts or measures are usually not known in advance; they are observed and stored.
Examples include Sales, Cost, and Profit. Fact and measure are synonymous; fact is
more commonly used with relational environments, measure is more commonly
used with multidimensional environments.
metadata
Data that describes data and other structures, such as objects, business rules, and
processes. For example, the schema design of a data warehouse is typically stored in
a repository as metadata, which is used to generate scripts used to build and
populate the data warehouse. A repository contains metadata.
Examples include: for data, the definition of a source to target transformation that is
used to generate and populate the data warehouse; for information, definitions of
tables, columns and associations that are stored inside a relational modeling tool;
for business rule, discount by 10 percent after selling 1,000 items.
model
An object that represents something to be made. A representative style, plan, or
design. metadata that defines the structure of the data warehouse.
Glossary-6
navigator
A panel in the Oracle Warehouse Builder console that displays the objects for the
active environment in a tree structure.
nonadditive
Describes a fact (or measure) that cannot be summarized through addition. An
example includes Average. (Contrast with additive, semi-additive.)
normalize
In a relational database, the process of removing redundancy in data by separating
the data into multiple tables. (Contrast with denormalize.)
The process of removing redundancy in data by separating the data into multiple
tables. (Kimball)
OLAP
Online analytical processing. OLAP functionality is characterized by dynamic,
multidimensional analysis of historical data, which supports activities such as the
following:
n Calculating across dimensions and through hierarchies
n Analyzing trends
n Drilling up and down through hierarchies
n Rotating to change the dimensional orientation
OLAP tools can run against a multidimensional database or interact directly with a
relational database.
Oracle Warehouse
A data warehouse built using Oracle Warehouse Builder.
Glossary-7
Oracle Warehouse Builder Repository
Stores the Oracle Warehouse Builder metadata definitions used to build the
Warehouse. A storage facility for metadata. For example, the Designer 2000
repository stores ER diagrams and business processes. (See also metadata.)
parent
A value at the level above a given value in a hierarchy. For example, in a Time
dimension, the value “Q1-99” might be the parent of the value “Jan-99.” (See also
child, hierarchy, level.)
physical instance
A collection of related database objects that, when deployed, become a schema.
Objects include tables, views, and other objects.
project
A project contains all design definitions and information needed by the Oracle
Warehouse Builder to build a warehouse. Oracle Warehouse Builder provides a
project structure to help users organize their work, and support versioning.
report-to-table mapping
Maps PeopleSoft trees to tables in the warehouse.
schema
A collection of related database objects. Relational schemas are grouped by database
user ID and include tables, views, and other objects. (See also snowflake schema, star
schema.)
semi-additive
Describes a fact (or measure) that can be summarized through addition along some,
but not all, dimensions. Examples include Headcount and On Hand Stock.
(Contrast with additive, nonadditive.)
sequence
A database schema object supported by Oracle8i that is a series of sequential
numbers generated by Oracle8i’s sequence generator. Oracle stores sequences as
rows in a single data dictionary table in the SYSTEM tablespace. A sequence
Glossary-8
definition indicates general information: the name of the sequence, whether it
ascends or descends, the interval between numbers, and other information.
short name
The short name is a unique identifier that is used as the root name for all related
objects created in Oracle Warehouse Builder.
snowflake schema
A type of star schema in which the dimension tables are partly or fully normalized.
(See also schema, star schema.)
Software Library
Contains the integrators currently installed for Oracle Warehouse Builder.
Accessed via the Administration environment.
source
A database, application, file, or other storage facility from which the data in a data
warehouse is derived.
star schema
A relational schema whose design represents a multidimensional data model. The
star schema consists of one or more fact tables and one or more dimension tables
that are related through foreign keys. (See also schema, snowflake schema.)
subject area
A classification system that represents or distinguishes parts of an organization or
areas of knowledge. A data mart is often developed to support a subject area such
as sales, marketing, or geography. (See also data mart.)
table
A layout of data in columns.
target
Holds the intermediate or final results of any part of the ETT process. The target of
the entire ETT process is the data warehouse. (See also data warehouse, ETT.)
transformation
The process of manipulating data. Any manipulation beyond copying is a
transformation. Examples include cleansing, aggregating, and integrating data
from multiple sources.
Glossary-9
Transformation Library
Stores the reusable formulas for the transformation of data as it moves between
source and target objects. Accessed via a button in the Oracle Warehouse Builder
launcher.
transportation
The process of moving copied or transformed data from a source to a data
warehouse. (See also transformation.)
tree-to-dimension mapping
A map between a PeopleSoft tree and an Oracle Warehouse Builder dimension.
validation
The process of verifying metadata definitions and configuration parameters.
versioning
The ability to create new versions of a data warehouse project for new requirements
and changes.
Warehouse administrator
The warehouse administrator is the information specialist that manages the
warehouse database and warehouse management applications. For example, the
warehouse administrator would be responsible for managing and monitoring
periodic updates of the warehouse database.
Warehouse designer
The warehouse designer is the information specialist that uses Oracle Warehouse
Builder to define the metadata that is used to create the data warehouse(s) for your
enterprise.
Glossary-10