You are on page 1of 59

OBIEE Interview Questions:

1. Cross joining two Subject Areas.


2. How to use decode function in various ways
3. How to find duplicates in the table
Select emp_id, count(emp_id) from emp having count(emp_id) > 1 group by
emp_id

3.1 How to find maximum salary for the employee who is getting in each
department
SELECT ENAME ,SAL ,DEPTNO FROM EMP 
WHERE SAL IN (SELECT MAX(SAL) FROM EMP GROUP BY DEPTNO)

Select e.ename, d.deptname, e.sal from emp e, dept d


where e.deptno = d.deptno and e.sal IN (select max(sal) from emp group by deptno)

3.2 You have employee table with columns employeeid, year, role,
rolestartdate, roleenddate , currentflag. Get the employeeid, current role,
previous role, previousrole startdate, previousroleendate
select distinct ename , job
from ( select ename, job
, first_value(job) over (partition by ename
order by hiredate desc) as current_job
from emp
where ename = 'FORD' )
where job != current_job
order by ename, ename
3.3 You have employeeid, year, salary, departmentid. Get cumulative sum for
the salary with respective to year, departmentid

SELECT 
    DEPTNO,
    ENAME,
    SAL,
    SUM(SAL) OVER (PARTITION BY DEPTNO ORDER BY SAL,ENAME) CUMDEPTTOT,
    SUM(SAL) OVER (PARTITION BY DEPTNO) DEPTTOTAL,
    SUM(SAL) OVER (ORDER BY DEPTNO, SAL) CUMTOT,
    SUM(SAL) OVER () TOTSAL
FROM 
    SCOTT.EMP
ORDER BY 
    DEPTNO, 
    SAL

 
  

Related Links:
- SQL Puzzle - Issue Tracker - wit

3.4. What is purpose of alias table in Physial layer.

An Alias Table or Alias in OBIEE is a physical table which references to a


different physical OLAP/OLTP table as it's source.

Alias tables are often used for Repository development over Physical tables as they have
the following properties,

1. Enables reuse of a physical table.


2. Avoids circular joins that can form when importing OLTP source tables.
3. Create self joins between tables, for eg: Manager is also an Employee.
4. Enables to easily identify source tables and adhere to data warehousing naming
standards.
5. Makes physical query generated easier to understand.
6. Can override source table's caching properties like Cacheable, Cache never
expires and cache persistence time. 

Alias Tables in OBIEE 11g - Example.

There are several versions of advantages of Alias tables .Below are some noted
points.

Avoid circular joins.


Reuse the same object more than once.
Same table can act both as dimension and fact using aliases..
lets see some examples for the same.

Example 1:
Consider we have a two dates in a fact (Order_date and Ship_Date) and its has
to be joined to Time dimension on both the keys.Since we cannot join both
dates to a single key we create an Alias to Time dimension and join the Fact
with two time dimensions one with Order_Date and the other with
Sales_Order

Example 2:

Lets say we have a table Sales with following columns.

Order_Number,Item,Order_date,customer,Order_Qty

Since the same table is having dimensions and facts,we take an alias Sales_Fact
& Sales_Dim and join on Order_Number.
3.5 what is useful to set priority in LTS

Setting Priority Group Numbers for Logical Table Sources


You can set priority group numbers to determine which logical table source should be used for queries
for which there is more than one logical table source that can satisfy the requested set of columns.

For Example , A column is mapped to multiple LTS(LTS1 & LTS2)  and you want to give first priority
to LTS1 whenever this particular column is being fetched in the report so in this case you can assign a
higher priority to LTS1.

To assign priority group numbers, rank your logical table sources in numeric order, with 0 being the
highest-priority source and so on.
Assigning priority groups is optional. All logical table sources are set to priority 0 by default. 

3. Why we need Logical Joins in BMM Layer


In simple terms I would say most of the times Logical join is created in BMM layer and
Physical join is created in physical layer,but there might be some scenarios where we
need to create complex join in physical layer and vice versa, these will be discussed
later.

What is Logical Join

Below diagram is window of complex join . In here ,you can see that we can't write any
expression in expression pane.however ,we can change the type of join and can define
the driving table and set the cardinality which means logical join helps BI server to
determines only the relationship between the table , how these table are
connected it doesn't tell BI server that what physical columns are joining it just
tell that what type of join is between tables.

Physical Joins
Whereas,Physical join helps BI server to understand that how to join two tables
by specifying physical columns.Below diagram is  window of physical join.In here,as
you can see in expression pane we can define that how these two table should be join to
each other
In short, Logical join helps to define the relationship between two tables and
what type of join is b/w two tables. Whereas, Physical join helps to understand
that how two tables are joined.

We use complex join in physical layer mostly in below scenarios.

1 ) When we have to join key column of one table to non key column of other table.
2 ) When the operator is other than equal to operator. 

Here comes a interview question

we already have joins in Physical layer then why we need to create logical joins
in BMM layer or question comes in this way that why we need to create logical
joins :

The answer is whenever a user runs a report logical query are generated based on the
logical joins in BMM layer as OBIEE server understands logical query only.

Other reasons for creating logical joins are


1) Type of join can be specify through logical join only.  
2) Cardinality can set only in logical join.
3) Driving table only in logical join.
4) When the operator is other than the equal " = " operator.
4. Types of BI Security and differences
https://obisesha.wordpress.com/2012/10/06/what-are-the-types-of-security-in-obiee-explain-with-
example/

5. What is difference between star and snowflake schema.

Schema is a logical description of the entire database. It includes the name and description of
records of all record types including all associated data-items and aggregates. Much like a
database, a data warehouse also requires to maintain a schema. A database uses relational
model, while a data warehouse uses Star, Snowflake, and Fact Constellation schema. In this
chapter, we will discuss the schemas used in a data warehouse.

Star Schema
 Each dimension in a star schema is represented with only one-dimension table.
 This dimension table contains the set of attributes.
 The following diagram shows the sales data of a company with respect to the four
dimensions, namely time, item, branch, and location.

 There is a fact table at the center. It contains the keys to each of four dimensions.
 The fact table also contains the attributes, namely dollars sold and units sold.

Note: Each dimension has only one dimension table and each table holds a set of attributes.
For example, the location dimension table contains the attribute set {location_key, street,
city, province_or_state,country}. This constraint may cause data redundancy. For example,
"Vancouver" and "Victoria" both the cities are in the Canadian province of British Columbia.
The entries for such cities may cause data redundancy along the attributes province_or_state
and country.

Snowflake Schema
 Some dimension tables in the Snowflake schema are normalized.
 The normalization splits up the data into additional tables.
 Unlike Star schema, the dimensions table in a snowflake schema are normalized. For
example, the item dimension table in star schema is normalized and split into two
dimension tables, namely item and supplier table.

 Now the item dimension table contains the attributes item_key, item_name, type,
brand, and supplier-key.
 The supplier key is linked to the supplier dimension table. The supplier dimension
table contains the attributes supplier_key and supplier_type.

<b<>Note: Due to normalization in the Snowflake schema, the redundancy is reduced and
therefore, it becomes easy to maintain and the save storage space.</b<>

6. Advantages and disadvantages of star and snowflake schema


7. How to add new table in the Star Database and complete steps
8. Types of hierarchies? Difference between raged level hierarchies, Skipped
level hierarchy
9. BMM Layer (Logical Dimension and Logical Levels)
10. Transpose rows into columns without using Pivot
http://oraclecoder.com/tutorials/three-ways-to-transpose-rows-into-columns-
in-oracle-sql--160
10. Determine Grain for the Fact Table
http://www.datamartist.com/dimensional-tables-and-fact-tables
https://dwbi1.wordpress.com/2011/02/27/mixed-grain-fact-table/
10. What is Slowly Changing Dimension (SCD)

Tracking changes in dimension is referred in datawarehousing as slowly changing


dimensions.

In the source system a lot of changes are daily made :

 new customers are added,


 addresses are modified,
 new regional hierarchies are implemented,
 or simply the product descriptions and packaging change.

These sorts of changes need to be reflected in the dimension tables and in several cases, the
history of the changes also needs to be tracked.

By remembering history, we are then able to look at historical data and compare it to their
current situation
11. What is dimension? And Type of Dimensions

Dimension Table
A Dimension table is a table in a star schema of a data warehouse. Data warehouses are built
using dimensional data models which consist of fact and dimension tables. Dimension tables
are used to describe dimensions. They contain dimension keys, values and attributes.
Types of Dimensions
Slowly Changing Dimensions– Dimension attributes that change slowly over a period of
time rather than changing regularly is grouped as SCDs.  Attributes like name, address can
change but not too often.

These attributes can change over a period of time and that will get combined as a slowly
changing dimension. Consider an example where a person is changing from one city to
another. Now there are 3 ways to change the address;

Type 1  is to over write the old value, Type 2 is to add a new row and Type 3 is to create a
new column.

Type 1

The advantage of type 1 is that it is very easy to follow and it results  in huge space savings
and hence cost savings. The disadvantage is that no history is maintained.

Type 2

The advantage of type 2 is that the complete history is maintained. The only disadvantage lies
in the huge space allocation because the entire history right from the start has to be
maintained.

Type 3

The best approach could be to add a new column where you add two new columns. In this
case keeping a tracking of the history becomes very easy.
Conformed Dimension- This is used in multiple locations. It helps in creating consistency so
that the same can be maintained across the fact tables. Different tables can use the dimension
table across the fact table and it can help in creating different reports.

For example, there are two fact tables. Fact table 1 is to determine the number of products
sold by geography. This table will calculate just the number of products by geography and
fact table 2 will determine the revenue generated by customer. Both are dependent on the
product which contains product Id, name and source.

There is the geography dimension and customer dimension which are being shared by two
fact tables. The revenue fact gives the revenue generated by both the geography and the
customer, while the product units fact gives number of units sold in the geography to a
customer.

Degenerate Dimension– A degenerate dimension is when the dimension attribute is stored as


part of the fact table and not in a separate dimension table. Product id comes from product
dimension table. Invoice number is a standalone attribute and has no other attributes
associated with it. An invoice number can be crucial since the business would want to know
the quantity of the products.
Junk Dimension– A junk dimension is a single table with a combination of different and
unrelated attributes to avoid having a large number of foreign keys in the fact table. They are
often created to manage the foreign keys created by rapidly changing dimensions.

Role play dimension– It is a dimension table that has multiple valid relationships with a fact
table. For example, a fact table may include foreign keys for both ship date and delivery date.
But the same dimension attributes apply to each foreign key so the same dimension tables can
be joined to the foreign keys.

What is Fast growing dimension?

SCD type 4 - Fast growing dimension


In normal scenarios the dimension tables tend to grow slowly. That is the reason, they are called
slowly changing dimensions. Example: Location attribute of a customer changes very rarely.
However the salary band of a customer is likely to change every year. These type of attributes causes
the customer dimension table to grow rapidly.

SCD type 4 provides a solution to handle the rapid changes in the dimension tables. The concept lies
in creating a junk dimension or a small dimension table with all the possible values of the rapid
growing attributes of the dimension.

Example: Take a look at the following dimension attributes of customer


C_Id
Name
Location
Age_band
Salary_band

The age band and salary band are going to change frequently. So create a separate small dimension
table with only these attributes. The number of possible values of age band will be around 20 and
salary band will be around 30. The total number of rows in the new dimension table are 20x30=60.
The new tables are
Table name : customer
C_Id
Name
Location

Table name: customer_mini


M_id
Age_band
Salary_band

Fact table:
Id
C_Id
M_Id
----

The dimension key of the new table should be maintained in the fact table. This way we can handle
the rapid changes in the dimension table.

14. Types of Fact Table:


There are basically three types of fact tables:

 Transaction Fact Table


 Periodic Snapshot Fact Table
 Accumulating Snapshot Fact Table

Transaction Fact Tables


A transactional table is the most basic and fundamental view of the business’s
operations These fact tables represent an event that occurred at an instantaneous point
in time. A row exists in the fact table for a given customer or product only if a
transaction event occurred. Conversely, a given customer or product likely is linked to
multiple rows in the fact table because hopefully the customer or product is involved in
more than one transaction. Transaction data often is structured quite easily into a
dimensional framework. The lowest-level data is the most naturally dimensional data,
supporting analyses that cannot be done on summarized data. Unfortunately, even with
transaction-level data, there is still a whole class of urgent business questions that are
impractical to answer using only transaction detail.

Periodic Snapshot Fact Tables


