Professional Documents
Culture Documents
D95501GC10 Ag
D95501GC10 Ag
Activity Guide
D95501GC10 | D97687
This document contains proprietary information and is protected by copyright and other
Technical Contributors intellectual property laws. You may copy and print this document solely for your own use
in an Oracle training course. The document may not be modified or altered in any way.
and Reviewers Except where your use constitutes "fair use" under copyright law, you may not use,
share, download, upload, copy, print, display, perform, reproduce, publish, license, post,
Phil Scott
transmit, or distribute this document in whole or in part without the express authorization
Craig Harding of Oracle.
The information contained in this document is subject to change without notice and is not
Editors warranted to be error-free. If you find any errors, please report them to us in writing.
Raj Kumar If this documentation is delivered to the United States Government or anyone using the
documentation on behalf of the United States Government, the following notice is
Kavita Saini applicable:
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names
may be trademarks of their respective owners.
Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All
SPARC trademarks are used under license and are trademarks or registered trademarks
of SPARC International, Inc. AMD, Epyc, and the AMD logo are trademarks or registered
trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open
Group.
This documentation may provide access to or information about content, products, and
services from third parties. Oracle Corporation and its affiliates are not responsible for
and expressly disclaim all warranties of any kind with respect to third-party content,
products, and services unless otherwise set forth in an applicable agreement between
you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss,
costs, or damages incurred due to your access to or use of third-party content, products,
or services, except as set forth in an applicable agreement between you and Oracle.
Table of Contents
Practices for Lesson 1: Course Introduction ................................................................................ 7
Practices for Lesson 1 .................................................................................................................... 8
Practices for Lesson 2: Repository Basics ................................................................................... 9
Practices for Lesson 2: Overview ................................................................................................... 10
Practice 2-1: Exploring an Oracle BI Repository ............................................................................ 11
Practices for Lesson 3: Building the Physical Layer of a Repository ........................................ 25
Practices for Lesson 3: Overview ................................................................................................... 26
Practice 3-1: Exploring the Sample Application .............................................................................. 27
Practice 3-2: Creating a Repository and Importing a Data Source................................................. 32
Practices Overview
In these practices, you will explore an existing Oracle Business Intelligence (BI) repository.
Overview
In this practice, you explore the three layers of an Oracle BI repository.
Assumptions
Before beginning the development of a repository, you use the Administration Tool to explore an
existing repository to gain an understanding of its three layers and how the layers relate to one
another, and to understand the link between the physical data sources and the information that
is presented in the Oracle BI user interface.
Time
Tasks
1. Copy the repository for this practice to another directory.
a. Create a new directory D:\repository.
b. Navigate to D:\PracticeFiles.
c. Copy the ClassStart.rpd file.
d. Paste the file in D:\repository.
d. Click Close.
e. Double-click the F1 Revenue table object to view its properties.
f. Click the Columns tab to view the columns in this table. This is another way to create,
view, and modify physical columns.
g. Click the Foreign Keys tab.
h. Notice that three tables have join relationships with F1 Revenue: D1 Time, D2
Products, and D3 Customers.
e. Leave this command window open. You will run this uploadrpd command often
throughout this course.
14. Examine the relationship between the columns in the Presentation layer and the columns
displayed in Oracle BI Analysis Editor.
a. Return to the Administration Tool, which should still be open.
b. Select File > Open > Offline.
c. Double-click ClassStart.rpd to open it in offline mode.
d. Enter welcome1 as the repository password and click OK. The ClassStart repository
opens in offline mode.
c. Click the Results tab. The table displays the total revenue for each brand.
Practices Overview
In these practices, you explore the Sample Application schema that is used in this course, and
build the Physical layer of an Oracle Business Intelligence repository.
Overview
In this practice, you learn about the Sample Application for Oracle Business Intelligence.
Time
5 minutes
Background
The Sample Application (Sample App) for Oracle Business Intelligence Suite Enterprise Edition
(OBIEE) is a comprehensive collection of examples designed to demonstrate the capabilities
and design best practices of Oracle BI. It brings together several integrated Oracle BI products
Source Data
The following screenshots show a subset of the data in the tables that are used to build the
initial repository:
SAMP_REVENUE_F
Overview
In this practice, you create a new repository and import tables from an external data source.
Assumptions
You use the Import Wizard of the Administration Tool to create a new repository and import
tables from the BISAMPLE schema into the Physical layer of the repository. When you complete
this practice, you will have a new repository file, bisample.rpd, which will contain the
SAMP_TIME_DAY_D, SAMP_PRODUCTS_D, SAMP_CUSTOMERS_D, and SAMP_REVENUE_F
tables and the corresponding alias tables in the Physical layer of the repository.
Tasks
1. Use the Import Wizard to create a new repository file.
a. Return to the Administration Tool, which should still be open. If not, double-click the
Administration Tool shortcut on the Desktop.
b. Select File > New Repository to open the Import Wizard. The Import Wizard guides
you through the steps to create a new repository and import metadata.
c. Leave Create Repository set to the default: Binary.
d. Enter BISAMPLE in the Name field.
e. In the Location field, you have the option to accept the default location or Browse to a
new location. Change the location to D:\repository.
f. For Import Metadata, accept the default selection: Yes. When Yes is selected, the
Import Wizard continues with windows for importing metadata. When No is selected,
an empty repository is saved to the selected location.
g. Enter welcome1 as the repository password.
h. Retype the password.
i. Click Next to open the new BISAMPLE repository and the Select Data Source window.
2. Use Import Wizard to import metadata.
a. In the Select Data Source window, select OCI 10g/11g from the Connection Type
drop-down list. The window displays connection fields based on the connection type
that you selected.
b. Select a data source. In this environment, the data source name is ORCL.
c. Enter a username and password for the data source. In this example, the username
and password are both BISAMPLE.
d. Click Next to continue to the Select Metadata Types window.
Overview
In this practice, you assign aliases to physical tables before mapping them to the Business
Model and Mapping layer.
Assumptions
You create aliases for the metadata objects that you imported into the Physical layer of the
repository. It is recommended that you use table aliases frequently in the Physical layer to
eliminate extraneous joins and to include best-practice naming conventions for physical table
names.
Tasks
1. Create an alias for the SAMP_CUSTOMERS_D table.
a. Right-click SAMP_CUSTOMERS_D and select New Object > Alias. The Physical
Table dialog box opens.
b. Name the alias D3 Customers. This is a simple naming convention that identifies the
table as a dimension table and the data contained in the table.
c. Click the Columns tab. Notice that alias tables inherit all column definitions from the
source table.
d. Double-click any of the columns listed to open the Physical Column properties dialog
box. Notice that the column is read-only and cannot be modified.
e. Click Cancel to close the Physical Column dialog box.
f. Click OK to close the Physical Table dialog box. The alias table is added to the
Physical layer.
2. Create a new column in the source table and observe the results.
a. Right-click the SAMP_CUSTOMERS_D source table and select New Object >
Physical Column. The Physical Column dialog box opens.
b. Name the column ALIAS_COLUMN.
d. Expand the D3 Customers alias table and confirm that the column was automatically
added. Creating a new column in a source table automatically creates the same
Overview
In this practice, you define primary keys, foreign keys, and joins in the Physical layer of the
repository.
Assumptions
You have created a new repository, imported the initial tables from the BISAMPLE schema into
the Physical layer of the repository, and created alias tables. Now you define keys and joins in
the Physical layer of the repository. If the imported database already had primary key–foreign
key relationships defined and the primary keys and foreign keys were imported into the
repository, the join conditions would be set up automatically. But that is not always what you
Time
20 minutes
Tasks
1. In this step, you define joins and keys by using the Physical Diagram feature of the
Administration Tool.
a. Expand the ORCL database object so that all the physical objects are visible.
b. Select all four alias tables.
c. Right-click one of the four highlighted alias tables and select Physical Diagram >
Object(s) and All Joins to open the Physical Diagram dialog box. Alternatively, you
can click the Physical Diagram button on the toolbar.
d. If necessary, rearrange the alias table objects so that they are all visible in the Physical
Diagram.
e. Click the New Join button on the toolbar.
f. Click the F1 Revenue table, and then click the D1 Time table. The Physical Foreign
Key dialog box opens. Joins in the Physical Diagram and Business Model Diagram are
represented by a line with an arrow at the “one” end of the join. When creating joins in
Physical or Business Model diagrams, you select the “many” end of the join first, and
then select the “one” end of the join.
"ORCL".""."BISAMPLE"."D1 Time"."CALENDAR_DATE" =
"ORCL".""."BISAMPLE"."F1 Revenue"."BILL_DAY_DT"
"ORCL".""."BISAMPLE"."D2 Products"."PROD_KEY" =
"ORCL".""."BISAMPLE"."F1 Revenue"."PROD_KEY"
"ORCL".""."BISAMPLE"."D3 Customers"."CUST_KEY" =
"ORCL".""."BISAMPLE"."F1 Revenue"."CUST_KEY"
k. You may want to adjust the objects in the Physical Diagram. If so, use the toolbar
buttons to zoom in, zoom out, fit the diagram, collapse or expand objects, select
objects, and so forth:
Congratulations! You have successfully created a new repository, imported tables from an
external data source into the Physical layer, and defined keys and joins.
Practices Overview
In these practices, you will create the Business Model and Mapping layer of a repository.
50 Practices for Lesson 4: Building the Business Model and Mapping Layer of a Repository
Practice 4-1: Creating the Business Model
Overview
In this practice, you create a business model in the Business Model and Mapping layer of the
repository.
Assumptions
In the previous practice, you created the Physical layer of the repository. You are now ready to
begin building the business model in the Business Model and Mapping layer of the repository.
The Business Model and Mapping layer of the Administration Tool defines the business model
of the data, and specifies the mapping between the business model and the Physical layer
schemas. Business models are also referred to as logical models or dimensional models.
Outcome
In the Business Model and Mapping layer, the Sample Apps business model is created with the
following logical tables: D1Time, D2 Products, D3 Customers, and F1 Revenue.
Time
20 minutes
Practices for Lesson 4: Building the Business Model and Mapping Layer of a Repository 51
Current State of the Repository
The initial business model that you build will be defined based on the revenue, product,
customer, and time data. In the previous set of practices, you built the Physical layer of the
repository, which now looks like the following:
52 Practices for Lesson 4: Building the Business Model and Mapping Layer of a Repository
b. Drag the following four alias tables simultaneously from the Physical layer onto the
Sample Apps business model.
D1 Time
D2 Products
D3 Customers
F1 Revenue
This action creates the logical tables with the logical columns in the business model.
The logical joins are automatically inherited from the joins defined in the Physical layer.
c. Notice that the logical tables have different table icons. In the Business Model and
Mapping layer, a hash symbol (#) indicates a fact table.
d. Click OK.
e. Repeat the renaming process for the logical source tables for the other logical tables:
LTS1 D2 Products, LTS1 D3 Customers, and LTS1 F1 Revenue.
Practices for Lesson 4: Building the Business Model and Mapping Layer of a Repository 53
5. Use the Rename Wizard to rename the logical columns in all the logical tables. You can
use the Rename Wizard utility for renaming the Business Model or Presentation layer
objects. You can use it to replace text strings, change all letters to lowercase, use
uppercase for the first letter of words, and so on. You can preview the new names before
committing the changes. It is primarily used on Business Model logical columns after
importing physical objects into the middle layer. The names that you give logical columns in
the business model can be exposed via the Presentation layer to end-user tools such as
the Analysis Editor. However, it is also possible to override logical column names in the
Presentation layer, as you will see later in this course. You can also rename logical objects
manually or right-click the object and select Rename.
a. Select Tools > Utilities > Rename Wizard and click Execute.
b. At the bottom of the middle pane, click Business Model and Mapping.
c. In the middle pane, expand Sample Apps > D1 Time logical table.
k. Click Next.
l. In the Rename Wizard – Finish window, preview the changes before committing them.
m. Click Finish.
n. Examine the changes in the repository and verify that they are as expected.
54 Practices for Lesson 4: Building the Business Model and Mapping Layer of a Repository
Oracle Internal & Oracle Academy Use Only
o. Save the repository.
p. Do not check global consistency.
6. Delete unnecessary logical columns.
a. In the Business Model and Mapping (BMM) layer, expand Sample Apps > F1
Revenue.
b. Use Ctrl + Click to select all the F1 Revenue logical columns, except Revenue and
Units.
c. Right-click any one of the highlighted logical columns and select Delete. Alternatively,
you can select Edit > Delete or press the Delete key on your keyboard.
d. Click Yes to confirm the delete.
7. In this step, you verify the logical table keys. For a business model to be valid, each logical
dimension table must have a logical key. Logical keys can be composed of one or more
logical columns. The logical key defines the lowest level (the most detailed level) of
information of any source in the logical table. In this example, the logical table keys were
built automatically when you dragged the tables from the Physical layer to the business
model.
a. Double-click the D2 Products logical table in the business model to open the Logical
Table dialog box.
b. Click the Keys tab.
Practices for Lesson 4: Building the Business Model and Mapping Layer of a Repository 55
c. Confirm that the Prod Key column is defined as the key for this table.
d. Click OK to close the Logical Table dialog box.
e. Repeat these steps and ensure that the Calendar Date column is defined as the
logical table key for the D1 Time table and Cust Key is defined as the logical table key
for the D3 Customers table.
8. In this step, you verify the logical table joins. Another requirement for a valid business
model is that the logical tables must be joined via logical joins. Logical joins express the
cardinality relationships between logical tables. Logical fact tables are always at the “many”
end of these cardinality relationships. Logical joins help Oracle BI Server understand the
relationships between the various pieces of the business model. When a query is sent to
Oracle BI Server, the server determines how to construct physical queries by examining
how the logical model is structured. Examining logical joins is an integral part of this
process.
c. Double-click one of the join connectors to open the Logical Join dialog box.
d. Leave the default values as they are, but notice which properties you can set in the
Logical Join dialog box: name, business model, tables, driving table, join type, and
cardinality. Also, notice which properties you cannot set: the join expression and the
join columns.
56 Practices for Lesson 4: Building the Business Model and Mapping Layer of a Repository
e. Do not change the default values. Click Cancel. Typically, when defining logical joins,
you leave the defaults as they are.
f. Close the Business Model Diagram window. The join relationships determine which
tables are the logical dimension tables and which is the logical fact table. Recall that a
fact table is always on the “many” side of a logical join. You now have a logical star
schema consisting of one logical fact table, F1 Revenue, and three logical dimension
tables: D1 Time, D2 Products, and D3 Customers.
9. Save the repository.
10. Click No when prompted to check global consistency.
11. Leave the repository open for the next practice.
Practices for Lesson 4: Building the Business Model and Mapping Layer of a Repository 57
Practice 4-2: Creating Simple Measures
Overview
In this practice, you examine the logical-to-physical column mappings and create simple
measures.
Assumptions
The Sample Apps business model is now defined in the Business Model and Mapping layer. In
this practice, you review the logical-to-physical table and column mappings to better understand
the relationships that exist between the logical tables and their logical table sources. You then
create measures by setting aggregation rules for logical columns. Then you check the physical
tables referenced by the business model.
Time
5 minutes
Tasks
1. In this step, you examine a logical table source (LTS). Each logical table in a business
model has a subfolder called Sources that contains the logical table sources. Logical table
sources contain the mappings from the logical columns in the Business Model and Mapping
(BMM) layer to the physical columns in the Physical layer. Every logical column maps
directly (or indirectly via another logical column) to a column or columns in the Physical
layer.
a. Expand the Sources folder of the F1 Revenue logical table. This logical table source
was created automatically during the process of dragging the F1 Revenue physical
table to the business model. Notice that the name of the logical table source for the F1
Revenue table is LTS1 F1 Revenue. Recall that you renamed the logical table source
in the previous practice.
b. Double-click the LTS1 F1 Revenue logical table source to open the Logical Table
Source dialog box.
c. Click the General tab. By default, the logical table source name corresponds to the
name of the physical table that was dragged from the Physical layer, but this name was
changed to LTS1 F1 Revenue. Notice also that the path to the physical table is
identified in the “Map to these tables:” area.
58 Practices for Lesson 4: Building the Business Model and Mapping Layer of a Repository
d. Click the Column Mapping tab to review how the logical columns are mapped to the
Physical layer. If necessary, adjust the column widths or drag the entire dialog box
window to make it larger or smaller. You should see three column headings: Logical
Column, Expression, and Physical Table. For example, the Revenue logical column is
mapped to the REVENUE physical column in the F1 Revenue physical table.
Practices for Lesson 4: Building the Business Model and Mapping Layer of a Repository 59
3. In this step, you check which physical tables are referenced by a business model. In some
situations, there may be tables that are included in the Physical layer, but not in the
Business Model and Mapping layer. Only the tables that are referenced in the Business
Model and Mapping layer, that is, only the tables that are included in logical table sources,
are used in queries. All other physical tables are ignored when Oracle BI Server queries the
physical database.
a. Select the Sample Apps business model.
b. Click the Physical Diagram icon on the toolbar.
c. The Physical Diagram displays all the physical tables that are currently referenced by
the Sample Apps business model.
d. Double-click the connector between the D3 Customers and the F1 Revenue tables.
Notice that the physical join is displayed. You can determine that this is a physical join
Congratulations! You have successfully built a business model in the Business Model and
Mapping layer of a repository and created business measures with aggregation rules.
60 Practices for Lesson 4: Building the Business Model and Mapping Layer of a Repository
Oracle Internal & Oracle Academy Use Only
Practices for Lesson 5:
Building the Presentation
Layer of a Repository
Practices for Lesson 5: Overview
Practices Overview
In these practices, you will create the Presentation layer of an Oracle Business Intelligence
repository.
Overview
In this practice, you create the Presentation layer of a repository.
Assumptions
You have created the initial Sample Apps business model in the repository. You now create the
Presentation layer of the repository. The Presentation layer exposes the business model objects
in the Oracle BI Analysis Editor so that users can build analyses to analyze data.
Outcome
In the Presentation layer of the repository, there is a Sample Sales subject area.
Tasks
1. In this step, you create the Presentation layer for the Sample Apps business model. The
Presentation layer has three types of objects: subject area, presentation table, and
presentation column. In the Oracle BI Analysis Editor, the subject area appears as a subject
area, the presentation table appears as a folder, and the presentation columns appear as
columns in the folders. The BISAMPLE repository should still be open in the Administration
Tool from the previous practice.
a. Ensure that the Presentation layer is visible. If it is not, select View > Presentation.
b. Drag the Sample Apps business model into the Presentation layer. A subject area is
created with the name Sample Apps.
c. Expand Sample Apps in the Presentation layer. When you create presentation objects
by dragging a business model to the Presentation layer, the business model becomes
a subject area, the logical tables become presentation tables, and the logical columns
become presentation columns. All objects within a subject area must derive from a
single business model.
6. In this step, you explore the properties of presentation columns. Presentation columns can
come from multiple logical tables in a business model. By default, a presentation column
uses the same name as its corresponding logical column in the Business Model and
Mapping layer. If you rename the columns in the Business Model and Mapping layer, the
corresponding presentation columns are automatically renamed wherever they appear in
the Presentation layer. However, the reverse is not true. If you rename a presentation
column, it does not impact the corresponding logical column in the Business Model and
Mapping layer. However, as with subject areas and tables, the repository stores an alias for
the column by using the previous name.
a. Expand the Products presentation table.
b. Double-click the Lob column. The Presentation Column dialog box opens.
c. Click the General tab.
d. Deselect Use Logical Column Name. The Name field can now be edited.
e. Change the column name by entering Line of Business in the Name field.
f. Click the Aliases tab and observe that the original logical column name is stored for
this presentation column.
g. Return to the General tab.
h. Which logical column does this presentation column map to?
k. Click the Edit button. The Logical Column dialog box opens.
l. Click the Column Source tab.
m. Which physical table and column does this presentation column map to?
n. Is this the original physical table that you imported, or the alias table that you created?
Answers
6.h. Which logical column does this presentation column map to?
Lob
6.i. Which business model does this presentation column map to?
Sample Apps
6.j. Which logical table does this presentation column map to?
D2 Products
6.n. Is this the original physical table that you imported, or the alias table that you created?
Alias table
Practices Overview
In these practices, you will test and validate a repository and make it available for queries.
Overview
In this practice, you test the repository by creating some analyses, retrieving the results, and
examining the query log.
Assumptions
You have finished building the initial business model, and now you test the repository before
continuing. You begin by checking the repository for errors by using the consistency check
option. You then test the repository by using the Analysis Editor to create and run analyses.
Finally, you examine the query log file to verify the SQL generated by Oracle BI Server.
Tasks
1. Modify the business model to generate an inconsistent business model due to a missing
logical join.
a. In the Business Model and Mapping layer, right-click Sample Apps and select
Business Model Diagram > Whole Diagram.
b. Select the join connection between the D1 Time and F1 Revenue logical tables.
c. Right-click the join and select Delete to create a condition in the business model where
an undefined join condition exists.
d. Click Yes to confirm the delete.
e. Close the Business Model Diagram window.
f. In the Business Model and Mapping layer, right-click Sample Apps and select Check
Consistency. The Consistency Check Manager appears, and displays an error
message for the Sample Apps business model. The error description explains that the
logical table, D1 Time, does not join to any other logical table.
b. Click Yes. You should receive the following message: “Consistency check didn’t find
any errors, warnings or best practice violations.”
d. In the Target Navigation pane, expand Business Intelligence and select biinstance.
j. Click Apply.
k. Select Change Center > Activate Changes.
d. For the Revenue column, select Column Properties to open the Column Properties
dialog box.
e. In the Column Properties dialog box, click the Data Format tab.
f. Select Override Default Data Format.
g. In the Treat Number As field, select Currency.
h. In the Currency Symbol field, select $.
i. In the Decimal Places field, select 2.
j. Select the Use 1000’s Separator check box.
k. In the bottom-right corner of the Column Properties dialog box, select Save as
Default > Save as the system-wide default for ‘Base Facts.Revenue’.
l. In the Per Name Year column, select Sort > Sort Ascending.
Congratulations! You have successfully used the Consistency Check Manager, Oracle BI
Analysis Editor, and the query log to test and check the repository.
Practices Overview
In these practices, you will manage the logical table sources in an Oracle BI repository.
Overview
In this practice, you import dimension tables with additional customer information into the
Physical layer of the repository.
Assumptions
There are tables in the BISAMPLE source schema that store additional information about
customers. You want to add these tables to the customer dimension in the Business Model and
Mapping layer. You import these tables into the repository, create aliases, and then create keys
and foreign key joins for the tables. You also enable logging for the repository to allow you to
check the query log.
Time
10 minutes
Tasks
1. In this step, you import additional customer tables that store customer address and
customer segment information. The customer dimension is an example of information
stored physically in a normalized table structure. In data warehouse design, this is referred
to as “snowflaking” a dimension. Many database administrators regard this as good
database design, so this is a very common practice. So far, you have included only the
information in the root customer table in the logical subject area. After import, you can
include related information from the other customer tables.
a. Return to the Administration Tool and open the BISAMPLE repository in offline mode
with the password welcome1.
b. In the Physical layer, expand the ORCL database object.
c. Right-click Sample Apps Connection Pool and select Import Metadata.
d. Accept the defaults in the Select Metadata Types window (Tables, Keys, and Foreign
Keys) and click Next.
e. In the “Data source view” pane, expand the BISAMPLE schema.
f. Use Ctrl + click to select the SAMP_ADDRESSES_D and
SAMP_CUST_SEGMENTS_D tables. Confirm that only the two tables are selected
and that no higher-level objects are selected.
g. Click the Import Selected button to move the tables to the Repository View pane.
Overview
In this practice, you add information from the customer segments table to the customer
dimension.
Assumptions
You have imported dimension tables that store additional information about customers into the
Physical layer of the repository, created aliases, and configured keys and joins for the tables. So
far, the D3 Customers logical table in the Business Model and Mapping layer has information
only from the root customer table: SAMP_CUSTOMERS_D. You now add information from the
Outcome
In the Business Model and Mapping layer, the SAMP_CUST_SEGMENTS_D physical table is
added to the existing logical table source for the D3 Customers logical table. A segment
description logical column is added to the D3 Customers logical table, mapped to the
appropriate physical column, and added to the Presentation layer.
Time
10 minutes
Tasks
1. In this step, you add the information from the customer segments table to an existing logical
table source for the D3 Customers logical table. This practice and the next illustrate two
methods to map new information to a logical table. In this practice, you use the properties
window of an existing logical table source, which is a manual process, and requires several
steps. In the next practice, you use a more automated process to add a new logical table
source.
a. In the Business Model and Mapping layer, expand the D3 Customers logical table,
and then the Sources folder. At this point, there is only one logical table source, LTS1
D3 Customers, for this logical table. This logical table source was created when you
initially created the D3 Customers logical table and its corresponding columns.
b. Double-click LTS1 D3 Customers to view its properties.
c. Click the Column Mapping tab. Notice that all the logical columns map to physical
columns in the D3 Customers physical alias table.
d. Click the General tab and notice that LTS1 D3 Customers currently maps to only the
D3 Customers table in the Physical layer.
e. Click the Add icon to add a new table to the logical table source. In the Browse
window, Query Only Selectable Objects is selected by default. As a result, only those
tables that are already joined directly to the table in the logical table source are visible.
Overview
In this practice, you add the information from the customer address table to the D3 Customers
logical table.
Assumptions
You have manually added information from the customer segments table to the D3 Customers
logical table. Now you add information from the customer addresses table to the D3 Customers
logical table by using a more “automated” method. This automated method adds a new logical
table source for the D3 Customers logical table, and simultaneously adds logical columns and
associated physical mappings.
Time
10 minutes
Tasks
1. In this step, you use an automated method to add a new logical table source and logical
columns to the D3 Customers logical table.
a. In the Business Model and Mapping layer, expand D3 Customers > Sources.
b. In the Physical layer, expand ORCL > BISAMPLE.
d. Double-click the new D32 Customer Addresses logical table source to open the
Logical Table Source dialog box.
e. On the General tab, rename the logical table source to LTS2 D3 Customer
Addresses.
Column Name
Address 1
Address 2
City
Country Name
Estab Name
Postal Code
Region
State Province
State Province Abbrv
e. Click OK to close the consistency check message. If you receive any error or warning
messages, fix them before proceeding.
f. Close the repository.
Practices Overview
In these practices, you will create calculation measures in an Oracle BI repository.
Overview
In this practice, you create calculation measures.
Assumptions
You use two different methods to create measures that contain calculations. First, you create a
measure that is derived from other existing logical columns as a way to apply post-aggregation
calculations to the measure. Then you create a measure by using physical columns as a way to
apply pre-aggregation calculations to the measure. In both cases, you use analyses and the
query log to verify your results.
Time
35 minutes
Tasks
1. In this step, you define a new logical measure that is derived from other existing logical
columns as a way to apply post-aggregation calculations to the measure.
a. Return to the Administration Tool, which should still be open, and open the BISAMPLE
repository in offline mode with the repository password welcome1.
b. In the Business Model and Mapping layer, right-click the F1 Revenue logical table and
select New Object > Logical Column.
c. On the General tab, name the column Actual Unit Price.
d. Click the Column Source tab.
e. Select Derived from existing columns using an expression.
f. Click the Edit Expression button to open the Expression Builder.
g. Under Category, select Logical Tables.
h. Under Logical Tables, select F1 Revenue.
i. Under Columns, select Revenue.
j. Click the Insert selected item arrow to add Revenue to the expression.
k. Click the division sign on the toolbar.
l. Under Columns, double-click the Units logical column to insert it in the formula.
Overview
In this practice, you create calculation measures by using the Calculation Wizard.
Assumptions
Using the Calculation Wizard, you create two calculation measures named Profit and Profit
Percent. The Profit measure calculates the difference between revenue and net costs. The
Profit Percent measure calculates the percentage of profit for net costs. The calculation
measures that are created by the Calculation Wizard are based on existing logical columns.
Time
20 minutes
Tasks
1. In this step, you create two calculation measures by using the Calculation Wizard.
a. In the Business Model and Mapping layer, expand the F1 Revenue table.
b. Right-click the Revenue column and select Calculation Wizard.
c. In the Calculation Wizard – Introduction dialog box, click Next.
d. In the Choose columns pane, F1 Revenue is selected. The columns that are available
to include in the calculation appear in the right pane.
e. Select the Net Costs check box.
f. Click Next.
g. In the Generate Calculations section, ensure that both the Change and Percent
Change check boxes are selected. It may be necessary to enlarge the dialog box to
see the selections.
r. Drag the Profit and Profit Percent logical columns to the Calculated Facts
presentation table in the Sample Sales subject area.
s. Save the repository and check consistency.
Overview
In this practice, you create a rank measure.
Assumptions
You use the RANK function to calculate rank for the Revenue logical column.
Time
20 minutes
Tasks
Overview
In this practice, you test the repository by generating some queries, retrieving the results, and
examining the query log.
Assumptions
You created five new measures in earlier practices: Actual Unit Price, Net Costs, Profit, Profit
Percent, and Rank Revenue. You now test the repository by using the Analysis Editor to run
queries with these measures. Finally, you examine the query log file to verify the SQL generated
by Oracle BI Server.
Tasks
1. Use the uploadrpd command to upload the BISAMPLE repository to BI Server.
a. Run the datamodel.cmd utility with the following uploadrpd parameters:
datamodel.cmd uploadrpd -I D:\repository\BISAMPLE.rpd -W
welcome1 -U weblogic -P welcome1 -SI ssi
b. Confirm that you receive the following message:
Operation Successful.
RPD upload completed successfully.
2. Open the Analysis Editor to execute queries and test the Sample Sales business model.
a. Return to the browser and sign in to Oracle BI Analysis Editor as weblogic with the
password welcome1.
b. Select Create… > Analysis to open the Select Subject Area window.
c. Click Sample Sales to open Analysis Editor.
d. Select Show More Buttons > Refresh > Reload Server Metadata.
e. Create the following analysis:
Products.Brand
Base Facts.Revenue
Base Facts.Units
Calculated Facts.Actual Unit Price
j. Click the Administration link, and then click Leave Page when prompted to open the
Administration page.
k. Under Session Management, click Manage Sessions to open the Manage Sessions
page.
l. Locate your query and click View Log in the Action field.
n. Notice that UNITS and REVENUE are summed first in the query, and then the division
of Actual Unit Price is calculated in the outer query block (D1.c2 / nullif (D1.c1,
0) as c5 in this example). Because you defined the Actual Unit Price calculation by
using logical columns, the columns are summed first, and then the division is
calculated.
b. Override the default data format for Net Costs to display the data as currency.
c. Click Results.
e. Notice that the addition of COST_FIXED and COST_VARIABLE is calculated first, and
then summed: (sum(T7.COST_FIXED + T7.COST_VARIABLE) as c1 in this
example). Compare these results with the query results for the prior calculation that
used existing logical columns in the formula, where the columns were summed first,
and then calculated. What are the advantages and disadvantages of defining a logical
column in terms of other logical columns, rather than in terms of the physical sources
directly? The advantage of defining a logical column formula based on existing logical
columns is that you have to define it only once. When you create formulas based on
physical columns, you have to map to each physical source from which they could be
b. Override the default data format for Profit to display the data as currency.
c. Override the default data format for Profit Percent to display the data as percentage.
d. Click Results.
e. Examine the query log. Your results should resemble the following screenshot:
The results show total revenue for each brand and how each brand ranks in the total
revenue.
c. Sign out of the Analysis Editor.
Practices Overview
In these practices, you build logical dimensions with level-based hierarchies.
Overview
In this practice, you add logical dimension hierarchies to the business model.
Assumptions
In this set of steps, you add logical dimension hierarchies to the business model. A logical
dimension represents a hierarchical organization of logical columns belonging to a single logical
dimension table. Logical dimensions can exist in the Business Model and Mapping layer and in
the Presentation layer. Adding logical dimensions to the Presentation layer exposes them to
users, which enables users to create hierarchy-based queries. In this practice, you build three
logical dimensions: Time, Product, and Customer. Creating logical dimensions with hierarchies
Outcome
In the Business Model and Mapping layer, there are Time, Product, and Customer logical
dimensions.
Time
35 minutes
Tasks
1. Create a logical dimension for products.
a. Return to the Administration Tool, which should still be open, and open the BISAMPLE
repository in offline mode with the repository password welcome1.
b. In the Business Model and Mapping layer, right-click Sample Apps and select New
Object > Logical Dimension > Dimension with Level-Based Hierarchy. The Logical
Dimension dialog box opens.
c. Name the logical dimension H2 Product.
d. Click OK. The new logical dimension appears in the Business Model and Mapping
layer. Notice the three-arrow icon.
4. In this step, you associate columns from the logical dimension table with levels in the logical
dimension hierarchy, starting from top to bottom. Some guidelines for associating columns
with levels are as follows:
• Not all columns in the dimension table must be associated explicitly with a level; the
ones that are not will be associated with the lowest level implicitly.
• No columns can be associated with more than one level (although it may be part of the
level key of a lower level).
• If a column pertains to more than one level, associate it with the highest level that it
belongs to.
• No level except the Grand Total level can exist without at least one column being
associated with it.
• The detail level (lowest level) must have the column that is the logical key of the
dimension table associated with it and it must be the key for that level.
a. In the Business Model and Mapping layer, expand the D2 Products table.
b. Drag the Brand column from D2 Products to the Product Brand level in H2 Product.
g. Click the drop-down list for the Product Type logical level. Notice that this is another
method for associating logical columns with dimensions and logical levels. You use this
method in the next practice. Leave the logical level set to Product Type.
h. Click Cancel to close the Logical Column dialog box.
h. Click OK to close the Logical Level dialog box. In the H2 Product logical dimension, the
icon changes for Brand to show that it is the key for the Product Brand level.
6. Set the level keys for the Product LOB level by using a different method.
a. In the H2 Product logical dimension, right-click the Lob column for the Product LOB
level and select New Logical Level Key to open the Logical Level Key dialog box.
b. Ensure that the Lob check box is selected.
c. Ensure that the Use for Display check box is selected.
d. Click OK to close the Logical Level Key dialog box.
e. In the H2 Product logical dimension, the icon changes for Lob to show that it is the key
for the Product LOB level.
7. Use either method to set the remaining keys for the H2 Product logical dimension:
Logical Level Logical Level Key Use for Display
Product Type Type Yes
Product Detail Prod Dsc Yes
Product Detail Prod Key No
Overview
In this practice, you create level-based measures.
Assumptions
Now that you have created level-based logical dimension hierarchies, you create level-based
measures that can be used to calculate total revenue at various levels in a hierarchy.
Time
30 minutes
Overview
In this practice, you create a share measure by using level-based measures.
Assumptions
Now that you have created level-based measures, you use them to create a share measure for
products.
Time
10 minutes
Overview
In this practice, you create a measure with dimension-specific aggregation rules.
Assumptions
You create a measure called Average Daily Revenue, which sums dollar amounts over the
customer and product dimensions, and divides by the number of days in the time dimension.
This measure can be used to compare the average daily dollar amount from month to month
when the number of order days in each month varies.
Time
Tasks
2. Create a new measure with dimension-specific aggregation rules.
a. In the Business Model and Mapping layer, right-click F1 Revenue and select New
Object > Logical Column.
b. On the General tab, name the logical column Average Daily Revenue.
c. Click the Column Source tab.
d. In the Column Source Type section, select Show all logical sources.
e. Double-click the LTS1 F1 Revenue logical table source.
f. Click the Column Mapping tab.
g. Ensure that Show unmapped columns is selected.
h. Use the Expression column to map Average Daily Revenue to the REVENUE column
in the F1 Revenue physical table.
Overview
In this practice, you create presentation hierarchies that expose logical dimension hierarchies in
Oracle BI analyses.
Assumptions
Presentation hierarchies and presentation levels provide an explicit way to expose the
multidimensional model in Oracle BI analyses and dashboards. When presentation hierarchies
and levels are defined in the Presentation layer, roll-up information is displayed in the Analysis
Editor’s navigation pane, providing users with important contextual information. Most
importantly, users can create hierarchy-based queries by using these objects.
Time
15 minutes
Tasks
1. Modify the customer logical dimension to include multiple hierarchies.
a. Expand the H3 Customer logical dimension.
b. Right-click the Customer Total level and select New Object > Shared Level as Child.
c. In the Browse dialog box, de-select Show Qualified Names, select Customer City,
and click OK. This creates a second hierarchy named Customer City in the H3
Customer logical dimension:
Practices Overview
In these practices, you build logical dimensions with parent-child hierarchies, and logical
dimensions with ragged and skipped-level hierarchies.
148 Practices for Lesson 10: Working with Logical Dimension Hierarchies
Practice 10-1: Creating Parent-Child Hierarchies
Overview
In this practice, you create a parent-child hierarchy.
Assumptions
A parent-child hierarchy is a hierarchy of members that have the same type. This contrasts with
level-based hierarchies, where members of the same type occur only at a single level of the
hierarchy. The most common real-life occurrence of a parent-child hierarchy is an organizational
reporting hierarchy chart, where the following apply:
• Each individual in the organization is an employee.
• Each employee, apart from the top-level managers, reports to a single manager.
Outcome
A parent-child hierarchy is added to the business model.
Time
40 minutes
Tasks
1. Import employee tables into the repository.
a. Return to the Administration Tool and open the BISAMPLE repository in offline mode
with the repository password welcome1.
b. In the Physical layer, expand ORCL.
c. Right-click Sample Apps Connection Pool and select Import Metadata.
d. Accept the defaults in the Select Metadata Types window and click Next.
e. In the Select Metadata Objects window, expand the BISAMPLE schema in the Data
source view pane.
f. Select the following tables and add them to the Repository view pane:
SAMP_EMPL_D_VH
SAMP_EMPL_PARENT_CHILD_MAP
SAMP_EMPL_POSTN_D
Practices for Lesson 10: Working with Logical Dimension Hierarchies 149
g. When the import completes, deselect Show complete structure and expand
BISAMPLE in the Repository View pane to verify that the tables are added.
h. Click Finish to close the Import Wizard and add the tables to the repository.
i. Expand BISAMPLE in the Physical layer and verify that the tables are imported.
j. Update row counts to confirm connectivity.
2. Explore the new tables.
150 Practices for Lesson 10: Working with Logical Dimension Hierarchies
4. Use the Physical Diagram to create the following physical joins for the alias tables:
Practices for Lesson 10: Working with Logical Dimension Hierarchies 151
j. Click the Column Mapping tab to view how the columns are mapped.
152 Practices for Lesson 10: Working with Logical Dimension Hierarchies
c. Create a logical join between D5 Sales Rep and F1 Revenue with F1 Revenue at the
“many” end of the join.
d. Close the Business Model Diagram. Notice that creating the logical join changed the
icon for the D5 Sales Rep logical table.
7. Create a logical dimension with a parent-child hierarchy based on the D5 Sales Rep logical
table.
Practices for Lesson 10: Working with Logical Dimension Hierarchies 153
i. Click OK to close the Browse window, but do not close the Logical Dimension dialog
box.
8. Define the parent-child settings. For each parent-child hierarchy that is defined on a
154 Practices for Lesson 10: Working with Logical Dimension Hierarchies
Oracle Internal & Oracle Academy Use Only
b. Click the Select Parent-Child Relationship Table button to open the Select
Parent-Child Relationship Table dialog box.
c. Select the D51 Sales Rep Parent Child alias that you created.
Practices for Lesson 10: Working with Logical Dimension Hierarchies 155
d. The D51 Sales Rep Parent Child alias is now displayed in the Parent-Child
Relationship Table field in the Parent-Child Relationship Table Settings dialog box.
e. In the Parent-Child Table Relationship Column Details section, set the appropriate
columns. Member Key identifies the member. Parent Key identifies an ancestor of the
156 Practices for Lesson 10: Working with Logical Dimension Hierarchies
g. Check your work:
Practices for Lesson 10: Working with Logical Dimension Hierarchies 157
p. Click OK to close the Logical Level dialog box.
q. Expand F1 Revenue > Sources and double-click LTS1 F1 Revenue to open the
Logical Table Source dialog box.
158 Practices for Lesson 10: Working with Logical Dimension Hierarchies
g. Click OK to close the Presentation Hierarchy dialog box.
h. Save the repository.
i. Check consistency. Fix any errors or warnings before proceeding.
j. Close the repository.
k. Leave the Administration Tool open.
10. Open the Analysis Editor to execute queries and test the Sample Sales business model.
a. Use the uploadrpd command to upload the BISAMPLE repository to BI Server.
b. Return to the browser, sign in to Oracle BI as weblogic with the password
welcome1.
c. Select New > Analysis to open the Select Subject Area window.
d. Select the Sample Sales subject area.
Practices for Lesson 10: Working with Logical Dimension Hierarchies 159
Practice 10-2: Creating Logical Dimensions with Ragged and Skipped-
Level Hierarchies
Overview
In this practice, you create logical dimensions with ragged and skipped-level hierarchies.
Assumptions
An unbalanced (or ragged) hierarchy is a hierarchy where the leaves (members with no
children) do not necessarily have the same depth. A skipped-level hierarchy is a hierarchy
where there are members that do not have a value for a particular ancestor level.
Time
Tasks
1. Import metadata and define the Physical Layer objects.
a. Return to the Administration Tool and open the BISAMPLE repository in offline mode
with the password welcome1.
b. In the Physical layer, expand ORCL.
c. Right-click Sample Apps Connection Pool and select Import Metadata to open the
Import Wizard.
d. On the Select Metadata Types screen, accept the defaults and click Next.
e. On the Select Metadata Objects screen, in the Data source view, expand BISAMPLE.
f. In the Data source view, select the SAMP_PRODUCTS_DR table for import.
g. Click the Import Selected button to move the table to the Repository View.
h. Expand BISAMPLE in the Repository View and confirm that the
SAMP_PRODUCTS_DR table is visible.
i. Click Finish to close the Import Wizard.
j. Confirm that the SAMP_PRODUCTS_DR table is visible in the Physical layer of the
repository.
k. Create a D20 Product alias for the SAMP_PRODUCTS_DR table.
l. Use the Physical Diagram to create the following physical join for the alias table:
"orcl".""."BISAMPLE"."D20 Product"."PROD_KEY" =
"orcl".""."BISAMPLE"."F1 Revenue"."PROD_KEY"
m. Close the Physical Diagram.
n. Right-click D20 Product and select View Data. Notice that there are skipped levels in
the hierarchy. For example, A - Brand2 has a NULL value for LOB for the product D -
Product 8.
160 Practices for Lesson 10: Working with Logical Dimension Hierarchies
o. Close View Data.
2. Create the logical table and logical columns.
a. Drag D20 Product from the Physical layer to the Sample Apps business model in the
Practices for Lesson 10: Working with Logical Dimension Hierarchies 161
d. On the General tab, select both Ragged and Skipped Levels.
162 Practices for Lesson 10: Working with Logical Dimension Hierarchies
4. Define the logical levels.
a. Expand D20 Product > Sources and double-click LTS1 Product (Ragged) to open
the Logical Table Source dialog box.
b. On the Content tab, set the logical level to Product Detail and click OK.
c. Expand F1 Revenue > Sources and double-click LTS1 F1 Revenue to open the
Logical Table Source dialog box.
d. On the Content tab, set the logical level for H20 Product to Product Detail and click
OK.
5. Create the Presentation layer objects.
a. Drag the D20 Product logical table to the Sample Sales subject area in the
Presentation layer.
b. In the Presentation layer, rename D20 Product to Products (Ragged) and move
Practices for Lesson 10: Working with Logical Dimension Hierarchies 163
g. Click Results. The results display correctly even though there are skipped levels
(levels with NULL values) and ragged levels (leaves with varying depth).
164 Practices for Lesson 10: Working with Logical Dimension Hierarchies
Oracle Internal & Oracle Academy Use Only
Practices for Lesson 11:
Managing Usage Tracking
Practices for Lesson 11: Overview
Practices Overview
In these practices, you will set up and administer usage tracking.
Overview
In this practice, you set up and administer usage tracking.
Assumptions
Oracle BI Server supports the accumulation of usage tracking statistics that can be used in a
variety of ways, such as for database optimization, aggregation strategies, or billing users or
departments based on the resources they consume. Oracle BI Server tracks usage at the
detailed query level. You can monitor the queries generated to help identify performance
improvement areas. You use the recommended usage tracking approach, which is to track
statistics by loading them directly into a database table rather than a log file. You use the usage
Time
30 minutes
Tasks
1. Create a usage tracking database object.
a. Open the BISAMPLE repository in offline mode with the password welcome1.
b. Right-click inside the Physical layer white space and select New Database to open the
Database properties dialog box.
c. Click the General tab and name the database Usage Tracking Database.
d. In the Database Type drop-down list, select Oracle 12c.
e. Click the Connection Pools tab.
f. Click Add to open the Connection Pool dialog box.
g. Name the connection pool Usage Tracking Connection Pool.
h. Set call interface to Default (OCI 10g/11g).
i. Enter ORCL for the data source name.
j. Enter BISAMPLE for username and password.
k. Click OK.
l. Confirm the password, and click OK.
m. Click OK to close the Database properties dialog box.
n. Right-click Usage Tracking Connection Pool and select Import Metadata.
o. Accept the default metadata types and click Next.
p. Expand BISAMPLE and import S_NQ_ACCT into the Usage Tracking Database
object. This creates a new BISAMPLE schema with the S_NQ_ACCT table in the
Usage Tracking Database object in the Physical layer.
q. In the Physical layer, rename the BISAMPLE schema to Usage Tracking Schema.
c. Check the query log and verify that the Usage Tracking Database, Usage Tracking
Connection Pool, S_NQ_ACCT table, and the expected columns are accessed in the
query.
Practices Overview
In these practices, you will set up and use aggregate tables to improve query performance.
176 Practices for Lesson 12: Using Model Checker and Aggregates
Practice 12-1: Using Aggregate Tables
Overview
In this practice, you set up and use aggregate tables to improve query performance.
Assumptions
Aggregate tables store pre-computed results, which are measures that have been aggregated
(typically summed) over a set of dimensional attributes. Using aggregate tables is a popular
technique for speeding up query response times in decision support systems. This eliminates
the need for runtime calculations, and delivers faster results to users. The calculations are done
ahead of time and the results are stored in the tables. Aggregate tables typically have much
fewer rows than the non-aggregate tables and, therefore, processing is faster.
Tasks
1. Import tables with aggregated time and revenue data into the Physical layer of the
repository. You need both aggregate fact and aggregate dimension tables because you
must create logical dimension sources at the same level of detail as the fact sources.
a. Return to the Administration Tool and open the BISAMPLE repository in offline mode
with the password welcome1.
b. Given that you will not be using usage tracking for the remainder of the course, delete
the Usage Tracking subject area in the Presentation layer, the Usage Tracking
business model in the Business Model and Mapping layer, and the Usage Tracking
Database in the Physical layer.
c. In the Physical layer, expand ORCL.
d. Right-click Sample Apps Connection Pool and select Import Metadata to open the
Import Wizard.
e. On the Select Metadata Types screen, select Tables, Keys, Foreign Keys, and
Views, and then click Next.
f. On the Select Metadata Objects screen, in the data source view, expand BISAMPLE.
g. In the data source view, select the following for import:
SAMP_REVENUE_FA2
SAMP_TIME_QTR_D
h. Click the Import Selected button to move the objects to the Repository View.
i. Deselect Show complete structure, expand BISAMPLE in the Repository View, and
confirm that the objects are visible.
j. Click Finish to close the Import Wizard.
k. Confirm that the objects are visible in the Physical layer of the repository.
Practices for Lesson 12: Using Model Checker and Aggregates 177
l. Create the following aliases:
Table Alias
SAMP_REVENUE_FA2 F2 Revenue Aggregate
SAMP_TIME_QTR_D D1 Time Quarter Grain
m. Right-click F2 Revenue Aggregate and select View Data. F2 Revenue Aggregate
stores aggregated fact information for revenue and units at the quarter and product
grain.
178 Practices for Lesson 12: Using Model Checker and Aggregates
q. Use the Physical Diagram to create the following physical joins:
"orcl".""."BISAMPLE"."D2 Products"."PROD_KEY" =
"orcl".""."BISAMPLE"."F2 Revenue Aggregate"."PROD_KEY"
e. Rename the D1 Time Quarter Grain logical table source to LTS2 D1 Time Quarter
Grain.
f. Double-click LTS2 D1 Time Quarter Grain to open the Logical Table Source dialog
box.
Practices for Lesson 12: Using Model Checker and Aggregates 179
g. On the Column Mapping tab, make sure that “Show mapped columns” is selected and
“Show unmapped columns” is deselected. Note the column mappings. The logical
columns now map to columns in two physical tables: D1 Time and D1 Time Quarter
Grain.
180 Practices for Lesson 12: Using Model Checker and Aggregates
3. Set aggregate content.
a. Click the Content tab.
b. Set the following logical levels for the logical dimensions:
Logical Dimension Logical Level
H1 Time Quarter
H2 Product Product Total
H20 Product Product Total
H3 Customer Customer Total
H5 Sales Rep Total
c. Check your work.
Explanation: You are setting aggregation content for the fact table to the
corresponding levels in the dimension hierarchies. In a subsequent step, you set
similar levels for the aggregate logical table source for the Time dimension. Note that
all levels are set to the total level except the H1 Time logical dimension, which is set to
Practices for Lesson 12: Using Model Checker and Aggregates 181
Quarter. The result is, when a user queries against a particular level, Oracle BI Server
accesses the aggregate tables instead of the detail tables.
For example, if a user queries for total sales by product by quarter, the server
accesses the F2 Revenue Aggregate fact table and the corresponding aggregate
dimension table, D1 Time Quarter Grain. If a user queries for a level lower than the
level specified here (such as, Month instead of Quarter), the server accesses the detail
tables (F1 Revenue and D1 Time). If a user queries for a higher level (such as, Year
instead of Quarter), the aggregate tables are used because whenever a query is run
against a logical level or above, the aggregate tables are used.
d. Click OK to close the Logical Table Source dialog box.
e. Double-click the LTS2 D1 Time Quarter Grain logical table source to open the Logical
Table Source dialog box.
182 Practices for Lesson 12: Using Model Checker and Aggregates
d. Click Results.
f. Create another new analysis in the Sample Sales subject area to test the aggregate
tables:
Time.Per Name Year
Base Facts.Revenue
g. Click Results.
Practices for Lesson 12: Using Model Checker and Aggregates 183
h. Check the query log. Notice that the query uses the same aggregate tables: D1 Time
Quarter Grain and F2 Revenue Aggregate. This is because Per Name Year is at a
higher level than Per Name Quarter in the logical dimension hierarchy and, therefore,
the aggregate tables are still used.
184 Practices for Lesson 12: Using Model Checker and Aggregates
k. Inspect the query log. Notice that this time the query uses the detail tables: D1 Time
and F1 Revenue. This is because the requested data (revenue by month) is at a lower
level than what is contained in the aggregate tables. The aggregate tables do not
contain the data and, therefore, the detail tables are used in the query. This aggregate
navigation is controlled by the aggregate content levels that you set in the logical table
sources.
Practices for Lesson 12: Using Model Checker and Aggregates 185
Practice 12-2: Using the Aggregate Persistence Wizard
Overview
In this practice, you use the Aggregate Persistence Wizard to automate the creation of
aggregate tables and their corresponding objects in the repository.
Assumptions
The traditional process for creating aggregates for Oracle BI Server queries is manual, requiring
the writing of data definition language (DDL) and data manipulation language (DML) scripts to
create tables in the databases that are involved. Additionally, as shown in the previous practice,
these aggregated tables must be mapped to the repository metadata to be available for queries.
This is a time-consuming and possibly error-prone process. The Aggregate Persistence Wizard
Time
30 minutes
Tasks
1. Before you use the Aggregate Persistence Wizard to create aggregate tables, use the
Model Check Manager to check for modeling issues.
a. Return to the Administration Tool and select File > Open > Online to open the
BISAMPLE repository in online mode with weblogic as the user and welcome1 as
the repository password.
b. In the Business Model and Mapping layer, right-click the Sample Apps business
model and select Check Model > Complete. The Model Check Manager opens with a
list of errors and warnings.
186 Practices for Lesson 12: Using Model Checker and Aggregates
Oracle Internal & Oracle Academy Use Only
c. Make sure that both Errors and Warnings are checked and scroll to view the
messages. The warning messages identify logical columns that are not assigned to a
level. You can ignore the warning messages. You should not see any error messages.
If you do, ask your instructor for assistance.
d. Close the Model Check Manager.
e. Leave the Administration Tool open.
2. In this step, you use the Aggregate Persistence Wizard to build a script that is used to
create aggregate tables and the corresponding repository metadata.
a. Select Tools > Utilities > Aggregate Persistence and click Execute.
b. On the Select File Location screen, in the File Name field, enter Create_AGG. This
specifies the file where the output script is saved. This file stores the aggregate
specifications, and is updated if more aggregates are specified.
c. Click Browse. Navigate to D:\PracticeFiles and click OK.
d. Click Next.
e. In the top pane, select the Sample Apps business model. When there are multiple
business models, only one business model can be selected.
f. In the bottom pane, expand the F1 Revenue fact table. When there are multiple fact
tables, only one fact table can be selected.
Practices for Lesson 12: Using Model Checker and Aggregates 187
g. Select the Revenue measure.
188 Practices for Lesson 12: Using Model Checker and Aggregates
i. Select the following levels. Leave the “Use Surrogate Key?” field check box
deselected.
H2 Product: Product Type
H1 Time: Month
Practices for Lesson 12: Using Model Checker and Aggregates 189
m. In the Aggregate table name field, enter ag_F3_Revenue for the aggregate table
name.
190 Practices for Lesson 12: Using Model Checker and Aggregates
q. Repeat the steps to create another aggregate named ag_F4_Revenue with the
measure Revenue and the levels: H1 Time: Month and H2 Product: Product Brand.
r. Select I am done.
t. Click Finish.
u. On the title bar of the Administration Tool, notice the BISERVER data source name
(DSN) for the Oracle BI Server to which you are connected. You will need this DSN
later in this set of practices.
Practices for Lesson 12: Using Model Checker and Aggregates 191
x. Open the Create_AGG file in Notepad to view its contents:
192 Practices for Lesson 12: Using Model Checker and Aggregates
i. Wait until you receive the “Statement execute succeeded.” message.
Practices for Lesson 12: Using Model Checker and Aggregates 193
b. In the Physical layer, ensure that the aggregates were created in the BISAMPLE
schema. There should be two new fact aggregates, ag_F3_Revenue and
ag_F4_Revenue, and three new dimension aggregates beginning with SA_ in the
Physical layer. Your results should resemble the following screenshot:
194 Practices for Lesson 12: Using Model Checker and Aggregates
5. Verify that the aggregates are created in the Business Model and Mapping layer of the
repository.
a. In the Business Model and Mapping layer, open the Sources folder for the F1
Revenue logical table and confirm that new logical table sources are created for the
aggregates. Your results should look similar to the following screenshot:
Practices for Lesson 12: Using Model Checker and Aggregates 195
f. Click the Content tab and confirm that the logical levels are set correctly. H1 Time
should be set to Month and H2 Product should be set to Product Type.
i. Open the Sources folders for the D1 Time logical table and confirm that a new logical
table source is created for the aggregate. Your results should look similar to the
following screenshot:
j. Rename the new logical table source to LTS3 D1 Time Month Grain. Check out
objects when prompted.
196 Practices for Lesson 12: Using Model Checker and Aggregates
k. Confirm that the column mappings are mapped correctly, and that the logical level is
set correctly to Month for the LTS3 D1 Time Month Grain logical table source that was
generated by the Aggregate Persistence Wizard. Your results should look similar to the
following screenshot:
m. Recall that one product dimension aggregate was generated for the Product Type
logical level, and one was generated for the Product Brand logical level. Determine
which aggregate is for Product Type and rename it to LTS2 D2 Product Type.
Rename the other aggregate to LTS3 D2 Product Brand.
Practices for Lesson 12: Using Model Checker and Aggregates 197
n. Confirm that the columns and logical levels are set correctly for the new logical table
sources generated by the Aggregate Persistence Wizard. Your results should look
similar to the following screenshots:
198 Practices for Lesson 12: Using Model Checker and Aggregates
q. Check consistency. Fix any consistency check errors before proceeding. You can
ignore the warning User “weblogic” is not defined in the Enterprise Manager.
r. Save and close the repository. Notice that you do not have to make any changes to the
Presentation layer.
s. Leave the Administration Tool open.
6. Use the Analysis Editor to test your work.
a. Sign in to Oracle BI as weblogic with the password welcome1.
b. Create a new analysis for the Sample Sales subject area.
c. Reload server metadata. Because you implemented all your changes in online mode,
there is no need to upload the repository.
d. Create the following analysis:
Products.Type
Practices for Lesson 12: Using Model Checker and Aggregates 199
f. Inspect the query log and confirm that the query used the ag_F3_Revenue fact
aggregate table and the related SA_Product* dimension aggregate. Oracle BI Server
uses the most economical sources to satisfy the query. Your log should resemble the
following screenshot:
h. Inspect the query log and confirm that the query used the ag_F4_Revenue fact
aggregate table and the related SA_Product* dimension aggregate. Your log should
resemble the following screenshot:
200 Practices for Lesson 12: Using Model Checker and Aggregates
Oracle Internal & Oracle Academy Use Only
Practices for Lesson 13:
Using Partitions and
Fragments
Practices for Lesson 13: Overview
Practices Overview
In these practices, you model partitions in an Oracle BI repository.
Overview
In this practice, you model a value-based partition.
Assumptions
You want to store fact data in two separate partitions, one for recent data and one for historical
data. Each partition contains the same columns. Only the data values are different. The
historical data partition stores revenue fact data up to and including December 31, 2009. The
recent data partition stores fact data after December 31, 2009.
Time
Tasks
1. Import two value-based partitioned sources with fact data into the Physical layer.
a. Return to the Administration Tool and open the BISAMPLE repository in offline mode
with the repository password welcome1.
b. In the Physical layer, expand ORCL.
c. Right-click Sample Apps Connection Pool and select Import Metadata.
d. Accept the defaults in the Select Metadata Types window and click Next to open the
Select Metadata Objects window.
e. Expand the BISAMPLE schema.
f. In the “Data source view” pane, select the SAMP_REVENUE_F_RECENT and
SAMP_REVENUE_F_HISTORICAL tables for import.
g. Click the Import selected button to add the tables to the Repository View pane.
h. Expand BISAMPLE in the Repository View pane and confirm that the
SAMP_REVENUE_F_RECENT and the SAMP_REVENUE_F_HISTORICAL tables
are added.
i. Click Finish to add the tables to the repository.
j. Expand BISAMPLE in the Physical Layer and confirm that the
SAMP_REVENUE_F_RECENT and SAMP_REVENUE_F_HISTORICAL tables are
added to the repository. SAMP_REVENUE_F_HISTORICAL has fact data for 2007‒
2009. SAMP_REVENUE_F_RECENT has fact data for 2010.
k. Update row counts for the two new tables to ensure connectivity.
SAMP_REVENUE_F_RECENT: 7342 rows
SAMP_REVENUE_F_HISTORICAL: 12658 rows
l. Create the following aliases:
F11 Revenue Recent
F12 Revenue Historical
"ORCL".""."BISAMPLE"."D1 Time"."CALENDAR_DATE" =
"ORCL".""."BISAMPLE"."F11 Revenue Recent"."BILL_DAY_DT"
"ORCL".""."BISAMPLE"."D2 Products"."PROD_KEY" =
"ORCL".""."BISAMPLE"."F11 Revenue Recent"."PROD_KEY"
"ORCL".""."BISAMPLE"."D3 Customers"."CUST_KEY" =
"ORCL".""."BISAMPLE"."F11 Revenue Recent"."CUST_KEY"
"ORCL".""."BISAMPLE"."D1 Time"."CALENDAR_DATE" =
"ORCL".""."BISAMPLE"."F12 Revenue Historical"."BILL_DAY_DT"
"ORCL".""."BISAMPLE"."D3 Customers"."CUST_KEY" =
"ORCL".""."BISAMPLE"."F12 Revenue Historical"."CUST_KEY"
2. Create two new logical table sources for the F1 Revenue logical table.
a. Expand Sample Apps > F1 Revenue > Sources in the Business Model and Mapping
layer.
b. Expand F11 Revenue Recent in the Physical layer.
c. Drag the REVENUE column from F11 Revenue Recent to the Revenue column in F1
Revenue. This creates a new logical table source named F11 Revenue Recent, and
maps the column.
d. Repeat the steps for the REVENUE column in F12 Revenue Historical. This creates a
new logical table source named F12 Revenue Historical, and maps the column.
e. Rename the F11 Revenue Recent logical table source to LTS3 F11 Revenue Recent.
Notice that Order Date records are returned for dates that are both before and after
31-DEC-09. The screenshot shows only a partial display of the total records returned.
6. Verify that your results are correct when Order Date is greater than 12/31/2009.
a. Return to the Analysis Editor and create the same analysis, but with a filter in which
Order Date is greater than 12/31/2009.
b. Run the analysis.
c. Verify that your result displays only those records in which Order Date is greater than
12/31/2009.
Practices Overview
In these practices, you create and use dynamic repository variables with initialization blocks.
Overview
In this practice, you create and use dynamic repository variables with initialization blocks.
Assumptions
Dynamic repository variables are useful for defining the content of logical table sources. In the
practice for the previous lesson titled “Using Partitions and Fragments,” you created two
sources for information about orders: one source containing recent orders and the other source
containing historical data. You described the content of these sources on the Content tab of the
Logical Table Source dialog box.
Without using dynamic repository variables, you would have to describe the content of the
Outcome
A new initialization block called OrderSplit is created with a variable named EndHistoricalData.
In the Business Model and Mapping layer, the sources of logical tables are modified for the F1
Revenue logical table.
Time
25 minutes
Tasks
1. Create a dedicated connection pool for the variable initialization block.
Note: It is recommended that you create a dedicated connection pool for initialization
blocks. This connection pool should not be used for queries.
a. Return to the Administration Tool and open the BISAMPLE repository in offline mode
with the repository password welcome1.
b. In the Physical layer, right-click the ORCL database object and select New Object >
Connection Pool to open the Connection Pool dialog box.
c. On the General tab, name the connection pool Variables.
d. Confirm that the call interface is set to Default (OCI 10g/11g).
e. Enter ORCL as the data source name.
f. Enter BISAMPLE as the username and password.
2. In this step, you create an initialization block. Initialization blocks contain SQL statements
that initialize variables. The variables are repository variables and their values persist until
h. Click Close.
i. Create the same analysis and edit the filter to show records in which Order Date is
greater than 12/31/2009.
Overview
In this practice, you create and use dynamic repository variables as filters.
Assumptions
Rather than creating hard-coded column filters such as Year = 2009 in analyses, you want to
use variables that always return the current year, current month, and current day. You create
these dynamic repository variables, and then use them in column filters in Oracle BI analyses.
Outcome
You create a new initialization block (Current Periods) and three new dynamic repository
Time
15 minutes
Tasks
1. Create a new initialization block that will initialize three variables named CurrentYear,
CurrentMonth, and CurrentDay. The variables will get their values from the initialization
block SQL according to the schedule that you set. In this example, the system determines
the value of the current day by finding the maximum value of the order date
(ORDER_DAY_DT) in the SAMP_REVENUE_F table, and then determining the month and
year that correspond to that value in the SAMP_TIME_DAY_D table.
a. Return to the Administration Tool and open the BISAMPLE repository in offline mode
with the repository password welcome1.
b. Select Manage > Variables.
c. Select Action > New > Repository > Initialization Block.
d. Name the initialization block CurrentPeriods.
e. Click Edit Data Source to open the Repository Variable Initialization Block Data
Source dialog box.
f. Click the Browse button.
g. Double-click the Variables connection pool object to select it.
h. Make sure that Default initialization string is selected.
Note that in this example, the results are determined based on the data in the
BISAMPLE database that is used for this course, which holds data only through
December 2010.
f. Click Close to close the Results window.
h. Click Results and ensure that only data for the current year, current month, and
current day (2010 based on this data set) is returned.
Practices Overview
In these practices, you model time series data by using Oracle BI time series functions.
Overview
In this practice, you create time series calculation measures by using Oracle BI time series
functions.
Assumptions
You use Oracle BI time series functions to create new measures to enable users to compare
current revenue performance to previous time periods. You then add the new measures to the
subject area and test the measures by using analyses.
The time series functions include AGO, TODATE, and PERIODROLLING. These functions let
you use the Expression Builder to call a logical function to perform time series calculations
Time
25 minutes
Tasks
1. In the Sample Apps business model, set the H1 Time logical dimension as a time
dimension.
a. Return to the Administration Tool and open the BISAMPLE repository in offline mode
with the repository password welcome1.
b. In the Sample Apps business model, double-click the H1 Time logical dimension.
o. Drag the Month Ago Revenue logical column to the Calculated Facts presentation
table.
4. Create a measure that calculates the difference in revenue between the current month and
the previous month.
a. Right-click the F1 Revenue logical table and select New Object > Logical Column.
b. On the General tab, name the new logical column Change Month Ago Revenue.
c. On the Column Source tab, select Derived from existing columns using an
expression.
d. Open the Expression Builder.
n. Click OK to close the Logical Column dialog box. Oracle Internal & Oracle Academy Use Only
o. Drag the Revenue 3-Period Rolling Sum logical column to the Calculated Facts
presentation table.
p. Save the repository.
q. Check consistency. Fix errors or warnings, if any, before you proceed.
r. Close the repository.
s. Keep the Administration Tool open.
The Revenue 3-Period Rolling Sum measure displays results based on the query
grain.
f. Sign out of Oracle BI.
Practices Overview
In these practices, you model many-to-many relationships in an Oracle BI repository.
Overview
In this practice, you configure a bridge table for office and channel data.
Assumptions
You can use logical mappings to address dimensions that have a many-to-many relationship
with one another. In the example in this practice, a bridge table provides correspondence
between offices and channels. An office can have multiple channels, and each channel belongs
to more than one office. The logical model leverages the bridge table to show revenue from
each dimension grain.
Tasks
1. Import tables into the repository.
a. Return to the Administration Tool and open the BISAMPLE repository in offline mode
with the repository password welcome1.
b. In the Physical layer, expand ORCL.
c. Right-click Sample Apps Connection Pool and select Import Metadata.
d. Accept the defaults on the Select Metadata Types screen and click Next to open the
Select Metadata Objects screen.
e. Scroll to the BISAMPLE schema and expand it.
f. In the “Data source view” pane, select the following tables for import:
SAMP_BRIDGE_TABLE
SAMP_CHANNELS_D
SAMP_OFFICES_D
g. Add the tables to the Repository View pane.
h. Expand BISAMPLE in the Repository View pane and confirm that the tables are
added.
i. Click Finish to add the tables to the repository.
j. In the Physical layer, expand ORCL > BISAMPLE and ensure that the tables are
visible.
k. Update row counts on each table to check connectivity.
SAMP_BRIDGE_TABLE : 27 rows
SAMP_CHANNELS_D : 5 rows
SAMP_OFFICES_D : 20 rows
"ORCL".""."BISAMPLE"."D6 Offices"."OFFICE_KEY" =
"ORCL".""."BISAMPLE"."D63 Channel Office Bridge
(Rev)"."OFFICE_KEY"
"ORCL".""."BISAMPLE"."D6 Offices"."OFFICE_KEY" =
"ORCL".""."BISAMPLE"."F1 Revenue"."OFFICE_KEY"
d. Notice the many-to-many relationship among D6 Offices, D62 Channels (Rev), and
D63 Channel Office Bridge (Rev).
f. Right-click LTS1 Offices (Direct to Revenue) and select Duplicate to create a copy of
the logical table source named LTS1 Offices (Direct to Revenue)#1.
Practices Overview
In these practices, you set an implicit fact column for a subject area.
Overview
In this practice, you set an implicit fact column for a subject area.
Assumptions
You track product revenue facts and product return facts in separate fact tables. You want to
ensure that users obtain the expected results if they run dimension-only queries with columns
from more than one dimension. To ensure that users obtain the expected results, you set an
implicit fact column for the Sample Sales subject area.
Time
Tasks
1. Import a new fact table into the Physical layer.
a. Return to the Administration Tool and open the BISAMPLE repository in offline mode
with the repository password welcome1.
b. In the Physical layer, expand ORCL.
c. Right-click Sample Apps Connection Pool and select Import Metadata.
d. Accept the defaults in the Select Metadata Types screen, and click Next to open the
Select Metadata Objects screen.
e. Scroll to the BISAMPLE schema and expand it.
f. In the “Data source view” pane, select the SAMP_RETURNS_F table for import.
g. Add the table to the Repository View pane.
h. Expand BISAMPLE in the Repository View pane and confirm that the table is added.
i. Click Finish to add the table to the repository.
j. In the Physical layer, expand ORCL > BISAMPLE and ensure that the
SAMP_RETURNS_F table is visible.
k. Update row count for SAMP_RETURNS_F to verify connectivity. You should see 259
rows.
2. Create an alias and physical joins.
a. Create an alias for SAMP_RETURNS_F and name it F3 Returns.
Create the following physical joins:
"ORCL".""."BISAMPLE"."D2 Products"."PROD_KEY" =
"ORCL".""."BISAMPLE"."F3 Returns"."PROD_KEY"
"ORCL".""."BISAMPLE"."D3 Customers"."CUST_KEY" =
"ORCL".""."BISAMPLE"."F3 Returns"."CUST_KEY"
f. Drag the Implicit Fact business model to the Presentation layer to create the Implicit
Fact subject area.
g. Save the repository.
h. Check consistency.
i. You should receive the message ‘Business model “Implicit Fact” is consistent. Do you
want to mark it as available for queries?’ Click Yes.
j. Close the repository.
k. Leave the Administration Tool open.
4. Create an analysis to test your work.
a. Use the uploadrpd command to upload the BISAMPLE repository to BI Server.
b. Return to Oracle BI and sign in as weblogic with the password welcome1.
Notice that the query returns data from the expected dimensions, D3 Customers and
D2 Products, and that the F3 Returns table was accessed instead of the F1 Revenue
table. In a dimension-only query with columns from multiple dimensions in which
272 Practices for Lesson 18: Importing Metadata from Multidimensional Data Sources
Security
Practices for Lesson 19:
Overview
In these practices, you will learn how to implement Oracle BI security.
Overview
In this practice, you explore the default security settings for Oracle Business Intelligence.
Assumptions
During installation, three Oracle Business Intelligence security controls are preconfigured with
initial values to form the default security model. The security controls include:
• An embedded directory server functioning as an identity store designed to hold all user
and group definitions, required to control authentication
• A file-based policy store designed to hold the application role and permission grant
mappings to users and groups, required to control authorization
Time
10 minutes
Tasks
1. Log in to the WebLogic Server Administration Console to explore the identity store. This
console is used to manage users and groups for the embedded LDAP server that serves as
an out-of-the-box identity store.
a. Open a new tab on the browser and enter the following URL:
http://localhost:9500/console.
b. Log in as weblogic with password welcome1. During installation, you are prompted
for a username and password to use as an Oracle BI Administrator. In this training
environment, the Administrator user created during installation is weblogic. This is an
arbitrary choice and there is nothing special about the name. This user has
administrative privileges across the Oracle Business Intelligence (OBI) stack. This
includes the OBI repository, the OBI presentation catalog, BI Publisher, RTD, Essbase,
the identity store in WebLogic, and the policy store in Fusion Middleware.
2. Explore default settings for providers in the WebLogic security realm.
a. On the left side of the console, under Domain Structure, notice there is a single
WebLogic domain named bi into which all the OBI applications are deployed.
b. Click Security Realms.
c. Notice in the right pane that there is a single default security realm named myrealm.
The OBI installer installs a single domain with a single security realm in it. A security
realm is a container for the mechanisms that are used to protect WebLogic resources.
This includes users, groups, security roles, security policies, and security providers.
e. Log out of Enterprise Manager, but leave the browser tab open.
Overview
In this practice, you create users and groups in the WebLogic identity store.
Assumptions
Groups are logical ordered sets of users. Managing a group is more efficient than managing a
large number of users individually. Oracle recommends that you first organize all Oracle
Business Intelligence users into groups that make sense for your organization’s goals and then
map application roles to the groups in order to convey system privileges. The default identity
store provided for managing users and groups is Oracle WebLogic Server’s embedded directory
server. You use WebLogic Administration Server Console to create users and groups.
Tasks
1. Create new groups.
a. Return to the WebLogic Server Administration Console, which should still be open in a
browser tab. If not, enter http://localhost:9500/console and log in as
weblogic with password welcome1.
b. Click Security Realms.
c. Click myrealm.
d. Click the Users and Groups tab.
e. Click the Groups sub tab.
f. Click the New button and create the following three groups:
Name Description Provider
SalesManagersGroup Sales Managers Group DefaultAuthenticator
SalesSupervisorsGroup Sales Supervisors Group DefaultAuthenticator
SalesAssociatesGroup Sales Associates Group DefaultAuthenticator
d. Click Save.
Overview
In this practice, you create application roles in the policy store.
Assumptions
An application role conveys its permission grants to the users, groups, and application roles
mapped to that role. Being mapped to an application role establishes membership in the role.
Binding the permission grants to the application role streamlines the process of granting system
privileges. After the application role and permission grant definitions are established, you control
system rights by managing membership in each role. Oracle recommends that you map groups,
not individual users, to application roles. After they are mapped, all members of the group are
Time
20 minutes
Tasks
1. Create new application roles.
a. Return to Enterprise Manager, which should still be open in a browser tab. If not, enter
http://localhost:9500/em and log in as weblogic with password welcome1.
b. From the WebLogic Domain drop down, select Security > Application Roles to
navigate to the Application Roles page.
c. Select the obi application stripe and click the search arrow to the right of Role Name.
The default BI application roles are displayed.
l. Repeat the steps to give all three application roles access to the Sample Sales subject
area.
m. Sign out of Oracle BI.
3. Verify that the new application roles are now visible in Oracle BI and that privileges have
been applied.
a. Sign in to Oracle BI as mlombardo with password mlombardo1.
b. In the upper-right corner, select mlombardo > My Account.
c. Click the Roles and Catalog Groups tab.
d. Verify that the new application roles are visible.
Helen Mayes is a member of the Sales Associates group, which is a member of the
Sales Associates Role application role. Because the Sales Associates Role application
role is the highest role in the hierarchy, she is not a member of the other two
application roles in the hierarchy.
j. Click OK to close the My Account dialog box.
Overview
In this practice, you set up object permissions in the repository.
Assumptions
You can set up object permissions in your repository to control access to Presentation layer and
Business Model and Mapping layer objects. You set object permissions using the Administration
Tool. There are two approaches to setting object permissions: you can set permissions for
particular users or application roles in the Identity Manager, or you can set permissions for
individual objects in the Presentation layer. In this practice, you use both approaches. Setting up
object permissions for individual users or application roles is useful when you want to define
Time
30 minutes
Tasks
1. Add the application roles to the repository.
a. Open the BISAMPLE repository in offline mode with password welcome1.
b. Select Manage > Identity to open Identity Manager.
c. Click the Application Roles tab.
d. Select Action > New > Application Role to open the Application Role dialog box.
e. Enter SalesManagersRole as the name and Sales Managers Role as the display
name.
f. Click OK to close the Application Role dialog box. The SalesManagersRole
application role is displayed in the list.
g. Repeat the steps to add SalesSupervisorsRole with Sales Supervisors Role as the
display name, and SalesAssociatesRole with Sales Associates Role as the display
name.
h. Click the Application Roles tab and verify that the application roles you created are
displayed.
v. Click Cancel.
w. Check in changes.
x. Check consistency. You should see the warning The object "Sample
Sales".."Customers" is not available for query by any user due to permission
setup. Fix any other errors or warnings before proceeding. You can ignore the warning
User "weblogic" is not defined in the Enterprise Manager.
y. Close the Consistency Check Manager.
z. Save the repository.
aa. Close the repository.
bb. Leave the Administration Tool open.
l. Sign out of Oracle BI and log back in as mlombardo with password mlombardo1.
m. Select mlombardo > My Account.
n. Click Application Roles.
o. Michele Lombardo is a member of the Sales Associates Role application role as well
as the Sales Managers Role and Sales Supervisors Role application roles, in addition
to the BI Consumer and Authenticated User application roles.
q. Click Cancel.
r. Check in changes.
s. Check consistency. Fix any errors or warnings before proceeding. You can ignore the
warning User "weblogic" is not defined in the Enterprise Manager.
t. Close the Consistency Check Manager.
u. Save the repository.
v. Close the repository.
w. Leave the Administration Tool open.
6. Check your work in Analysis Editor.
a. Sign in to Oracle BI as weblogic with password welcome1.
b. Select Administration > Reload Files and Metadata.
c. Sign out and then sign back in as mlombardo with password mlombardo1.
d. Click New > Analysis.
e. Select the Sample Sales subject area.
Overview
In this practice, you set row-level security (data filters) in the repository.
Assumptions
Data filters provide a way to enforce row-level security rules in the repository. Data filters are set
up in the repository by using the Administration Tool and are applied for a particular user or
application role.
Data filters can be set for objects in both the Business Model and Mapping layer and the
Presentation layer. Applying a filter on a logical object will affect all Presentation layer objects
that use the object. If you set a filter on a Presentation layer object, it is applied in addition to
Time
15 minutes
Tasks
1. Set a data filter for the Customer presentation table.
a. Return to the Administration Tool and open the BISAMPLE repository in online mode.
b. Open Identity Manager.
c. Click the Application Roles tab.
d. Double-click SalesSupervisorsRole to open the Application Role dialog box.
e. Click Check Out.
f. Click Permissions to open the Application Role permissions dialog box.
g. Click the Data Filters tab.
h. Click the Name field to open the Browse dialog box.
i. Select the Sample Sales > Customers presentation table to return to the Application
Role permissions dialog box.
j. Click the Data Filter field.
k. Click the Edit Expression icon to open the Expression Builder.
Overview
In this practice, you manage the query environment by setting query limits in the repository.
Assumptions
You can manage the query environment by setting query limits (governors) in the repository for
users or application roles. You may want to prevent queries from consuming too many
resources, by limiting how long a query can run and how many rows a query can retrieve. You
also may want to regulate when individual users can query databases to prevent users from
querying when system resources are tied up with batch reporting, table updates, or other
production tasks. In this practice, you set the maximum rows of any query to five rows, the
Time
20 minutes
Tasks
1. Set query limits for the Sales Supervisors Role application role to disallow queries that may
consume too many system resources.
a. Return to the Administration Tool and open the BISAMPLE repository in online mode.
b. Open Identity Manager.
c. Click the Application Roles tab.
d. Double-click SalesSupervisorsRole to open the Application Role dialog box.
e. Click Check Out.
f. Click Permissions.
g. Click the Query Limits tab.
h. Locate the ORCL database and change its Max Rows value to 5. This specifies the
maximum number of rows that each query can retrieve from the ORCL database for
members of the SalesSupervisorsRole application role.
i. In the Status Max Rows column, select Enable from the drop-down list.
Because of the filter, the query returned only five rows, which does not exceed the
Practices Overview
In these practices, you will enable query caching and inspect cache entries by using Cache
Manager in the Administration Tool.
Overview
In this practice, you enable query caching and inspect cache entries using Cache Manager.
Assumptions
You use Oracle Enterprise Manager to enable query caching and then use Cache Manager in
the Administration Tool to inspect cache entries and analyze cache hits and nonhits.
Time
25 minutes
g. Click Apply.
Overview
In this practice, you use Oracle Enterprise Manager and the NQSConfig.ini file to modify
cache parameters.
Assumptions
You use the Cache Manager to inspect the cache parameters. Then you modify the number of
rows per cache, as well as the number of cache entries allowed. In addition to modifying cache
parameters, you make some tables noncacheable.
Time
Tasks
1. Display global cache information in the Cache Manager.
a. In the Cache Manager, select Action > Show Info to display global cache information.
Your results should look similar to the screenshot:
“Number of entries currently in cache” displays the current number of entries in your
global cache. These entries may relate to multiple repositories.
“Amount of space still available for cache storage use” displays the amount of space, in
megabytes, still available for cache storage.
“Maximum allowable number of rows per cache entry result set” displays the maximum
number of rows allowed for each cache entry's result set. This number is set in the
MAX_ROWS_PER_CACHE_ENTRY parameter in the NQSConfig.INI file.
“Number of queries satisfied from cache since startup of Oracle BI Server” displays the
number of cache hits since the last time the Oracle BI Server was started.
“Number of queries not satisfied from cache since startup of Oracle BI Server” displays
g. Apply and activate your changes, but do not restart Oracle BI Server to apply recent
changes at this time.
h. Leave Enterprise Manager open.
Overview
In this practice, you create an analysis and an agent to seed the Oracle BI Server cache.
Assumptions
You have identified requests that are used frequently by sales representatives. To improve
performance, you want to seed the cache with this data. In this practice, you create and save a
query to populate the cache, and then create an agent to seed the cache. During this process,
you use a programmatic ODBC call to purge the cache.
Time
Tasks
1. Create a query to seed the cache.
a. Return to Analysis Editor where you should still be signed in as weblogic with
password welcome1.
b. Create the following new analysis in the Sample Sales subject area:
Customers.Name
Base Facts.Revenue
c. Save the analysis as Cache Seed in My Folders.
2. Use an ODBC procedure to purge the cache before seeding the cache. The Oracle BI
Server provides ODBC-extension functions for the Oracle BI Administrator to use for
purging cache entries. Some of these functions are particularly useful for embedding in an
Extract, Transform, and Load (ETL) task. For example, after a nightly ETL is performed, the
entire Oracle BI Server cache can be purged. If only the fact table was modified, only cache
related to that table can be purged. In some cases, you may need to purge the cache
entries associated with a specific database.
3. Note: Only Oracle BI Administrators have the right to purge the cache. Therefore, scripts
that call these ODBC-extension functions must run under an Oracle BI Administrator login
ID. Also, this is not a required step for seeding the cache. It is provided here for training
purposes only.
a. Click Administration.
b. Under Maintenance and Troubleshooting, click Issue SQL to issue SQL directly to the
Oracle BI Server.
You have successfully seeded the cache using an Agent. The only difference between
cache seeding agents and other agents is that they clear the previous cache
automatically and do not appear on the dashboard as Alerts. Notice that cache-seeding
agents only purge exact match queries, so stale data may still exist. Your caching
strategy should always include cache purging, because agent queries do not address
ad hoc queries or drills.
d. Click Close to close the SQL window.
e. Close Cache Manager.
Practices Overview
In these practices, you set up and use an Oracle BI multiuser development environment.
340 Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment
Practice 21-1: Setting Up a Multiuser Development Environment
Overview
In this practice, you set up a multiuser development environment to support two developers.
Assumptions
In Oracle Business Intelligence (BI), multiuser development facilitates the development of
application metadata in enterprise-scale deployments. Application metadata is stored in a
centralized metadata repository (RPD) file. The Administration Tool is used to work with these
repositories. In this practice, you set up the Oracle BI multiuser development environment. This
includes defining projects and setting up the multiuser development directory.
Tasks
1. Verify that only one user at a time can modify a repository before you set up the multiuser
development environment.
a. Return to the Administration Tool and open the BISAMPLE repository in offline mode.
b. Double-click the Administration Tool shortcut on the Desktop to open a second
instance of the Oracle BI Administration Tool.
c. Select File > Open > Offline.
d. Select the BISAMPLE repository.
e. Click Open. Notice that you can open the file only as read-only. This is because a
multiuser development has not been set up, so only one user can edit the repository at
a time.
f. Click No.
g. Select File > Exit to close this second instance of the Oracle BI Administration Tool.
Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment 341
2. In this step, you create projects in the master repository. The primary reason to create
projects is to support multiuser development. During the development process, you can
split up the work between different teams within your company by extracting the metadata
into projects so that each project group can access a different part of the metadata.
Typically you create projects to contain all the subject areas in the repository, broken down
in a reasonable manner. In this practice, you create only two projects.
a. Return to the Administration Tool instance with the BISAMPLE repository open in
offline mode.
b. Select Manage > Projects. The Project Manager window is displayed.
c. Select Action > New Project.
d. Enter Sample Sales Fact Table Project as the name.
e. Expand Business Models in the left pane.
342 Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment
3. Create a second project that contains the Sample Sales subject area. This project also
contains the F1 Revenue logical fact table. You are adding a second project to demonstrate
that it is possible for projects to overlap, and to demonstrate how to select from multiple
projects during project check out.
a. Select Action > New Project.
b. Enter Sample Sales Presentation Project as the name.
c. Expand Business Models in the left pane.
d. Expand Sample Apps in the left pane.
e. Double-click F1 Revenue to add it to the right pane. Notice that Business Models >
Sample Apps > F1 Revenue is added to the right pane.
f. Expand Presentation in the left pane.
g. Double-click Sample Sales to add it to the right pane. Notice that a Presentation folder
Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment 343
j. Click OK to save the project and close the Project window. Your Project Manager
should look like the following screenshot:
g. Click Share.
h. Click Done to close the File Sharing dialog box.
344 Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment
i. Copy BISAMPLE from D:\repository to C:\multiuser.
j. In the C:\multiuser folder, rename the BISAMPLE repository BISAMPLEMaster.
5. Set the multiuser directory in the Oracle BI Administration Tool to point to the shared
repository that you just created.
a. In the Oracle BI Administration Tool, select Tools > Options.
b. Click the Multiuser tab.
c. Click Browse next to the “Multiuser development directory” field.
d. Browse to C:\multiuser and click OK.
e. In the Full Name field, enter Administrator. Before checking out projects, each
developer must set up his or her Administration Tool to point to the multiuser
development directory on the network. The Administration Tool stores this path in a
hidden Windows registry setting on the workstation of the developer and uses it when
Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment 345
Practice 21-2: Using a Multiuser Development Environment
Overview
In this practice, you check out, modify, and check in projects in a multiuser development
environment.
Assumptions
Two developers work in the Oracle BI multiuser development environment and modify the same
project simultaneously, including checking out and checking in projects, and merging metadata.
Time
25 minutes
d. Click OK. The “Create new subset repository” dialog box opens.
346 Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment
e. In the “File name” field, change the file name to dev1. The file name is arbitrary. Notice
that this repository file is being saved to the default repository directory
C:\obi_client12c\bi\bifoundation\server and not the shared repository directory you
created earlier. Also, notice that a copy of the shared master repository,
BISAMPLEMaster, has been temporarily copied to the default repository directory.
Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment 347
3. As a second developer, check out the same project by using a second instance of the
Oracle BI Administration Tool. This demonstrates that multiple users can work with the
same repository and the same project simultaneously.
a. Double-click the Administration Tool shortcut on the Desktop to open a new instance
of the Administration Tool.
b. Select File > Multiuser > Checkout.
c. The “Extract from BISAMPLEMaster.rpd” dialog box opens.
d. Enter welcome1 as the password and click OK. The Browse dialog box opens. Notice
that both projects are still shown. There is no indication that another developer has the
Sample Sales Presentation Project open. This is an intentional feature of the product.
Multiple developers can work on a single project, and changes are merged during the
check-in process.
348 Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment
e. Select File > Multiuser > Compare with Original. This action compares the working
extracted local repository to the original extracted repository. When this option is
selected, the “Compare repositories” dialog box opens and lists all the changes made
to the working extracted repository since you checked out the projects. This dialog box
identifies all of the objects in the dev1 repository that have been deleted or modified as
compared to the originaldev1 repository.
Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment 349
b. In the comment section, enter Changed the name of the Customers
presentation table in the Sample Sales subject area in the
Presentation layer.
350 Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment
e. In the bottom-right corner of the Merge Repository Wizard, click the ellipsis button next
to the Differences field to view the details of which objects were modified in the Current
repository.
Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment 351
i. Choose Modified from the options. This chooses the modified repository over the
current repository, which means that the Customers table in the master repository will
be renamed to CustomersNew as it is in the local repository.
j. Click Finish.
k. The local copy of the master repository (dev1.rpd) is merged with the master repository
in the shared folder and then closed and deleted from
b. Right-click the Version 1 entry and select View > Conflict Resolution.
c. Enter welcome1 as the password and click OK. The Merge Repository Wizard opens
and displays the merge strategy that was applied.
d. Click Cancel to close the Merge Repository Wizard.
e. Right-click the Version 1 entry and select View > Details. The event details for the
project are displayed:
352 Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment
7. Confirm that changes have been made to the shared master repository.
a. In the Administration Tool, select File > Open > Offline.
b. Navigate to C:/multiuser and select BISAMPLEMaster to open the shared master
repository.
c. Click Open.
d. Click Yes to acknowledge that it can only be opened as read-only.
e. Enter welcome1 as the password and click OK. The BISAMPLEMaster repository
opens.
f. Expand the Sample Sales subject area and confirm that the Customers presentation
table has been renamed to CustomersNew.
Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment 353
c. Select File > Multiuser > Refresh Subset. This refreshes the local project extract with
any changes that were made to the master repository. The changes from the master
are merged with your local changes. You typically perform this task as an incremental
step during development before publishing your final changes at the end of your
development session. It is a best practice to refresh your local project extract frequently
so that conflicts during merge can be identified and dealt with on an incremental basis.
If too many changes are merged at one time, making the appropriate merge decisions
for conflicts can be confusing and error-prone. Because there is a conflict with the
master repository, the Merge Repository Wizard is displayed.
d. Expand the conflict for the Customers presentation table.
e. Select Current to accept the changes in the master repository.
354 Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment
e. Drag Product Total Revenue, Product Type Revenue and Product Share from the
F1 Revenue logical table to the Product Facts table in the Presentation layer.
Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment 355
j. Click OK. The local copy of the master repository (dev2.rpd) is merged with the master
repository in the shared folder and then closed and deleted from
C:\obi_client12c\bi\bifoundation\server. Why are there no conflicts and
why is the Merge Repository Wizard not displayed? Inserts (created objects) are
applied automatically. Because a subset of the master repository is being used as the
original repository, most objects in the master repository appear to be new. This would
result in many unnecessary prompts that the developer would have to manually
approve. Therefore, new objects are created without a prompt during a multiuser
development merge.
k. Open the BISAMPLEMaster repository in offline mode and confirm that the Product
Facts presentation table and measures have been added to the repository.
356 Practices for Lesson 21: Setting Up and Using the Multiuser Development Environment
Oracle Internal & Oracle Academy Use Only
Practices for Lesson 22:
Performing a Patch Merge
Practices for Lesson 22: Overview
Practices Overview
In these practices, you will perform a repository patch merge in a development-to-production
scenario.
Overview
In this practice, you perform a repository patch merge in a development-to-production scenario.
Assumptions
In a patch merge, you create a patch that contains the differences between the current
repository file and the original repository file, and then you apply the patch file to the modified
repository file. In a development-to-production scenario, you have an original parent file, a
current file that contains the latest development changes, and a modified file that is the
deployed copy of the original file. To generate a patch, you open the current file and select the
original file, and then create the patch. To apply the patch, you open the modified file and select
Time
15 minutes
Tasks
1. Before creating and applying a patch merge, explore the repositories that you will use in
this practice.
a. Navigate to D:\PracticeFiles.
b. Copy the original, modified, and current repository files and paste them into
D:\repository.
c. In the Administration Tool, open original.rpd in offline mode with password
welcome1. For the purpose of this training, assume that this is the original repository
that you created during development.
n. Click the Decision field for Prod Dsc. Notice the two choices:
− Choosing “Current” would keep the repository as it is without adding the object to
the merged repository.
− Choosing “Modified (A)” would add the object into the merged repository.
372 Practices for Lesson 23: Managing Metadata and Working with Service Instances