Professional Documents
Culture Documents
A data mart is a simple form of a data warehouse that is focused on a single subject (or functional
area), such as Sales or Finance or Marketing
A datawarehouse is a collection of multiple subject areas. It is central unit which is made by
combining all the data marts
ETL Plan
What is ETL Plan?
ETL stands for Extract, Transform and Load. ETL Plan is to design the flow of the metadata
Extract ----------------------> Transform ----------------------> Load
Source Transformation Rule Target
Source Definition: It is the structure of the source table from which the data is extracted
Target Definition: It is the structure of the target table to which the data is loaded
Transformation Rule: It is the business logic used for transforming the data
SCD type3
Slowly Changing Dimension type 3
Slowly Changing Dimension type 3
In SCD type 3, a new column is added to the orginal data, which displays the partial historical data
Let us consider the same example that we used in SCD type 1 and SCD type 2
EmpNo Name Location
1001 Mark London
Consider Mark moves from London to Manchester, then a new column is added to the previous data as
shown below
EmpNo Name CurrentLocation PreviousLocation
1001 Mark Manchester London
Consider Mark moves again from Manchester to Dublin then you have
EmpNo Name CurrentLocation PreviousLocation
1001 Mark Dublin Manchester
So, SCD type 3 maintains partial history
Advantages:
It maintains partial history and with this size of the table doesn't increase as much as it does in SCD type
2
Disadvantages:
The organisation doesn't have complete information the employee as it cannot track the complete history
of the employee i.e., from the above example when Mark moves to Dublin the organisation doesn't have
any trace of his working in London
Note: SCD type 3 maintains Current data + partial history
Click on Add
Select the Excel driver from the given list
Click on OK
A new window opens
Enter the data source name
Select the excel work from which you want to import metadata
Now open BI Administration tool
Go to File > Import Metadata
Select the Data Source that you have just created
Now you can import the required data from your Excel Worksheet
Confirmed Dimension
What is a CONFIRMED DIMENSION?
A Dimension which exists in more than one fact table is known as a Confirmed Dimension
Degenerate Dimension
What is a Degenerate Dimension ?
A degenerate dimension is a dimension which is stored in a fact table.
Ex:
Consider SH schema and a new dimension Sale_id in the Sales Fact table is inserted then Sale_id is
known as Degenerate Dimension
Alias Table
What is an Alias table and why is it used?
An alias table (Alias) is a physical table which references a different physical table as its source
Advantages of using alias table:
It allows you to reuse any existing table more than once, without having to import it
several times
It can be used to avoid circular joins by setting multiple tables each with different keys,
names or joins For example: Order date and Shipping date may reference to same
column in the time dimension table. By using alias you can create two different
tables OrderDate and ShippingDate
It can be used for best practice naming conventions as you can rename the table and
leaving the original physical table as it.
Connection Pool
What is a connection pool in OBIEE?
Connection pool contains the information about the connection between the data source and Oracle
BI server. It is used for importing the metadata and for queries initiated by the initialization blocks.
In general we have separate connection pool's from importing the data and for the initialization
blocks.
Note: In OBIEE we never import data we just import metadata
Connection pool properties
Connection pool Properties:
A connection pool has 3 tabs
1 General
2 XML
3 Writeback
1 General
Name: This is to give a name for the connection pool
Call Interface: This specifies that the analytics will use this driver to connect to the data source. In
this we have a list of options available such as ODBC, OCI, etc. ODBC can be used for any kind of
data source whereas OCI is used only with Oracle data source.
Maximum Connections: This is used to define the number of concurrent users in the
organisation. This is generally specified by the DBA. The default value is 10. Once the limit is
reached BI server checks for the other available connection pools, if none of them exists it waits until
the connection is available
Required fully qualified table names: When this option is selected, all the requests sent from
this connection pool use fully qualified table names i.e., DB.schema.tablename
Data Source Name: As the name suggests Data source name to which the queries will be routed.
Shared logon: If this option is checked all the requests through this connection pool use the
username and password specified in the connection pool. If this option is unchecked all the
connections through this connection pool use the database user ID and password specified in the
DSN
Enable Connection Pooling: It allows multiple concurrent query requests to share a single
database connection. This reduces the overhead of connecting to a database because it doesn't open
and close a new connection for every query. If this option is unchecked each query sent to the
database opens a new connection
Timeout: It is the idle time (after the request completes) for the connection to be closed. During
the idle time new requests use this connection instead of opening a new connection. If this is set to
0(zero) then it means that the connection pooling is disabled.
Use multithreaded connections: If this option is checked Oracle BI terminates idle physical
threads or queries else the one thread is tied to one database and these idle threads consume
memory
Execute queries asynchronously: As the name suggests if this option is checked then the
queries run asynchronously else they run synchronously. By default this option is unchecked
Execute on Connect: This is used for the server to specify a command each time the connection is
established with the database. This can be any database accepted command.
Parameters supported: If this option is checked, that means all the database parameters
mentioned in the database features are supported by the server. This option is checked by default
Isolation level: This option controls the transaction locking for all the requests issued by this
connection. These are of 4 types
a. Dirty Read: This is known as 0(zero) locking. It can read uncommitted or dirty data, change
values in data during read process in a transaction. Lease restrictive of all types
b. Committed Read: Locks are held while the data is read to avoid dirty reads. Data can be
changed before the transaction ends with that connection
c. Repeatable Read: This places locks on all data used in a query so that nobody can update the
data. However new rows can be inserted by other users but will be available in later reads in the
current transactions.
d. Serialization: This places a range lock on data set preventing other users to insert or update the
rows in data set until the transaction is complete. It is the most restrictive of all types
NQSConfig.ini
What is NQSConfig.ini? Where is it located?
NQSConfig.ini is the initialization file used by Oracle BI server to set parameters on start up. Each
instance of Oracle BI Server has ots own NQSConfig.ini file.
The Oracle BI Server reads the NQSConfig.INI file each time it is started.
The path for NQSConfig.ini is
In OBIEE 10g:
Drive:/OracleBI/Server/Config/
In OBIEE 11g:
Drive:\OBIEE11G\instances\instance1\config\OracleBIServerComponent\coreapplication_obis1/
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?
In OBIEE 10g you need to specify it in the NQSConfig.ini
In OBIEE 11g repository is managed using EM (Enterprise Manager). We can directly specify the
path to load the rpd
If you have more than 3 repository files mentioned in you NQSConfig.ini file as default,
which one gets loaded into the memory when BI server is started and Why?
Ex:
Star = SamplerRepository1.rpd, DEFAULT;
Star = SamplerRepository2.rpd, DEFAULT;
Star = SamplerRepository3.rpd, DEFAULT;
SamplerRepository3.rpd will be loaded into the memory because as the server starts reading from the
top each time it loads the next repository. So finally the last rpd will be loaded into the server
memory
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?
OC4J(10g) or Weblogic(11g), BI server, Presentation Server, Scheduler server
What are the different places (files) to view the physical sql generated by an Answers
report?
NQQuerylog
Administration > Manage Sessions > View Log
Where does the BI Server logs its start, stop and restart times in the file system?
NQServer.log
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?
Yes
Same as the above question but what happens if you import each table separately?
Keys will be affected but not the joins
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?
Table with primary becomes the dimension table and table with foreign key becomes Fact table
What if the tables (Table 1 and Table 2) are not joined, then what happens in BMM
layer?
Both tables act as Fact table
Does OBIEE store physical sql ? How is physical sql generated in OBIEE
environments?
Yes, physical SQL is generated by the query compiler during the query processign of the logical sql
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?
When the logging level is 0(zero) or when the query log file reaches maximum limit
Complex join
What is a Complex join?
A Complex Join in used in the Business Model & Mapping Layer (BMM layer) in the repository.
Logical tables in a BMM layer can have multiple logical tables sources (LTS). Complex join actually is
an intelligent join between LTSs of two logical tables in BMM Layer. When two columns are selected
for a query in Answers/Dashboard, BI Server reads the complex join between two logical tables and
then intelligently & dynamically selects the LTSs to join. This means that the BI server is able to
select the most efficient join in the physical layer and translate query into a physical SQL.
What does Consistency Checking perform; What are the minimum criteria to pass
consistency checking for a given repository?
One Dimension table and One Fact table
Chronological Key
What is a Chronological key?
Chronological Key is the key which uniquely identifies the data at particular level. Chronological key
is mostly used in time dimensions where time series functions are used
How can I export all the available tables into an excel sheet?
Using the Repository Documentation Utility
How to model a presentation layer so that all the dimension tables under a Dimension
folder and fact tables come under a Fact folder?
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
If I change a column name in the presentation layer from 'A' to 'A1'. Does the query
Cache Management
Cache Management in OBIEE
1. Admin tool Manage > Cache > Purge
You can purge all the cache or cache by Subject Area or Cache by query
2. Physical Layer
Physical Table Properties > Cacheable, Cache persistence time
3 Event Pooling Table
4. EM(Enterprise Manager) > Capacity Management >Performance > Cache Enabled
5. Analysis > Advanced tab > Bypass presentation cache
6. Analysis > Advanced tab >
Prefix set variable DISABLE_CACHE_HIT=1;
7. When dynamic variable value changes the cache associated with that subject area purges
8.. Creating a batch file and scheduling it