Periodic snapshots are needed to see the cumulative performance of the business at
regular, predictable time intervals. Unlike the transaction fact table, where we load a
row for each event occurrence, with the periodic snapshot, we take a picture (hence the
snapshot terminology) of the activity at the end of a day, week, or month, then another
picture at the end of the next period, and so on. Eg: A performance summary of a
salesman over the previous month .

The periodic snapshots are stacked consecutively into the fact table. The periodic
snapshot fact table often is the only place to easily retrieve a regular, predictable,
trendable view of the key business performance metrics.Periodic snapshots typically
are more complex than individual transactions.
Advantages:When transactions equate to little pieces of revenue, we can move easily
from individual transactions to a daily snapshot merely by adding up the transactions,
such as with the invoice fact tables from this chapter. In this situation, the periodic
snapshot represents an aggregation of the transactional activity that
occurred during a time period. We probably would build the daily snapshot only if we
needed a summary table for performance reasons.

Where to use Snapshots?


When you use your credit card, you are generating transactions, but the credit card
issuer’s primary source of customer revenue occurs when fees or charges are assessed.
In this situation, we can’t rely on transactions alone to analyze revenue performance.
Not only would crawling through the transactions be time-consuming, but also the logic
required to interpret the effect of different kinds of transactions on revenue or profit
can be horrendously complicated. The periodic snapshot again comes to the rescue to
provide management
with a quick, flexible view of revenue.

Accumulating Snapshot Fact Tables


This type of fact table is used to show the activity of a process that has a well-defined
beginning and end, e.g., the processing of an order. An order moves through specific
steps until it is fully processed. As steps towards fulfilling the order are completed, the
associated row in the fact table is updated.
Accumulating snapshots almost always have multiple date stamps, representing the
predictable major events or phases that take place during the course of a lifetime. Often
there’s an additional date column that indicates when the snapshot row was last
updated. Since many of these dates are not known when the fact row is first loaded, we
must use surrogate date keys to handle undefined dates.
In sharp contrast to the other fact table types, we purposely revisit accumulating
snapshot fact table rows to update them. Unlike the periodic snapshot, where we hang
onto the prior snapshot, the accumulating snapshot merely reflects the accumulated
status and metrics. Sometimes accumulating and periodic snapshots work in
conjunction with one another

Factless Fact Table


In the real world, it is possible to have a fact table that contains no measures or facts.
These tables are called “Factless Fact tables”.
Eg: A fact table which has only product key and date key is a factless fact. There are no
measures in this table. But still you can get the number products sold over a period of
time.

13. what is Factless fact table?


11. What are types of fact tables?

12. What is Start Schema and Snow Flake Schema?

12. What is partitioning in data warehouse. How to use it


13. What is indexing and types of indexing
14. Get a report for date from RPD (For all the columns in the Presentation
Layer, BMM Layer and Physical Layer)
15. Why we use ETL on OLTP
14. What is the purpose of ETL.
15. How to define hierarchy on Fact Table

10. Surrogate Key (Different Keys)

In data warehouse environment each dimension table should have primary key which
uniquely identifies dimension record. We can use natural keys or business keys as a primary
key in dimension table however these keys are not recommended to be used as primary key in
dimension table due to following reasons.

1. These keys are generally intelligent alphanumeric keys like ABC123 which consumes lot
of indexes space when used as primary key. It makes index traversing slower and index size
big.
2. Business keys are often re-uses over the period of time say after 5 years product key
prd123  might be used for some other products. And data warehouse keeps historical as well
as current data which might problematic if business keys are re-used and used as primary key.

To solve this issue, surrogate keys are used as primary key in dimension tables.

What is surrogate key?

Surrogate keys are nothing but integers which do not have any meaning in terms of business
and used as primary key in dimension table. Due to this surrogate keys are often called as
meaningless key.

When creating a dimension table in a data warehouse, we generally create the tables with a
system generated key to uniquely identify a row in the dimension. This key is also known as
a surrogate key. The surrogate key is used as the primary key in the dimension table.

The surrogate key will also be placed in the fact table and a foreign key will be defined
between the two tables. When you ultimately join the data it will join just as any other join
within the database.

Surrogate key is a substitution for the natural primary key.

It is just a unique identifier or number for each row that can be used for the primary key to
the table. The only requirement for a surrogate primary key is that it is unique for each row in
the table.

Data warehouses typically use a surrogate, (also known as artificial or identity key), key for
the dimension tables primary keys. They can use Infa sequence generator, or Oracle
sequence, or SQL Server Identity values for the surrogate key.

It is useful because the natural primary key (i.e. Customer Number in Customer table) can
change and this makes updates more difficult.

Some tables have columns such as AIRPORT_NAME or CITY_NAME which are stated as
the primary keys (according to the business users) but, not only can these change, indexing
on a numerical value is probably better and you could consider creating a surrogate key
called, say, AIRPORT_ID. This would be internal to the system and as far as the client is
concerned you may display only the AIRPORT_NAME.

Another benefit you can get from surrogate keys (SID) is :

Tracking the SCD - Slowly Changing Dimension.

Let me give you a simple, classical example:

On the 1st of January 2002, Employee 'E1' belongs to Business Unit 'BU1' (that's what would
be in your Employee Dimension). This employee has a turnover allocated to him on the
Business Unit 'BU1' But on the 2nd of June the Employee 'E1' is muted from Business Unit
'BU1' to Business Unit 'BU2.' The entire new turnovers have to belong to the new Business
Unit 'BU2' but the old one should belong to the Business Unit 'BU1.'

If you used the natural business key 'E1' for your employee within your datawarehouse
everything would be allocated to Business Unit 'BU2' even what actually belongs to 'BU1.'

If you use surrogate keys, you could create on the 2nd of June a new record for the Employee
'E1' in your Employee Dimension with a new surrogate key.

This way, in your fact table, you have your old data (before 2nd of June) with the SID of the
Employee 'E1' + 'BU1.' All new data (after 2nd of June) would take the SID of the employee
'E1' + 'BU2.'

You could consider Slowly Changing Dimension as an enlargement of your natural key:
natural key of the Employee was Employee Code 'E1' but for you it becomes

Employee Code + Business Unit - 'E1' + 'BU1' or 'E1' + 'BU2.' But the difference with the
natural key enlargement process, is that you might not have all part of your new key within
your fact table, so you might not be able to do the join on the new enlarge key -> so you need
another id

10. What is Chronological Key

What is chronological key?

Chronological: Arranged in order of time of occurrence.

To identify the dimension as having a monotonically increasing value in time, we define


chronological key. E.g. Time Dimension.

Pre-requisites to Chronological key:

–      Sequential (The members have a natural order).

–      Cardinal (All members are spaced the same distance apart at a given level, such as day
or month).

–      Complete (There should be no missing numbers).

–      Chronological Order: 2010, 2011, 2012…, Jan, Feb, Mar…, Jan 2010, Feb 2010, Mar
2010…etc.

–      Sorting Order: 2010, 2011, 2012…, Apr, Aug, Dec, Feb…, Apr 2010, Apr 2011 etc.

 At-least one level of time dimension should have chronological key.


 In any number of levels you can define one or more number of chronological keys.
 Defining at lowest level is the best practice. But defining at all relevant levels is
recommended for all performance issues.
 If the key is structured as YYYYMMDD, you can use it as a chronological key. But if
the key is YYYYDDMM, you can’t use it as chronological key. Because, the
chronological key has to increase sequentially. So, YYYYDDMM won’t work as
chronological key.
 Date specific functions like AGO, TODATE, PERIODROLLING etc. We can use the
chronological key to calculate the results.
 Theoretically, time series functions operate correctly if only the bottom level key in
the Logical Dimension is chronological. In practice, however, this causes
performance problems because it forces the physical query to use the lowest grain,
causing joins of orders of magnitude more rows (for example, 365 times more rows
for a “year ago” joining at the “day” grain). It also means higher-level aggregate
tables are never selected by the query planner when using the time series functions,
which again significantly slows the query.

1.  All other dimensions don’t care about the order of the values like region, product,
customer etc.

–    Example, region_dim the values are north, south, west and east. Here nobody wants to see
whether north comes first or south comes first. i.e., no role for order here.

2.  In the case of time dimension there needs to be a particular order for all values present in
it.

–    Example, 2010 is earliest and 2004 is older. Dec-10 is earliest and Jan-10 is older. i.e., the
values in the time dimension needs to follow a particular sorting order. So the chronological
key is the key which tells the OBIEE that the data will increment based on the chronological
column.

3.  Here you may get another Question. i.e., you are having columns like year, half_year,
quarter, month, week and day. Here which one should become the chronological key?

–    Analyze it yourself. If you keep year as chronological key then OBIEE will be confused
whether Jan-10 is earliest or Feb-10 is earliest. Because it knows only that 2010 is earliest
and 2009 is older.

Finally, always it should be the lowest level of the dimension which needs to be the
chronological key. In the above case it should be date.

OBIEE Architecture:

atest version is 11.1.1.5 or 6.It is a reporting tool for generate the reports to analyse
the data.OBIEE has 2 default servers BI server and Presentation server.It has 6
components in the architecture
1.Presentation services(Answers or Analysis)

2.Presentation server

3. Repository

4. BI server

5. Database connection(ODBC (Open database connectivity) or OCI (Oracle call


Interface))

6. Enterprise Data ware House

Presentation Services:This is a front-end page for users or clients.User can see the
reports from the Answers or Analysis  page.It contains answers, dashboards, account
details privileges of the specific users.We can the reports and dashboards based on
the client requirement.By starting the presentation server,we can operate the
presentation services.

Repository:It is also called as RPD or RCU.Metadata settings are configured in the


rpd level.It has 3 layers

Physical layer:It has the direct connection with the database.We can apply the joins
between fact tables and dimension tables based on the data-modelling.

Business model and mapping layer:The logical changes will be done here like
creating logical joins(complex joins),new columns or tables,hierarchies etc.

Presentation layer:The objects will be visible to the users what placed in the
presentation layer.We can apply the security setting in the presentation layer.
We can operate the Repository settings by starting the BI server.we can open the
RPD in either online or offline mode

Database connection:This is the database connection between database and


OBIEE.The database connection  is either ODBC or OCI.

Data-ware House: Data-ware House is a huge data storage space for retrieving data

This post is a collection of obiee interview questions that are collected on the web. I will be
posting them as parts.

Define repository in terms of OBIEE?

 Repository stores the Meta data information. OBIEE repository is a file system
and the extension of the repository file is .RPD (There is no specific abbreviation
for RPD)
 All the rules needed for security, data modeling, aggregate navigation, caching,
and connectivity is stored in metadata repositories.
 Each metadata repository can store multiple business models. BI Server cannot
access multiple repositories.
What is the end to end life cycle of OBIEE?
OBIEE life cycle:

1. Gather Business Requirements


2. Identify source systems
3. Design ETL to load to a DW if source data doesn’t exist.
4. Build a repository
5. Build dashboard or use answers for reporting.
6. Define security (LDAP or External table…)
7. Based on performance, decide on aggregations and/or caching mechanism.
8. Testing and QA.

How does OBIEE Architecture works?


There are five parts of OBIEE Architecture.
1. OBIEE Clients
2. OBIEE Web Server
3. OBIEE server
4. OBIEE scheduler
5. Data sources
Explain the three layers of OBIEE Admin tool?
Metadata that represents the analytical Model Is created using the OBIEE Administration
tool.
Repository divided into three layers
1. Physical – Represents the data Sources
2. Business – models the Data sources into Facts and Dimension
3. Presentation – Specifies the users view of the model; rendered in BI answers
How do you import sources into Physical Layer?
Using ODBC or OCI connections. In the Oracle BI Administration Tool, click File > Import
> from Database . . .
If you have 3 facts and 4 dimension and you need to join them, would you
recommend joining fact with fact? If no, than what is the option? Why you
won’t join fact to fact?
In the BMM layer, create one logical table (fact) and add the 3 fact table as logical table
source.

What is connection pool and how many connection pools did you have in your last
project?

 Connection pool is needed for every physical database.


 It contains information about the connection to the database, not the database
itself.
 Can use either shared user accounts or can use pass-through accounts -Use:
USER and PASSWORD for pass through.
 We can have multiple connection pools for each group to avoid waiting.

Purpose of Alias Tables

 An Alias table (Alias) is a physical table with the type of Alias. It is a reference to
a logical table source, and inherits all its column definitions and some properties
from the logical table source. A logical table source shows how the logical objects
are mapped to the physical layer and can be mapped to physical tables, stored
procedures, and select statements. An alias table can be a reference to any of
these logical table source types.
 Alias Tables can be an important part of designing a physical layer. The following
is a list of the main reasons to create an alias table:
To reuse an existing table more than once in your physical layer (without having to
import it several times)
To set up multiple alias tables, each with different keys, names, or joins
To help you design sophisticated star or snowflake structures in the business model
layer. Alias tables are critical in the process of converting ER Schemas to Dimensional
Schemas.

How do you define the relationship between facts and dimensions in BMM
layer?
Using complex join, we can define relationship between facts and dimensions in BMM
layer.

What is time series wizard? When and how do you use it?
 We can do comparison for certain measures (revenue, sales etc.. ) for current
year vs. previous year, we can do for month or week and day also
 Identify the time periods need to be compared and then period table keys to the
previous time period.
 The period table needs to contain a column that will contain “Year Ago”
information.
 The fact tables needs to have year ago totals.
 To use the “Time series wizard”. After creating your business model right click the
business model and click on “Time Series Wizard”.
 The Time Series Wizard prompts you to create names for the comparison
measures that it adds to the business model.
 The Time Series Wizard prompts you to select the period table used for the
comparison measures
 Select the column in the period table that provides the key to the comparison
period. This column would be the column containing “Year Ago” information in the
period table.
 Select the measures you want to compare and then Select the calculations you
want to generate. For ex: Measure: Total Dollars and calculations are Change and
Percent change.
Once the Time series wizard is run the output will be:
a) Aliases for the fact tables (in the physical layer)
b) Joins between period table and alias fact tables
c) Comparison measures
d) Logical table sources

In the General tab of the Logical table source etc you can find “Generated by Time Series
Wizard” in the description section
Then you can add these comparison measures to the presentation layer for your reports.
Ex: Total sales of current qtr vs. previous qtr vs. same qtr year ago

Did you create any new logical column in BMM layer, how?
Yes. We can create new logical column in BMM layer.
Example: Right click on fact table -new logical column-give name for new logical column
like Total cost.
Now in fact table source, we have one option column mapping, in that we can do all
calculation for that new column.

Can you use physical join in BMM layer?


Yes we can use physical join in BMM layer. When there is SCD type 2 we need complex
join in BMM layer.

Can you use outer join in BMM layer?


Yes we can. When we are doing complex join in BMM layer, there is one option type,
outer join is there.

What are other ways of improving summary query reports other than
Aggregate Navigation and Cache Management?
Indexes
Join algorithm
Mat/view query rewrite
Web proper report design its optimal by making sure that it is not getting any addition
column or rows

What is level-based metrics?


Level-based metrics means, having a measure pinned at a certain level of the dimension.
For Example, if you have a measure called “Dollars”, you can create a “Level Based
Measure” called “Yearly Dollars” which (you guessed it) is Dollars for a Year. This
measure will always return the value for the year even if you drill down to a lower level
like quarter, month… etc. To create a level based measure, create a new logical column
based on the original measure (like Dollars in the example above). Drag and drop the
new logical column to the appropriate level in the Dimension hierarchy (in the above
example you will drag and drop it to Year in Time Dim

 A LBM is a metric that is defined for a specific level or intersection of levels.


 Monthly Total Sales or Quarterly Sales are the examples.
 You can compare monthly sales with quarterly sales. You can compare customer
orders this quarter to orders this year

What is logging level? Where can you set logging levels?


You can enable logging level for individual users; you cannot configure a logging level for
a group.
Set the logging level based on the amount of logging you want to do. In normal
operations, logging is generally disabled (the logging level is set to 0). If you decide to
enable logging, choose a logging
Level of 1 or 2. These two levels are designed for use by OBIEE Server administrators.
Set Logging Level
1. In the Administration Tool, select Manage > Security.
2. The Security Manager dialog box appears.
3. Double-click the user’s user ID.
4. The User dialog box appears.
5. Set the logging level by clicking the Up or Down arrows next to the Logging Level field

What is variable in OBIEE?


You can use variables in a repository to streamline administrative tasks and modify
metadata content dynamically to adjust to a changing data environment. The
Administration Tool includes a Variable Manager for defining variables

What is system variable and non system variable?


System variables
System variables are session variables that the OBIEE Server and OBIEE Web use for
specific purposes. System variables have reserved names, which cannot be used for
other kinds of variables (such as static or dynamic repository variables, or for non-
system session variables).
When using these variables in the Web, preface their names with NQ_SESSION. For
example, to filter a column on the value of the variable LOGLEVEL set the filter to the
Variable NQ_SESSION.LOGLEVEL.
Non-system variables
A common use for non-system session variables is setting user filters. For example, you
could define a non-system variable called Sales Region that would be initialized to the
name of the user’s sales region. You could then set a security filter for all members of a
group that would allow them to see only data pertinent to their region.
o When using these variables in the Web, preface their names with NQ_SESSION. For
example, to filter a column on the value of the variable Sales Region set the filter to the
Variable NQ_SESSION.SalesRegion.

What are different types of variables? Explain each.


o There are two classes of variables:
1. Repository variables
2. Session variables.
Repository variables.
A repository variable has a single value at any point in time. There are two types of
repository variables:
Static: This value persists, and does not change until a OBIEE Server administrator
decides to change it.
Dynamic: The values are refreshed by data returned from queries. When defining a
dynamic repository variable, you will create an initialization block or use a preexisting
one that contains a SQL query. You will also set up a schedule that the OBIEE Server will
follow to execute the query and periodically refresh the value of the variable.
Session Variables
Session variables are created and assigned a value when each user logs on. There are
two types of session variables:
1. System
2. Non-system.

What are the cache management? Name all of them and their uses. For Event
polling table do u need the table in your physical layer?
Monitoring and managing the cache is cache management. There are three ways to do
that.
Disable caching for the system.(INI NQ config file), Cache persistence time for specified
physical tables and Setting event polling table.
Disable caching for the system.(INI NQ config file :
You can disable caching for the whole system by setting the ENABLE parameter to NO in
the NQSConfig.INI file and restarting the OBIEE Server. Disabling caching stops all new
cache entries and stops any new queries from using the existing cache. Disabling
caching allows you to enable it at a later time without losing any entries already stored
in the cache.
Cache persistence time for specified physical tables:
You can specify a cacheable attribute for each physical table; that is, if queries involving
the specified table can be added to the cache to answer future queries. To enable
caching for a particular physical table, select the table in the Physical layer of the
Administration Tool and select the option Make table cacheable in the General tab of the
Physical Table properties dialog box. You can also use the Cache Persistence Time
settings to specify how long the entries for this table should persist in the query cache.
This is useful for OLTP data sources and other data sources that are updated frequently,
potentially down to every few seconds.
Setting event polling table:
OBIEE Server event polling tables store information about updates in the underlying
databases. An application (such as an application that loads data into a data mart) could
be configured to add rows to an event polling table each time a database table is
updated. The Analytics server polls this table at set intervals and invalidates any cache
entries corresponding to the updated tables.
For event polling table, it is a standalone table and doesn’t require to be joined with
other tables in the physical layer

What is Authentication? How many types of authentication?


Authentication is the process, by which a system verifies, through the use of a user ID
and password, that a user has the necessary permissions and authorizations to log in
and access data. The OBIEE Server authenticates each connection request it receives.
” Operaing system autentication
” External table authentication
” Database authentication
” LDAP authentication

What is object level security?


There are two types of object level security: Repository level and Web level.
Repository level: In presentation layer we can set Repository level security by giving
permission or deny permission to users/groups to see particular table or column.
Web level: this provides security for objects stored in the OBIEE web catalog, such as
dashboards, dashboards pages, and folder and reports you can only view the objects for
which you are authorized. For example, a mid-level manager may not be granted access
to a dashboard containing summary information for an entire department.

What is data level security?


This controls the type an amount of data that you can see in a report. When multiple
users run the same report the results that are returned to each depend on their access
rights and roles in the organization. For example a sales vice president sees results for
all regions, while a sales representative for a particular region sees only data for that
region.

What is the difference between Data Level Security and Object Level Security?
Data level security controls the type and amount of data that you can see in reports.
Object level security provides security for objects stored in the OBIEE web catalog, like
dashboards, dashboards pages, folder and reports.

How do you implement security using External Tables and LDAP?


Instead of storing user IDs and passwords in a OBIEE Server repository, you can
maintain lists of users and their passwords in an external database table and use this
table for authentication purposes. The external database table contains user IDs and
passwords, and could contain other information, including group membership and display
names used for OBIEE Web users. The table could also contain the names of specific
database catalogs or schemas to use for each user when querying data
Instead of storing user IDs and passwords in a OBIEE Server repository, you can have
the OBIEE Server pass the user ID and password entered by the user to an
LDAP(Lightweight Directory Access Protocol ) server for authentication. The server uses
clear text passwords in LDAP authentication. Make sure your LDAP servers are set up to
allow this.

If you have 2 fact and you want to do report on one with quarter level and the
other with month level how do you do that with just one time dimension?
Using level base metrics.

Did you work on a standalone Siebel system or was it integrated to other


platforms?
Deploying the OBIEE platform without other Siebel applications is called OBIEE Stand
-Alone .If your deployment includes other OBIEE Application it called integrated analytics
-You can say Stand-Alone OBIEE

How to sort columns in RPD and web?


Sorting on web column, sort in the RPD its sort order column

If you want to create new logical column where will you create (in repository or
dashboard) why?
I will create new logical column in repository. Because if it is in repository, you can use
for any report. If you create new logical column in dashboard then it is going to affect on
those reports, which are on that dashboard.  You cannot use that new logical column for
other dashboard (or request)

What is the difference between foreign key join & complex join?

Answer1:
A physical join is at the physical layer and defines the join between two physical tables.
Logical joins live at the BMM (logical) layer and define a join between two logical tables.
The important differentiation is that at the BMM layer you do not tell the OBIEE server
how to do the join, you just tell it that there is a relationship between these two logical
entities. When the server comes to this logical join it will use the information in the
physical joins and decides how the two logical tables are joined together.
Answer2:
The Join in BMM layer explains how the join has to be interpreted. For example in
physical layer when you define a join b/w two tables, you are not explaining the type of
join (.e. inner or outer). What you have is the expression stating the condition of join. In
BMM layer between these two respective tables you explain the type of join.

If you want to limit the users by the certain region to access only certain data,
what would you do?
Using data level security.
OBIEE Administrator: go to Manage -> Security in left hand pane u will find the user,
groups, LDAP server, Hierarchy
What you can do is select the user and right click and go to properties, you will find two
tabs named as users and logon, go to user tab and click at permission button in front of
user name you have selected as soon as u click at permission you will get a new window
with user group permission having three tabs named as general ,query limits and filter
and you can specify your condition at filter tab, in which you can select presentation
table ,presentation columns ,logical table and logical columns where you can apply the
condition according to your requirement for the selected user or groups.

If there are 100 users accessing data, and you want to know the logging details
of all the users, where can you find that?
To set a user’s logging level
1. In the Administration Tool, select Manage > Security.
The Security Manager Dialog box appears.
2. Double-click the user’s user ID. The User dialog box appears.
3. Set the logging level by clicking the up or down arrows next to the Logging Level field

How do implement event polling table?


OBIEE Server event polling tables store information about updates in the underlying
databases. An application (such as an application that loads data into a data mart) could
be configured to add rows to an event polling table each time a database table is
updated. The Analytics server polls this table at set intervals and invalidates any cache
entries corresponding to the updated tables.

Can you migrate the presentation layer only to different server?


No we can’t do only presentation layer. And ask him for more information and use one of
the above answers
Create a ODBC connection in the different serve and access the layer.
Copy the RPD and migrate it to other server

Define pipeline. Did you use it in your projects?


Yes, pipelines are the stages in a particular transaction. Assessment, finance etc.

How do you create filter on repository?


Where condition on content tab.

How do you work in a multi user environment? What are the steps?
 Create a shared directory on the network for Multi-user Development (MUD).
 Open the RPD to use in MUD. From Tools->Options, setup the MUD directory to
point to the above directory.
 Define projects within the RPD to allow multiple users to develop within their
subject area or Facts.
 Save and move the RPD to the shared directory setup in point 1.
 When users work in the MUD mode, they open the admin tool and start with
 MUD ->Checkout to check out the project they need to work on (not use the File
open as you would usually do).
 After completely the development, user check-in the changes back to the network
and merge the changes.

Where are passwords for userid? LDAP, external table authentication stored
respectively?
Passwords for userid are in OBIEE server repository LDAP authentication in LDAP server
external database in a table in external database

Can you bypass OBIEE server security? if so how?


Yes you can by-pass by setting authententication type in NQSCONFIG file in the security
section as: authentication_type=bypass_nqs.instanceconfig.xml and nqsconfig.ini are
the 2 places

Where can you add new groups and set permissions?


You can add groups by going to manage>security>add new groups> You can give
permissions to a group for query limitation and filter conditions.

What are the things you can do in the BMM layer?


Aggregation navigation, level base metrics, time series wizard, create new logical
column, complex join.

What is ragged hierarchy and how do you manage it?


Ragged Hierarchy is one of the different kinds of hierarchy.
 A hierarchy in which each level has a consistent meaning, but the branches have
inconsistent depths because at least one member attributes in a branch level is
unpopulated. A ragged hierarchy can represent a geographic hierarchy in which the
meaning of each level such as city or country is used consistently, but the depth of the
hierarchy varies.
For example, a geographic hierarchy that has Continent, Country, Province/State, and
City levels defined. One branch has North America as the Continent, United States as the
Country, California as the Province or State, and San Francisco as the City. However, the
hierarchy becomes ragged when one member does not have an entry at all of the levels.
For example, another branch has Europe as the Continent, Greece as the Country, and
Athens as the City, but has no entry for the Province or State level because this level is
not applicable to Greece for the business model in this example. In this example, the
Greece and United States branches descend to different depths, creating a ragged
hierarchy.

What is the difference between Single Logical Table Source and Multiple Logical
Table Sources?

 If a logical table in BMM layer has only one Table as the source table then it is
Single LTS.
 If the logical table in BMM layer has more than one table as the sources to it then
it is called Multiple LTS.
 Ex: Usually Fact table has Multiple LTS’, for which sources will be coming from
different Physical tables.
Can you let me know how many aggregate tables you have in your project? On
what basis have you created them?
As per resume justification document

How do you bring/relate the aggregate tables into the OBIEE Logical layer?

 One way of bringing the Aggregate Tables into the BMM layer is by bringing them
as Logical Table sources for the corresponding Fact table.
 This is done by dragging and dropping the aggregate table into the corresponding
fact table. After doing that establish the column mappings and the set the
aggregation levels.

How do you know which report is hitting which table, either the fact table or
the aggregate table?

 After running the report, go to “Administration” tab and go to click on “Manage


Sessions”. There you can find the queries that are run and in the “View Log”
option in the Session Management you can find which report is hitting which
table.

Suppose I have report which is running for about 3 minutes typically. What is
the first step you take to improve the performance of the query?

 Find the SQL query of the report in Admin->manage Session-> run the SQL
query on toad ->read the explain plan output ->modify the SQL based on the
explain plan output

Suppose you have a report which has the option of running on aggregate table.
How does the tool know to hit the Aggregate table and for that what the steps
you follow to configure them?

 Explain the process of Aggregate navigation

Have you heard of Implicit Facts? If, so what are they?


An implicit fact column is a column that will be added to a query when it contains
columns from two or more dimension tables and no measures. You will not see the
column in the results. It is used to specify a default join path between dimension tables
when there are several possible alternatives.
For example, there might be many star schemas in the database that have the
Campaign dimension and the Customer dimension, such as the following stars:

 Campaign History star. Stores customers targeted in campaign.


 Campaign Response star. Stores customer responses to a campaign.
 Order star. Stores customers who placed orders as a result of a campaign.
In this example, because Campaign and Customer information might appear in many
segmentation catalogs, users selecting to count customers from the targeted campaigns
catalog would be expecting to count customers that have been targeted in specific
campaigns.
” To make sure that the join relationship between Customers and Campaigns is through
the campaign history fact table, a campaign history implicit fact needs to be specified in
Campaign History segmentation catalog. The following guidelines should be followed in
creating
” segmentation catalogs:
” Each segmentation catalog should be created so that all columns come from only one
physical star.
” Because the Marketing module user interface has special features that allow users to
specify their aggregations, level-based measures typically should not be exposed to
segmentation users in a segmentation catalog.

What is aggregate navigation? How do you configure the Aggregate tables in


OBIEE?
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 very popular technique for speeding up query response times in decision
support systems.
If you are writing SQL queries or using a tool that only understands what physical tables
exist (and not their meaning), taking advantage of aggregate tables and putting them to
good use becomes more difficult as the number of aggregate tables increases. The
aggregate navigation capability of the OBIEE Server, however, allows queries to use the
information stored in aggregate tables automatically, without query authors or query
tools having to specify aggregate tables in their queries. The OBIEE Server allows you to
concentrate on asking the right business question; the server decides which tables
provide the fastest answers.

(Assume you are in BMM layer) We have 4 dimension tables, in that, 2 tables
need to have hierarchy, and then in such a case is it mandatory to create
hierarchies for all the dimension tables?
No, it’s not mandatory to define hierarchies to other Dimension tables.

Can you have multiple data sources in OBIEE?


Yes.

How do you deal with case statement and expressions in OBIEE?


Use expression builder to create case when…then.. End statement

Do you know about Initialization Blocks? Can you give me an example where
you used them?

 Init blocks are used for instantiating a session when a user logs in.
 To create dynamic variable you have to create IB to write SQL statement.

What is query repository tool?

 It is utility of Seibel/OBIEE Admin tool


 Allows you to examine the repository metadata tool
 For example: search for objects based on name, type.
 Examine relationship between metadata objects like which column in the
presentation layer maps to which table in physical layer

What is JDK and why do we need it?


Java Development Kit (JDK), A software package that contains the minimal set of tools
needed to write, compile, debug, and run Java applets.
Oracle doesn’t recommend Opaque Views because of performance
considerations, so why/when do we use them?
An opaque view is a physical layer table that consists of select statement. an opaque
view should be used only if there is no other solution.

Can you migrate the presentation layer to a different server?


No we have to migrate the whole web & RPD files

How do you identify what are the dimension tables and how do you decide
them during the Business/Data modeling?
Dimension tables contain descriptions that data analysts use as they query the database.
For example, the Store table contains store names and addresses; the Product table
contains product packaging information; and the Period table contains month, quarter,
and year values. Every table contains a primary key that consists of one or more
columns; each row in a table is uniquely identified by its primary-key value or values

Why do we have multiple LTS in BMM layer? What is the purpose?


To improve the performance and query response time.

What is the full form of RPD?


There is no full form for RPD as such, it is just a repository file (Rapidfile Database)

How do i disable cache for only 2 particular tables?


In the physical layer, right click on the table there we will have the option which says
cacheable

How do you split a table in the RPD given the condition? (The condition given
was Broker and customer in the same table) Split Broker and customer.
We need to make an alias table in the physical layer.

What type of protocol did you use in SAS?


TCP/IP

OBIEE Security FAQ Explained

How is security set up in OBIEE?  How many methods of security can be set up
in OBIEE…?
Let’s start with Authentication and Authorization. 
Authentication is process of confirming whether the user is a valid user or not. Is he part
of this company? Is he an employee of our external suppliers?
 Authorization is process of giving access to different pieces of the OBIEE. One user
“UserA” can access dashboards, can create iBots, can schedule reports and can do
administrative tasks. Another user “UserB” can see only part of what “UserA” has access
to and “UserB” has access to some other tabs of the dashboard that “UserA” does not.
This layer of separating who can access what is done as part of Authorization.
How does OBIEE handle Authentication?
It’s very flexible and can be integrated to one of your existing technologies like LDAP,
Oracle EBS, AD, and Oracle Database. So, do the same username have to exist in OBIEE
security layer as part of RPD development? Yes, by default, OBIEE stores list of
usernames and passwords and checks incoming credentials against it. 
Heard about External Table Authentication? Where does this come into play?
Instead of storing usernames and passwords directly in the RPD, these are stored in the
database for better management purposes. This also helps in RPD migration and
deployment across multiple environments.
 How is Authorization handled in OBIEE?
Authorization is done as part of security in Presentation Services.
 Does OBIEE have two layers of security?
Yes, first at the RPD level and second at the presentation services level.
Do you have to have the same username established at both RPD and
presentation services levels for this to work?
Not necessarily based on my knowledge.. I will let others comment on this
What kind of privileges can be granted from presentation services level?
Access to iBots, certain tabs in the dashboard, delivers, alerts, schedule reports etc etc..
Why OBIEE security is different compared to other BI tools?
Because it’s very flexible and can integrate into any existing security architecture an
organization has built and reduces the need for one more layer of administration.. 
Did Oracle OBIEE do a good job of communicating and convincing the user
community regarding the security architecture?
Probably not... I understand the complexity behind this and the mere flexibility of the
tool makes this even difficult.

Nerds of OBIEE

1. What is the default location of a repository file?

[InstalledDirectory]\OracleBI\server\Repository\

2. How many repository files can be loaded to a BI Server simultaneously?


Assume it’s a single server with single instance of BI Server running just
to keep things easy

I’m not sure about the limit of number of repositories loaded at same
time but to make one rpd online we need one saw server so for multiple
rpds to be online we need as many saw servers.

3. If you have more than 3 repository files mentioned in your NQSConfig.ini


file as default, which one gets loaded to the memory when the BI Server
is started?

Ex:
Star = SamplerRepository1.RPD, DEFAULT;
Star = SamplerRepository2.RPD, DEFAULT;
Star = SamplerRepository3.RPD, DEFAULT;

If we don’t specify comment the last repository will be loaded online,


so in this case SamplerRepository3.rpd will be loaded.

4. How do you import Essbase Cubes into your repository?

5. What’s XMLA and where is it used for in OBIEE context?


The Provider Services tool that comes with Essbase is used to provide the
interface, with Oracle BI Server talking to Essbase through its XMLA
interface. (Need to find the answer still)
XML for Analysis (abbreviated as XMLA) is an industry standard for data access in
analytical systems, such as OLAP and Data Mining. XMLA is based on other industry
standards such as XML, SOAP and HTTP.

6. Can you change the location of your RPD file in your OBIEE
Configuration? If Yes, Where would you mention the new location of this
RPD file for Bi Server?

Read the NQSConfig file “Repository Section”. You will easily find the
answer. The answer for this is “It cant be changed”.

-*
The repository location can be changed, this must be done when
clustering the BI Server. The parameters in the NQSCONFIG.INI file are
REPOSITORY_PUBLISHING_DIRECTORY =
REQUIRE_PUBLISHING_DIRECTORY = YES;

7. What kind of joins would you perform in the physical layer of the
repository file when opened with Administration tool?

We cannot have outer joins in Physicla layer. We can outer joins in BMM
layer. In BMM layer - complex join can be full inner join or full outer join
or whatever your criteria was,but in physical layer - physical join is
always an inner join.

8. What are the minimum services needed to load a repository file onto
memory and view a dashboard which has reports that have been
refreshed on a scheduled basis?

Oracle BI Java Host, Oracle BI Presentation Server, and Oracle BI Server

9. Can you use an OLTP backend database for creating a dashboard?

Technically you can use OBIEE with OLTP as well. However real world
scenarios pertaining to OLTP makes it difficult for OBIEE to create Star
schema from OLTP. Also OBIEE is an engine to perform analytics queries,
while in most cases queries generated against OLTP schemas are
operational in nature. Better option is to use BI publisher and do away
with OBIEE when querying against OLTP.

Bottom line, you can use OLTP with OBIEE but performance will be an
issue (not advisable).
*
OBIEE works with any database if you force to do. If you want to follow
best practices, its recommended to use with OLAP systems. After all
OBIEE is analytics reporting tool and OLAP databases were designed for
reporting requirements. So its always advised use the OLAP to get better
performance and better analytics from OBIEE.

10. How many tables are needed in minimum to pass through


the Consistency Checking in Logical Layer (Business Mapping
and Modeling Layer) of the repository?

TWO TABLES…

11. Can you create new views in the database using OBIEE Administration
tool? Can you explain the procedure for doing this?

The view SQL Syntax is standard ANSI SQL. From what I understand, you
have a table named "Table 1" which has four columns, "Attr1", "Attr2",
"Measure 1", "Measure 2". You want to create a new measure named
"Attribute 3" (I'd recommend not having spaces in your column and table
names FYI).

If that's correct, then try this


1. In the physical layer, change the object type to view.
2. Put the following SQL in the box
Select "Table 1"."Attr 1","Table 1"."Measure 1", 'Y' "Attribute 3"
From "Table 1"
3. Define your columns in the object appropriately.
*
You are right, it is called a SELECT type.

About your second question I'm not sure what you mean. You use a SQL
Select statement in this area. The Alias of the columns need to match the
columns you setup in the RPD exactly. But in this process you don't create
a physical DB view object, hence there's no need to name it. You just
create the select statement that you would use to create a view and
OBIEE references the statement.

12. What is a complex join in OBIEE and why, where is it used?

A complex join is a metadata of sql join statement in the repository.


*
The complex join in the BM is it will dynamically select
which Logical table sources to join together from the Logical tables.

If you use a FK business model join, you are forcing which fields OBI can
use and therefore which LTSs it can use. The joining is not physical table
to physical table, but really LTS to LTS. Whatever physical joins are
underneath it will use (as long as they are there).
But the concept is LTS-to-LTS, not the individual tables inside.
The problem with the FK join is that you are tying
OBI's hands and limiting its choices. If you made a FK join on
MONTH_KEY
for example, if you selected a Day field on your report, OBI would try to
find a LTS souce that
1) has day on it and
2) has a field that maps to MONTH_KEY

which your day table might not have mapped. Thus, you would be asking
for something that doesn't exist, which results in thrwoing an error.
*
When Complex joins are used in the BMM (Business Model) layer then
they are really acting as placeholders. They allow the OBI Server to
decide on which are the best joins to use in the Physical Layer to satisfy
the request.
In a Dimension, you may have multiple Logical Table sources that all join
to one fact table. The OBI Server will decide on the best physical joins to
use to meet the requirements if a Complex join is used in the BMM Layer.

Hope this help.

Be careful, you can also use a "complex join" in the physical layer but it's
to be able to set a complex join condition and you must do the difference
with the complex join in the BMM as describe above.
*
Lets take one example.

We have a fact (F) joined with DIM (D) having 2 LTS DAY & WEEK using a
complex join in BMM. And Physical/PF joins on DAY_ID & WK_ID
respectively in physical layer.

Now if I take a column from one of the LTS suppose from day on a report
with other few columns/measures from the fact.

On what basis the BI server will decide from the complex join in the BMM
that which physical join will be selected in the PHYSICAL layer to issue an
sql.

Is it mandatory to have hierarchies defined in your repository? If yes, where


does it help? If No, what happens in the reports?
not mandatory, if u have u can drill the data, like if u click on year you will get quarters
in the other column or summary values to detailed values. If No, you cannot drilldown.

13. How do you create outer joins in physical layer?

We cannot
14. What does Consistency Checking perform; what are the minimum criteria
to pass consistency checking for a given repository?

Consistency check is a utility in the Administration Tool that checks if a repository has
met certain requirements. Repositories and the business models within them must pass
the consistency check before you can make business models available for queries. When
a repository or business model is inconsistent, a detailed message alerts you to the
nature of the inconsistency.
The Consistency Check Manager displays three types of messages:
Error messages indicate errors that need to be fixed to make the repository consistent.
Warning messages indicate conditions that may or may not be errors, depending upon
the intent of the Oracle BI Server administrator. For example, if the Administrator user
has an empty password this should be addressed, but is not a requirement for a
consistent repository.
Best Practices messages provide information about conditions but do not indicate an
inconsistency. For example, if there are physical tables with no keys defined, a best
practice message is displayed. Defining keys for physical tables is best practice, but is
not a requirement for a consistent repository.
For each message the Consistency Check Manager identifies the message type, the
object type, the object, and provides a detailed description of the message. There are
options to display only selected message types, display results using qualified names,
check all objects in the repository, and copy the results to another file.
Minimum criteria
Checking Global Consistency checks for errors in the entire repository. Some of the more
common checks are done in the Business Model and Mapping layer and Presentation
layer. Since these layers are not defined yet, bypass this check until the other layers in
the repository are built. You learn more about consistency check later in this tutorial.

15. Does OBIEE store physical sql ? How is physical sql generated in OBIEE
environments?

YES.
HOW: The physical SQL is the SQL that send the BI Server to the data sources in order
to retrieve data. This SQL is generated by the query compiler during the query
processing of the logical sql created by a client tool generally through an answer
(Advanced Tab)

16. Are there any occasions where physical sql is not generated when
running against a backend database like Oracle, SQL Server or any other
relational database?

Depends on Logging level. (Elaborate it later)

17. What is the best default logging level for production users?

The login level is a parameter which control the number of information that you will
retrieve in the log file from nothing (level 0 - OBIEE - No Log Found) to a lot of
information (level 5).
You can enable logging level for individual users; you cannot configure a logging level for
a group.
The session variable LOGLEVEL overrides a user's logging level. For example, if the
Oracle BI Administrator has a logging level defined as 4 and LOGLEVEL is defined as
default 0 (zero) in the repository, the Oracle BI Administrator's logging level will be 0.
In normal operations:
Users have a logging level set to 0
Administrators have a logging level set to 2

18. What is the difference between logging level 1 and 2?

Description of logging levels

Logging Logging Level Information That Is Logged


Levels
Level 0 No logging
Level 1 Logs the SQL statement issued from the client application
Logs elapsed times for query compilation, query execution, query cache
processing, and back-end database processing
Logs the query status (success, failure, termination, or timeout). Logs the
user ID, session ID, and request ID for each query
Level 2 Logs everything logged in Level 1
Additionally, for each query, logs the repository name, business model
name, presentation catalog (called Subject Area in Answers) name, SQL
for the queries issued against physical databases, queries issued against
the cache, number of rows returned from each query against a physical
database and from queries issued against the cache, and the number of
rows returned to the client application
Level 3 Logs everything logged in Level 2
Additionally, adds a log entry for the logical query plan, when a query that
was supposed to seed the cache was not inserted into the cache, when
existing cache entries are purged to make room for the current query,
and when the attempt to update the exact match hit detector fails
Level 4 Logs everything logged in Level 3
Additionally, logs the query execution plan. Do not select this level
without the assistance of Technical Support
Level 5 Logs everything logged in Level 4
Additionally, logs intermediate row counts at various points in the
execution plan. Do not select this level without the assistance of Technical
Support

19. What are the different places (files) to view the physical sql generated by
an Answers report?

A quick way to see the content of the Nqquery.log to grab the SQL information is to
follow these quick instructions.
Click Settings > Administration > Manage Sessions > View Log to view the query log and
examine the Physical SQL generated by the request.
To be able to see the log, you must set the log level at least with the level 2.

20. Where the BI Server does logs its start, stop and restart times in the file
system?

NQServer.log can be located from the path ORACLEBI/server/log/NQServer.log.This log


consists of BI Server Start up issues and Subject areas loaded and the data sources
connected from within the RPD. If the NQSConfig.ini has errors or if RPD has version
issues or if proper RPD is not loaded, the BIServer fails to start and this will be recorded
in the BIServer.
21. You have two tables Table 1 and Table 2 joined by a foreign key in the
database? They are imported together from the database into your
physical layer. Is this relationship still preserved in the OBIEE physical
layer?

NO. Need to join them again with their foreign keys (Elaborate it more later)

22. Same as question 22 but what happens if you import each table
separately?

Same. Need to Join them in Physical Layer (Elaborate it more later)

23. If Table 1 and Table 2 are dragged from physical layer to BMM layer,
which table becomes a Fact Table and which table becomes a Dimension
Table?

Depends on the relation between table 1 and table 2. The table that N relation will be
fact and the other will be dimension.
More info:
In Physical Layer joins, It matters which table you click first. The join is creating a one-
to-many (1:N) relationship that joins the key column in the first table to a foreign key
column in the second table. The Administration Tool makes a best "guess" and
automatically determines which columns should be included in the join.

There are two main categories of logical tables: fact and dimension. Logical fact tables
contain the measures by which an organization gauges its business operations and
performance. Logical dimension tables contain the data used to qualify the facts.

24. What if the tables (Table 1 and Table 2) are not joined, and then what
happens in BMM layer?

We will get warning that, logical table is joined with any ohther table

25. What is the difference between logical table and logical table source?

A logical table contains one or more logical table source. The mapping between physical
columns and logical columns are done in this element.

26. How many LTS (Logical Table Sources) can a logical table have? What’s
the minimum and maximum?

Info:
http://www.shangyezhineng.com/blog/125/tech-content/obiee/logical-table-vs-logical-
table-src

27. How many server instances can coexist in an OBIEE cluster?

Maximum 16

28. What’s a dimension only query in OBIEE?


29. Aggregation rules are set on top of …………… columns (Physical Columns
or Logical Columns or Both)

Logical columns

30. What is alternative drill path? How do you set alternative drill path in
OBIEE?

http://forums.oracle.com/forums/thread.jspa?threadID=1955095&tstart=30

31. What are the pre-requisites for using aggregate persistence wizard?
What does aggregate persistence wizard create and what does it help
with?

32. Can you import data in multiple sheets from an Excel file? How do you
import data from an Excel sheet? (Forget about csv files for now)

Yes.

33. What are the uses of “Execute Direct SQL” feature in Answers? Is it a
good practice to allow this feature for production users?

Check it later….NO

34. How do you disable “Execute Direct SQL” feature for all the users of your
repository?

Persentation serveices Admin

35. I want to store the value of the last time the repository was updated and
show it in the dashboard? What type of variable can be used for this
purpose?

Dynamic Repository variable

36. Is there any way to see a list of all the repository variables defined in
your repository using Answers tool?

37. What are Chronological Keys in OBIEE? How are they different from Logical Keys?

The chronological keys are used in the hierarchies where the dimension
attributes referred in the same keep on increasing in a particular fashion.
The best example of the same is the date dimension. The chronological
key is referred to as the attribute which keeps on increasing. This helps in
using the time series functions and the YTD and MTD measures
calculation.

You can also declare the other hierarchy attributes as chronological key if
their value keep on increasing in a certain fashion.
*
The Chronological Key should be the date itself. The unique identifier is
the date/time itself, there can be many dates in a year, month, etc. If the
key is structured as you have said yyyymmdd you can use it as the key.
The chronological key has to increase sequentially, so yyyyddmm
wouldn't work. The reason is that the query generated by date specific
functions in OBI like AGO use the chronological order in building the
query, as mentioned in an earlier response.

38. You want to use a database built-in function bypassing the functions
defined in OBIEE? What OBIEE function helps in achieving this? What’s
the syntax for this function?

Evaluate function

39. What are the different ways to authenticate an user in OBIEE system?
Can OBIEE authenticate a user passing through multiple authentication
methods?

LDAP, EXTERNAL TABLE

40. How do you resolve M:M relationship between tables in OBIEE? Explain a
scenario where this would help?

41. Does OBIEE support ragged hierarchies? What is the procedure to import
ragged hierarchies from Essbase?

See it above for ragged hierarchy. Import from Essbase, no idea.

42. You are trying to open a repository using Admin tool and when you click
to say “Open Online”; a dialogue box pops up saying “Your RPD is
available in read-only” mode. How can you edit this repository by
opening online?

One of the reasons you get this message because: If you are getting problem, because
last time when RPD is open you restarted the BI Server. Never ever restart the server
when the RPD is open in ONLINE or OFFLINE. However as a best practice close the RPD
whenever you want to restart the BI services, every time.

43. How do you set up usage tracking in OBIEE? Is the Usage Tracking
mechanism in OBIEE configurable to capture new identified metrics by
your department?
Read about Usage Tracking

44. What is the default configuration for caching in NQSConfig.ini file? How
method does the OBIEE use for clearing its cache?

YES. In Admin tool, ManageCachePurge


In PS, Manage session  Close all cursors.

45. Table 1 and Table 2 are joined together in an Answers query. Table 1 is
defined as cacheable and Table 2 is defined as not cacheable? What
happens to the result set used in the Answers tool? Is the result cached
or not cached?

46. What is MUDE/ MUD in OBIEE? On what basis would you create projects?

Read about MUDE

47. Two people (Developer A and Developer B) are assigned to the same project
inside MUD and opened the same project simultaneously. Developer A made
some changes to the project and merged his changes to the original repository.
Developer B also made some changes and committed his changes to the original
repository? Does the MU environment preserve both Developer A and Developer
B changes?

YES but check it.

48. In MUDE, Can two resources checkout the same project simultaneously?

NO

49. In MUDE, what happens if the physical tables are shared between
projects?

50. What are the different types of utilities provided in OBIEE? Explain any
two utilities used in your previous projects and what are they used for?

Check Utilities

51. What are the different documentation mechanisms available in Admin


tool? How do you create documentation for your Answers users against
all objects available in your subject areas?

Check Utilities
53. What are parameterized nested loop joins (PNLP)? Where are they used? Can you
configure a PNLP in your physical or logical layer?
54. You are running a dashboard report and check whether it is using cache? What are
the different caches that can be used to serve its customer faster? (remember we are
not talking about cache in BI Server only) How does a dashboard request gets served
from all available caches?
55. Is it better to cache a fact table or dimension table or both in the BI Server level?
Why? (Forget other caches from above question)
56. You recently changed the columns of your presentation catalog as your manager
wants to enforce naming standards for all customer facing apps. What happens to all the
dashboard requests written prior ot this change? Do they function properly or do they
appear broken? If ‘Yes, they will function’ How does they work? ‘If Not, reports appears
broken’ what can you do to fix this?  Give examples.
57. What are the different hierarchy types available in OBIEE? When would you use
them?
58. How do you create radio buttons on your OBIEE dashboard?
59. Can you create a Master Detail Report in OBIEE and how would you do it?
60. How do you deal with a situation like this when data is coming from a snowflaked
data warehouse.
Fact  >—— Dimenion 1 >———-< Dimension 2 >————< Dimension 3
Dimension 1 and Dimension 2 is a M:M relationship and the same for Dimension 2 and
Dimension3.
61. How do you resolve a M:M relationship other than using a bridge table?
62. Lets say that you have three tables joined to each other which have been set to be
cacheable at physical layer with Table 1 set at cache persistence time 45 min, Table 2
with 60 min and Table 3 with 30 min. You ran your answers request at 9 AM and again
at 9:15 AM and again at 9:45 AM. Is the result set the same for all these 3 runs at
different times? If so, Why? If Not, why not? There are transactions going on and data is
being updated in these tables almost every 10 min.
63. Lets say you are on your local box with a RPD and want to make sure that it can be
edited only in offline mode. How can you accomplish this? Is this possible? What settings
would you change?
64. Assume there is no MUDE in your environment. Three developers have been working
on three separate projects and they have developed their RPDs. As a Server Admin, you
were asked to promote these three RPDs. What are the next steps for you as an admin
to take care of to move them to QA and production? Are there any OBIEE tools that can
be handy with this situation?
65. How do you get this type of interaction in your dashboard report? When clicked on a
report column, I want multiple options for drill down. Remember that I did not create
any hierarchies in my RPD.
http://nerdsofobiee.files.wordpress.com/2010/07/answersmultiplepaths.jpg
66. Lets say that you want to include a prompt to your dashboard with Start Date, End
Date and some measures and dimension attributes. You want to use ‘SQL Results’
feature to automatically populate Start Date and End Date with Start Date as
trunc(sysdate – 1) and End Date as trunc(sysdate). What would you do? Will you
encounter any errors? How do you rectify this problem?
67. How many business models can a presentation catalog refer to? How many
presentation catalogues be created from a single business model?
68. How can we create nested presentation folders (nested presentation
tables) in your presentation catalog? Let’s say we have ‘Facts’ all lumped
together in one folder and sub divide these facts as Facts – Logical and Facts –
Strategic  folders? How would you create this nested structure in presentation
catalog?
To give the appearance of nested folders in Oracle BI Answers, prefix the name of the
presentation folder to be nested with a hyphen and a space and place it after the folder
in which it nests.
Alternatively, you can enter a hyphen and a greater than sign in the Description field.
For example, to nest the SalesFacts folder in the Facts folder, place the SalesFacts folder
directly after Facts in the Presentation layer and rename it “- SalesFacts.” When Answers
displays the folder, it omits the hyphen and space from the folder name. It is possible to
nest multiple folders under a single folder; however, only one level of nesting is possible.

69. What are logical keys? Why would you need to create them? Does the
physical key get automatically converted to logical key when the table is moved
from physical layer to business model?
After creating tables in the Business Model and Mapping layer, you specify a primary key
for each table. Logical dimension tables must have a logical primary key. Logical keys
can be composed of one or more logical columns.
NOTE: Logical keys are optional for logical fact tables. However, it is recommended that
you do not specify logical keys for logical fact tables.
When you drag physical tables (with key and foreign key relationships defined) to a
business model, logical keys and joins are created that mirror the keys and joins in the
physical layer. This occurs only if the tables that you drag include the table with the
foreign keys. Additionally, if you create new tables or subsequently drag additional tables
from the Physical layer to the Business Model and Mapping layer, the logical links
between the new or newly dragged tables and the previously dragged tables must be
created manually.

70. Let’s say you have a report with 4 dimensional attributes and 2 fact
measures in the report. Whats the default sort behavior of OBIEE when you try
to run the report? On what column/columns does it sort? How do you know
this?
Default sort order will be from left to right columns. It sorts on Dimension columns not
on facts. It is seen in the results. (Elaborate it later)

Maximum of Connection pools


The maximum number of connections allowed for this connection pool. The default is 10.
This value should be determined by the database make and model and the configuration
of the hardware box on which the database runs as well as the number of concurrent
users who require access.
NOTE: For deployments with Intelligence Dashboard pages, consider estimating this
value at 10% to 20% of the number of simultaneous users multiplied by the number of
requests on a dashboard. This number may be adjusted based on usage. The total
number of all connections in the repository should be less than 800. To estimate the
maximum connections needed for a connection pool dedicated to an initialization block,
you might use the number of users concurrently logged on during initialization block
execution.
Define pipeline. Did you use it in your projects?
Yes, pipelines are the stages in a particular transaction. Assessment, finance etc.
How do you create filter on repository?
Where condition on content tab.
How do you work in a multi user environment? What are the steps?
Create a shared directory on the network for Multi-user Development (MUD).
Open the RPD to use in MUD. From Tools->Options, setup the MUD directory to point to
the above directory.
Define projects within the RPD to allow multiple users to develop within their subject
area or Facts.
Save and move the RPD to the shared directory setup in point 1.
When users work in the MUD mode, they open the admin tool and start with
MUD ->Checkout to check out the project they need to work on (not use the File open as
you would usually do).
After completely the development, user checking the changes back to the network and
merge the changes.
Where are passwords for userid? LDAP, external table authentication stored
respectively?
Passwords for userid are in OBIEE server repository LDAP authentication in LDAP server
external database in a table in external database
Can you bypass OBIEE server security? if so how?
Yes you can by-pass by setting authententication type in NQSCONFIG file in the security
section as:authentication_type=bypass_nqs.instanceconfig.xml and nqsconfig.ini are the
2 places
Where can you add new groups and set permissions?
You can add groups by going to manage>security>add new groups> You can give
permissions to a group for query limitation and filter conditions.
What are the things you can do in the BMM layer?
Aggregation navigation, level base metrics, time series wizard, create new logical
column, complex join.
What is ragged hierarchy and how do you manage it?
Ragged Hierarchy is one of the different kinds of hierarchy.
A hierarchy in which each level has a consistent meaning, but the branches have
inconsistent depths because at least one member attributes in a branch level is
unpopulated. A ragged hierarchy can represent a geographic hierarchy in which the
meaning of each level such as city or country is used consistently, but the depth of the
hierarchy varies.
For example, a geographic hierarchy that has Continent, Country, Province/State, and
City levels defined. One branch has North America as the Continent, United States as the
Country, California as the Province or State, and San Francisco as the City. However, the
hierarchy becomes ragged when one member does not have an entry at all of the levels.
For example, another branch has Europe as the Continent, Greece as the Country, and
Athens as the City, but has no entry for the Province or State level because this level is
not applicable to Greece for the business model in this example. In this example, the
Greece and United States branches descend to different depths, creating a ragged
hierarchy.
What is the difference between Single Logical Table Source and Multiple Logical
Table Sources?
If a logical table in BMM layer has only one Table as the source table then it is Single
LTS.
If the logical table in BMM layer has more than one table as the sources to it then it is
called Multiple LTS.
Ex: Usually Fact table has Multiple LTS’, for which sources will be coming from different
Physical tables.
Can you let me know how many aggregate tables you have in your project? On
what basis have you created them?
As per resume justification document
How do you bring/relate the aggregate tables into the OBIEE Logical layer?
One way of bringing the Aggregate Tables into the BMM layer is by bringing them as
Logical Table sources for the corresponding Fact table.
This is done by dragging and dropping the aggregate table into the corresponding fact
table. After doing that establish the column mappings and the set the aggregation levels.
How do you know which report is hitting which table, either the fact table or
the aggregate table?
After running the report, go to Administration tab and go to click on Manage Sessions.
There you can find the queries that are run and in the View Log option in the Session
Management you can find which report is hitting which table.
Suppose I have report which is running for about 3 minutes typically. What is
the first step you take to improve the performance of the query?
o Find the sql query of the report in Admin->manage Session-> run the sql query on
toad ->read the explain plan output ->modify the SQL based on the explain plan output
Suppose you have a report which has the option of running on aggregate table.
How does the tool know to hit the Aggregate table and for that what the steps
you follow to configure them?
o Explain the process of Aggregate navigation
Have you heard of Implicit Facts? If, so what are they?
o An implicit fact column is a column that will be added to a query when it contains
columns from two or more dimension tables and no measures. You will not see the
column in the results. It is used to specify a default join path between dimension tables
when there are several possible alternatives.
o For example, there might be many star schemas in the database that have the
Campaign dimension and the Customer dimension, such as the following stars:
Campaign History star. Stores customers targeted in campaign.
Campaign Response star. Stores customer responses to a campaign.
Order star. Stores customers who placed orders as a result of a campaign.
In this example, because Campaign and Customer information might appear in many
segmentation catalogs, users selecting to count customers from the targeted campaigns
catalog would be expecting to count customers that have been targeted in specific
campaigns.
To make sure that the join relationship between Customers and Campaigns is through
the campaign history fact table, a campaign history implicit fact needs to be specified in
Campaign History segmentation catalog. The following guidelines should be followed in
creating
segmentation catalogs:
Each segmentation catalog should be created so that all columns come from only one
physical star.
Because the Marketing module user interface has special features that allow users to
specify their aggregations, level-based measures typically should not be exposed to
segmentation users in a segmentation catalog.
What is aggregate navigation? How do you configure the Aggregate tables in
OBIEE?
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 very popular technique for speeding up query response times in decision
support systems.
If you are writing SQL queries or using a tool that only understands what physical tables
exist (and not their meaning), taking advantage of aggregate tables and putting them to
good use becomes more difficult as the number of aggregate tables increases. The
aggregate navigation capability of the OBIEE Server, however, allows queries to use the
information stored in aggregate tables automatically, without query authors or query
tools having to specify aggregate tables in their queries. The OBIEE Server allows you to
concentrate on asking the right business question; the server decides which tables
provide the fastest answers.
(Assume you are in BMM layer) We have 4 dimension tables, in that, 2 tables
need to have hierarchy, then in such a case is it mandatory to create
hierarchies for all the dimension tables?
No, it’s not mandatory to define hierarchies to other Dimension tables.
Can you have multiple data sources in OBIEE?
Yes.
How do you deal with case statement and expressions in OBIEE?
Use expression builder to create case when…then... end statement
Do you know about Initialization Blocks? Can you give me an example where
you used them?
Init blocks are used for instantiating a session when a user logs in.
To create dynamic variable you have to create IB to write sql statement.
What is query repository tool?
It is utility of Seibel/OBIEE Admin tool
allows you to examine the repository metadata tool
for example: search for objects based on name,type.
Examine relationship between metadata objects like which column in the presentation
layer maps to which table in physical layer
What is JDK and why do we need it?
Java Development Kit (JDK), a software package that contains the minimal set of tools
needed to write, compile, debug, and run Java applets.
Oracle doesn’t recommend Opaque Views because of performance
considerations, so why/when do we use them?
An opaque view is a physical layer table that consists of select statement. an opaque
view should be used only if there is no other solution.
Can you migrate the presentation layer to a different server?
No we have to migrate the whole web & RPD files
How do you identify what are the dimension tables and how do you decide
them during the Business/Data modeling?
Dimension tables contain descriptions that data analysts use as they query the database.
For example, the Store table contains store names and addresses; the Product table
contains product packaging information; and the Period table contains month, quarter,
and year values. Every table contains a primary key that consists of one or more
columns; each row in a table is uniquely identified by its primary-key value or values
Why do we have multiple LTS in BMM layer? What is the purpose?
To improve the performance and query response time.
What is the full form of RPD?
There is no full form for RPD as such, it is just a repository file (Rapidfile Database)
How do i disable cache for only 2 particular tables?
In the physical layer, right click on the table there we will have the option which says
cacheable
How do you split a table in the RPD given the condition? (The condition given
was Broker and customer in the same table) Split Broker and customer.
We need to make an alias table in the physical layer.
What type of protocol did you use in SAS (Statistical Analysis System)?
TCP/IP
Did you create any new logical column in BMM layer, how?
Yes. We can create new logical column in BMM layer.
Example: Right click on fact table -new logical column-give name for new logical column
like Total cost.
Now in fact table source, we have one option column mapping, in that we can do all
calculation for that new column.
Can you use physical join in BMM layer?
yes we can use physical join in BMM layer. When there is SCD type 2 we need complex
join in BMM layer.
Can you use outer join in BMM layer?
Yes we can. When we are doing complex join in BMM layer ,there is one option
type,outer join is there.
What are other ways of improving summary query reports other than
Aggregate Navigation and Cache Management
Indexes
Join algorithm
Mat/view query rewrite
Web proper report design it’s optimal by making sure that it is not getting any addition
column or rows
What is level-based metrics?
Level-based metrics means, having a measure pinned at a certain level of the dimension.
For Example, if you have a measure called Dollars, you can create a Level Based
Measure called Yearly Dollars which (you guessed it) is Dollars for a Year. This measure
will always return the value for the year even if you drill down to a lower level like
quarter, month… etc. To create a level based measure, create a new logical column
based on the original measure (like Dollars in the example above). Drag and drop the
new logical column to the appropriate level in the Dimension hierarchy (in the above
example you will drag and drop it to Year in Time Dim
o A LBM is a metric that is defined for a specific level or intersection of levels.
o Monthly Total Sales or Quarterly Sales are the examples.
o You can compare monthly sales with quarterly sales. You can compare customer
orders this quarter to orders this year
What is logging level? Where can you set logging levels?
You can enable logging level for individual users; you cannot configure a logging level for
a group.
Set the logging level based on the amount of logging you want to do. In normal
operations, logging is generally disabled (the logging level is set to 0). If you decide to
enable logging, choose a logging
level of 1 or 2. These two levels are designed for use by OBIEE Server administrators.
Set Logging Level
1. In the Administration Tool, select Manage > Security.
2. The Security Manager dialog box appears.
3. Double-click the user’s user ID.
4. The User dialog box appears.
5. Set the logging level by clicking the Up or Down arrows next to the Logging Level
field
What is variable in Siebel?
You can use variables in a repository to streamline administrative tasks and modify
metadata content dynamically to adjust to a changing data environment. The
Administration Tool includes a Variable Manager for defining variables
What is system variable and non-system variable?
System variables
System variables are session variables that the OBIEE Server and OBIEE Web use for
specific purposes. System variables have reserved names, which cannot be used for
other kinds of variables (such as static or dynamic repository variables, or for non-
system session variables).
When using these variables in the Web, preface their names with NQ_SESSION. For
example, to filter a column on the value of the variable LOGLEVEL set the filter to the
Variable NQ_SESSION.LOGLEVEL.
Non-system variables.
A common use for non-system session variables is setting user filters. For example, you
could define a non-system variable called SalesRegion that would be initialized to the
name of the user’s sales region. You could then set a security filter for all members of a
group that would allow them to see only data pertinent to their region.
o When using these variables in the Web, preface their names with NQ_SESSION. For
example, to filter a column on the value of the variable SalesRegion set the filter to the
Variable NQ_SESSION.SalesRegion.
What are different types of variables? Explain each.
There are two classes of variables:
1. Repository variables
2. Session variables.
Repository variables.
A repository variable has a single value at any point in time. There are two types of
repository variables:
static : This value persists, and does not change until a OBIEE Server administrator
decides to change it.
dynamic:The values are refreshed by data returned from queries. When defining a
dynamic repository variable, you will create an initialization block or use a preexisting
one that contains a SQL query. You will also set up a schedule that the OBIEE Server will
follow to execute the query and periodically refresh the value of the variable.
Session Variables
Session variables are created and assigned a value when each user logs on. There are
two types of session variables:
1.system
2.nonsystem.
What are the cache management? Name all of them and their uses. For Event
polling table do u need the table in your physical layer?
Monitoring and managing the cashe is cache management.There are three ways to do
that.
Disable caching for the system.(INI NQ config file), Cashe persistence time for specified
physical tables and Setting event polling table.
Disable caching for the system.(INI NQ config file :
You can disable caching for the whole system by setting the ENABLE parameter to NO in
the NQSConfig.INI file and restarting the OBIEE Server. Disabling caching stops all new
cache entries and stops any new queries from using the existing cache. Disabling
caching allows you to enable it at a later time without losing any entries already stored
in the cache.
Cache persistence time for specified physical tables:
You can specify a cacheable attribute for each physical table; that is, if queries involving
the specified table can be added to the cache to answer future queries. To enable
caching for a particular physical table, select the table in the Physical layer of the
Administration Tool and select the option Make table cacheable in the General tab of the
Physical Table properties dialog box. You can also use the Cache Persistence Time
settings to specify how long the entries for this table should persist in the query cache.
This is useful for OLTP data sources and other data sources that are updated frequently,
potentially down to every few seconds.
Setting event polling table:
OBIEE Server event polling tables store information about updates in the underlying
databases. An application (such as an application that loads data into a data mart) could
be configured to add rows to an event polling table each time a database table is
updated. The Analytics server polls this table at set intervals and invalidates any cache
entries corresponding to the updated tables.
For event polling table, it is a standalone table and doesn’t require to be joined with
other tables in the physical layer
What is Authentication? How many types of authentication.
Authentication is the process by which a system verifies, through the use of a user ID
and password, that a user has the necessary permissions and authorizations to log in
and access data. The OBIEE Server authenticates each connection request it receives.
Operaing system autentication
External table authentication
Database authentication
LDAP authentication
What is object level security?
There are two types of object level security: Repository level and Web level
Repository level: In presentation layer we can set Repository level security by giving
permission or deny permission to users/groups to see particular table or column.
Web level: this provides security for objects stored in the OBIEE web catalog, such as
dashboards, dashboards pages, folder, and reports you can only view the objects for
which you are authorized. For example, a mid-level manager may not be granted access
to a dashboard containing summary information for an entire department.
What is data level security?
This controls the type an amount of data that you can see in a report. When multiple
users run the same report the results that are returned to each depend on their access
rights and roles in the organization. For example a sales vice president sees results for
all regions, while a sales representative for a particular region sees only data for that
region.
What is the difference between Data Level Security and Object Level Security?
Data level security controls the type and amount of data that you can see in a reports.
security provides security for objects stored in the OBIEE web catalog, like dashboards,
dashboards pages, folder, and reports.
How do you implement security using External Tables and LDAP?
Instead of storing user IDs and passwords in a OBIEE Server repository, you can
maintain lists of users and their passwords in an external database table and use this
table for authentication purposes. The external database table contains user IDs and
passwords, and could contain other information, including group membership and display
names used for OBIEE Web users. The table could also contain the names of specific
database catalogs or schemas to use for each user when querying data
Instead of storing user IDs and passwords in a OBIEE Server repository, you can have
the OBIEE Server pass the user ID and password entered by the user to an
LDAP(Lightweight Directory Access Protocol ) server for authentication. The server uses
clear text passwords in LDAP authentication. Make sure your LDAP servers are set up to
allow this.
If you have 2 fact and you want to do report on one with quarter level and the
other with month level how do you do that with just one time dimension?
Using level base metrics.
Did you work on a standalone Siebel system or was it integrated to other
platforms?
Deploying the OBIEE platform without other Siebel applications is called OBIEE Stand
-Alone .If your deployment includes other OBIEE Application it called integrated analytics
-You can say Stand-Alone OBIEE
How to sort columns in RPD and web?
Sorting on web column, sort in the RPD its sort order column
If you want to create new logical column where will you create (in repository or
dashboard) why?
I will create new logical column in repository. Because if it is in repository, you can use
for any report. If you create new logical column in dashboard then it is going to effect on
those reports, which are on that dashboard. you cannot use that new logical column for
other dashboard(or request)
What is complex join, and where it is used?
We can join dimension table and fact table in BMM layer using complex join. When there
is SCD type 2 we have to use complex join in BMM layer.
If you have dimension table like customer, item, time and fact table like sale
and if you want to find out how often a customer comes to store and buys a
particular item, what will you do?
write a query as SELECT customer_name, item_name, sale_date, sum(qty) FROM
customer_dim a, item_dim b, time_dim c, sale_fact d WHERE d.cust_key = a.cust_key
AND d.item_key = b.item_key AND d.time_key = c.time_key GROUP BY
customer_name, item_name, sale_date
You worked on standalone or integrated system?
Standalone.
If you want to limit the users by the certain region to access only certain data,
what would you do?
Using data level security.
OBIEE Administrator: go to Manage -> Security in left hand pane u will find the user,
groups, LDAP server, Hierarchy
What you can do is select the user and right click and go to properties, you will find two
tabs named as users and logon, go to user tab and click at permission button in front of
user name you have selected as soon as u click at permission you will get a new window
with user group permission having three tabs named as general ,query limits and filter
and you can specify your condition at filter tab, in which you can select presentation
table ,presentation columns ,logical table and logical columns where you can apply the
condition according to your requirement for the selected user or groups.
If there are 100 users accessing data, and you want to know the logging details
of all the users, where can you find that?
To set a user’s logging level
1. In the Administration Tool, select Manage > Security.
The Security Manager Dialog box appears.
2. Double-click the user’s user ID. The User dialog box appears.
3. Set the logging level by clicking the Up or Down arrows next to the Logging Level
field
How do implement event polling table?
OBIEE Server event polling tables store information about updates in the underlying
databases. An application (such as an application that loads data into a data mart) could
be configured to add rows to an event polling table each time a database table is
updated. The Analytics server polls this table at set intervals and invalidates any cache
entries corresponding to the updated tables.

What is Data Warehousing?


A data warehouse is the main repository of an organization's historical data, it is
corporate memory. It contains the raw material for management's decision support
system. The critical factor leading to the use of a data warehouse is that a data analyst
can perform complex queries and analysis, such as data mining, on the information
without slowing down the operational systems. Data warehousing collection of data
designed to support management decision making. Data warehouses contain a wide
variety of data that present a coherent picture of business conditions at a single point in
time. It is a repository of integrated information, available for queries and analysis.
What is Business Intelligence (BI)?
Business Intelligence (BI) refers to technologies, applications and practices for the
collection, integration, analysis, and presentation of business information and sometimes
to the information itself. The purpose of business intelligence is to support better
business decision making. Thus, BI is also described as a decision support system (DSS).
BI systems provide historical, current, and predictive views of business operations, most
often using data that has been gathered into a data warehouse or a data mart and
occasionally working from operational data.
What is Dimension table?
Dimensional table contains textual attributes of measurements stored in the facts tables.
Dimensional table is a collection of hierarchies, categories and logic which can be used
for user to traverse in hierarchy nodes.
What is Dimensional Modeling?
Dimensional data model concept involves two types of tables and it is different from the
3rd normal form. This concept uses Facts table which contains the measurements of the
business and Dimension table which contains the context (dimension of calculation) of
the measurements.
What is Fact table?
Fact table contains measurements of business process. Fact table contains the foreign
keys for the dimension tables. Example, if you are business process is "paper
production", "average production of paper by one machine" or "weekly production of
paper" will be considered as measurement of business process.
What are fundamental stages of Data Warehousing?
There are four different fundamental stages of Data Warehousing.
Offline Operational Databases:
Data warehouses in this initial stage are developed by simply copying the database of an
operational system to an off‐line server where the processing load of reporting does not
impact on the operational system's performance.
Offline Data Warehouse:
Data warehouses in this stage of evolution are updated on a regular time cycle (usually
daily, weekly or monthly) from the operational systems and the data is stored in an
integrated reporting‐oriented data structure
Real Time Data Warehouse:
Data warehouses at this stage are updated on a transaction or event basis, every time
an operational system performs a transaction (e.g. an order or a delivery or a booking
etc.)
Integrated Data Warehouse:
Data warehouses at this stage are used to generate activity or transactions that are
passed back into the operational systems for use in the daily activity of the organization.
What are the Different methods of loading Dimension tables?
There are two different ways to load data in dimension tables.
Conventional (Slow):
All the constraints and keys are validated against the data before, it is loaded, this way
data integrity is maintained.
Direct (Fast):
All the constraints and keys are disabled before the data is loaded. Once data is loaded,
it is validated against all the constraints and keys. If data is found invalid or dirty it is
not included in index and all future processes are skipped on this data.
Describes the foreign key columns in fact table and dimension table?
Foreign keys of dimension tables are primary keys of entity tables.
Foreign keys of facts tables are primary keys of Dimension tables.
What is Data Mining?
Data Mining is the process of analyzing data from different perspectives and
summarizing it into useful information.
What is the difference between view and materialized view?
A view takes the output of a query and makes it appear like a virtual table and it can be
used in place of tables.
A materialized view provides indirect access to table data by storing the results of a
query in a separate schema object.
What is OLTP?
OLTP is abbreviation of On‐Line Transaction Processing. This system is an application
that modifies data the instance it receives and has a large number of concurrent users.
What is OLAP?
OLAP is abbreviation of Online Analytical Processing. This system is an application that
collects, manages, processes and presents multidimensional data for analysis and
management purposes.
What is the difference between OLTP and OLAP?
Data Source
OLTP: Operational data is from original data source of the data
OLAP: Consolidation data is from various sources.
Process Goal
OLTP: Snapshot of business processes which does fundamental business tasks
OLAP: Multi‐dimensional views of business activities of planning and decision making
Queries and Process Scripts
OLTP: Simple quick running queries ran by users.
OLAP: Complex long running queries by system to update the aggregated data.
Database Design
OLTP: Normalized small database. Speed will be not an issue due to smaller database
and normalization will not degrade performance. This adopts entity relationship(ER)
model and an application‐oriented database design.
OLAP: De‐normalized large database. Speed is issue due to larger database and de‐
normalizing will improve performance as there will be lesser tables to scan while
performing tasks. This adopts star, snowflake or fact constellation mode of subject‐
oriented database design.
Back up and System Administration
OLTP: Regular Database backup and system administration can do the job.
OLAP: Reloading the OLTP data is good considered as good backup option.
What are normalization forms?
There are different types of normalization forms like,
1NF: Eliminate Repeating Groups
Make a separate table for each set of related attributes, and give each table a primary
key. Each field contains at most one value from its attribute domain.
2NF: Eliminate Redundant Data
If an attribute depends on only part of a multi‐valued key, remove it to a separate table.
3NF: Eliminate Columns Not Dependent On Key
If attributes do not contribute to a description of the key, remove them to a separate
table. All attributes must be directly dependent on the primary key
BCNF: Boyce‐Codd Normal Form
If there are non‐trivial dependencies between candidate key attributes, separate them
out into distinct tables.
4NF: Isolate Independent Multiple Relationships
No table may contain two or more 1:n or n:m relationships that are not directly related.
5NF: Isolate Semantically Related Multiple Relationships
There may be practical constrains on information that justify separating logically related
many‐to‐many relationships.
ONF: Optimal Normal Form
A model limited to only simple (elemental) facts, as expressed in Object Role Model
notation.
DKNF: Domain‐Key Normal Form A model free from all modification anomalies.
Remember, these normalization guidelines are cumulative. For a database to be in
3NF, it must first fulfill all the criteria of a 2NF and 1NF database.
What is ODS?
ODS is abbreviation of Operational Data Store. A database structure that is a repository
for near real‐time operational data rather than long term trend data. The
ODS may further become the enterprise shared operational database, allowing
operational systems that are being re‐engineered to use the ODS as there operation
databases.
What is ER Diagram?
Entity Relationship Diagrams are a major data modeling tool and will help organize
the data in your project into entities and define the relationships between the
entities. This process has proved to enable the analyst to produce a good database
structure so that the data can be stored and retrieved in a most efficient manner.
An entity‐relationship (ER) diagram is a specialized graphic that illustrates the
interrelationships between entities in a database. A type of diagram used in data
modeling for relational data bases. These diagrams show the structure of each table
and the links between tables.
What is ETL?
ETL is abbreviation of extract, transform, and load. ETL is software that enables
businesses to consolidate their disparate data while moving it from place to place,
and it doesn't really matter that that data is in different forms or formats. The data
can come from any source.ETL is powerful enough to handle such data disparities.
First, the extract function reads data from a specified source database and extracts a
desired subset of data. Next, the transform function works with the acquired data using
rules or lookup tables, or creating combinations with other data ‐ to convert it to the
desired state. Finally, the load function is used to write the resulting data to a target
database.
What is VLDB?
VLDB is abbreviation of Very Large Database. A one terabyte database would
normally be considered to be a VLDB. Typically, these are decision support systems
or transaction processing applications serving large numbers of users.
Is OLTP database is design optimal for Data Warehouse?
No. OLTP database tables are normalized and it will add additional time to queries to
return results. Additionally OLTP database is smaller and it does not contain longerperiod
(many years) data, which needs to be analyzed. A OLTP system is basically ER model
and not Dimensional Model. If a complex query is executed on a OLTP system, it may
cause a heavy overhead on the OLTP server that will affect the normal business
processes.
If de‐normalized is improves data warehouse processes, why fact table is in
normal form?
Foreign keys of facts tables are primary keys of Dimension tables. It is clear that fact
table contains columns which are primary key to other table that itself make normal
form table.
What are lookup tables?
A lookup table is the table placed on the target table based upon the primary key of
the target, it just updates the table by allowing only modified (new or updated)
records based on the lookup condition.
What are Aggregate tables?
Aggregate table contains the summary of existing warehouse data which is grouped
to certain levels of dimensions. It is always easy to retrieve data from aggregated
tables than visiting original table which has million records. Aggregate tables reduce the
load in the database server and increase the performance of the query and can retrieve
the result quickly.
What is real time data‐warehousing?
Data warehousing captures business activity data. Real‐time data warehousing
captures business activity data as it occurs. As soon as the business activity is
complete and there is data about it, the completed activity data flows into the data
warehouse and becomes available instantly.
What are conformed dimensions?
Conformed dimensions mean the exact same thing with every possible fact table to
which they are joined. They are common to the cubes.
What is conformed fact?
Conformed dimensions are the dimensions which can be used across multiple Data
Marts in combination with multiple facts tables accordingly.
How do you load the time dimension?
Time dimensions are usually loaded by a program that loops through all possible
dates that may appear in the data. 100 years may be represented in a time
dimension, with one row per day.
What is a level of Granularity of a fact table?
Level of granularity means level of detail that you put into the fact table in a data
warehouse. Level of granularity would mean what detail are you willing to put for
each transactional fact.
What are non‐additive facts?
Non‐additive facts are facts that cannot be summed up for any of the dimensions
present in the fact table. However they are not considered as useless. If there are
changes in dimensions the same facts can be useful.
What is factless facts table?
A fact table which does not contain numeric fact columns it is called factless facts
table.
What are slowly changing dimensions (SCD)?
SCD is abbreviation of slowly changing dimensions. SCD applies to cases where the
attribute for a record varies over time. There are three different types of SCD.
1) SCD1: The new record replaces the original record. Only one record exist in
database ‐ current data.
2) SCD2: A new record is added into the customer dimension table. Two records
exist in database ‐ current data and previous history data.
3) SCD3: The original data is modified to include new data. One record exist in
database ‐ new information are attached with old information in same row.
What is hybrid slowly changing dimension?
Hybrid SCDs are combination of both SCD 1 and SCD 2. It may happen that in a table,
some columns are important and we need to track changes for them i.e. capture the
historical data for them whereas in some columns even if the data changes, we don't
care.
What is BUS Schema?
BUS Schema is composed of a master suite of confirmed dimension and standardized
definition if facts.
What is a Star Schema?
Star schema is a type of organizing the tables such that we can retrieve the result from
the database quickly in the warehouse environment.
What Snow Flake Schema?
Snowflake Schema, each dimension has a primary dimension table, to which one or
more additional dimensions can join. The primary dimension table is the only table that
can join to the fact table.
Differences between star and snowflake schema?
Star schema: A single fact table with N number of Dimension, all dimensions will be
linked directly with a fact table. This schema is denormalized and results in simple join
and less complex query as well as faster results.
Snow schema: Any dimensions with extended dimensions are known as Snowflake
schema, dimensions maybe interlinked or may have one to many relationship with other
tables. This schema is normalized and results in complex join and very complex query as
well as slower results.
What is Difference between ER Modeling and Dimensional Modeling?
ER modeling is used for normalizing the OLTP database design. Dimensional
modeling is used for de‐normalizing the ROLAP/MOLAP design.
What is degenerate dimension table?
If a table contains the values, which is neither dimension nor measures is called
degenerate dimensions.
Why is Data Modeling Important?
Data modeling is probably the most labor intensive and time consuming part of the
development process. The goal of the data model is to make sure that the all data
objects required by the database are completely and accurately represented.
Because the data model uses easily understood notations and natural language, it
can be reviewed and verified as correct by the end‐users.
In computer science, data modeling is the process of creating a data model by
applying a data model theory to create a data model instance. A data model theory
is a formal data model description. When data modeling, we are structuring and
organizing data. These data structures are then typically implemented in a database
management system. In addition to defining and organizing the data, data modelling will
impose (implicitly or explicitly) constraints or limitations on the data placed within the
structure.
Managing large quantities of structured and unstructured data is a primary function
of information systems. Data models describe structured data for storage in data
management systems such as relational databases. They typically do not describe
unstructured data, such as word processing documents, email messages, pictures,
digital audio, and video. (Reference : Wikipedia)
What is surrogate key?
Surrogate key is a substitution for the natural primary key. It is just a unique
identifier or number for each row that can be used for the primary key to the table.
The only requirement for a surrogate primary key is that it is unique for each row in
the table. It is useful because the natural primary key can change and this makes
updates more difficult. Surrogated keys are always integer or numeric.
What is junk dimension?
A number of very small dimensions might be lumped together to form a single
dimension, a junk dimension ‐ the attributes are not closely related. Grouping of
Random flags and text attributes in a dimension and moving them to a separate sub
dimension is known as junk dimension.
What is Data Mart?
A data mart (DM) is a specialized version of a data warehouse (DW). Like data
warehouses, data marts contain a snapshot of operational data that helps business
people to strategize based on analyses of past trends and experiences. The key
difference is that the creation of a data mart is predicated on a specific, predefined
need for a certain grouping and configuration of select data. A data mart
configuration emphasizes easy access to relevant information (Reference : Wiki).
Data Marts are designed to help manager make strategic decisions about their
business.
What is the difference between OLAP and data warehouse?
Datawarehouse is the place where the data is stored for analyzing where as OLAP is
the process of analyzing the data, managing aggregations, partitioning information
into cubes for in depth visualization.
What is a Cube and Linked Cube with reference to data warehouse?
Cubes are logical representation of multidimensional data. The edge of the cube
contains dimension members and the body of the cube contains data values. The
linking in cube ensures that the data in the cubes remain consistent.
What is snapshot with reference to data warehouse?
You can disconnect the report from the catalog to which it is attached by saving the
report with a snapshot of the data.
What is active data warehousing?
An active data warehouse provides information that enables decision‐makers within
an organization to manage customer relationships nimbly, efficiently and
proactively.
What is the difference between data warehousing and business intelligence?
Data warehousing deals with all aspects of managing the development,
implementation and operation of a data warehouse or data mart including meta
data management, data acquisition, data cleansing, data transformation, storage
management, data distribution, data archiving, operational reporting, analytical
reporting, security management, backup/recovery planning, etc. Business
intelligence, on the other hand, is a set of software tools that enable an organization to
analyze measurable aspects of their business such as sales performance, profitability,
operational efficiency, effectiveness of marketing campaigns, market penetration among
certain customer groups, cost trends, anomalies and exceptions, etc. Typically, the term
“business intelligence” is used to encompass OLAP, data visualization, data mining and
query/reporting tools. (Reference: Les Barbusinski)

Explain paradigm of Bill Inmon and Ralph Kimball.


Bill Inmon's paradigm: Data warehouse is one part of the overall business
intelligence system. An enterprise has one data warehouse, and data marts source
their information from the data warehouse. In the data warehouse, information is
stored in 3rd normal form.
Ralph Kimball's paradigm: Data warehouse is the conglomerate of all data marts
within the enterprise. Information is always stored in the dimensional model.

You might also like