You are on page 1of 46

16. What is Granularity?

Granularity exhibits the detail level of records available in the OLAP database. The more
detail records are available the higher the Granularity level.

. Can there be multiple physical data source?

Yes. There can be more than one (even different type of DBs) physical data source.

23. Can a business model have logical table source from different physical data sources?

Yes. If different types of physical database sources are used then the SAS has to perform

merge functionality using the data sets retrieved from disparate DBs.
24. Can a Presentation Catalog have tables from different Business Model?
No. It is not possible.
25. List few reasons to have Presentation Layer?
Enables to group the dimensions and facts based on the organizational requirement.
Example: Departmental/Cross Departmental Subject Areas.
To implement Object Level Security.
To remove columns that serves the ONLY purpose of key in the Logical Model.
Siebel Analytics ODBC Client
This tool facilitates to test the business model by executing logical query against a repository.
This tool also allows connecting to physical database thru ODBC and executes SQL queries.
29. Describe the complete process when a Siebel Answers Request is executed.
When a Client application executes a Siebel Answers Request the respective SAW
communicates with the designated SAS. Using the Metadata in the repository the SAS derives
the dynamic SQL and forwards the same to Physical database server. When the database

server returns the result set to SAS, the same is send back to SAW that eventually presents
it to the Web client.

NQSConfig.INI
This is the configuration file that contains startup parameters required to start the SAS.
Modification of this file requires SAS re-start.
DBFeatures.INI
This file allows to disable/enable the database specific features.
Modification of this file requires SAS re-start.
NQServer.Log
This is the log file generated by the SAS upon start up and thereafter.
NQQuery.log This is the log file generated by SAS upon Siebel requests executed by users that
have Logging Level greater than 0.
.RPD files

Repository files that are created using Siebel Analytical Administration Tool.

Cache When caching is enabled in the NQSConfig.ini, the SAS caches the SQL Query results in
the folder specified in the NQSConfig.INI file.
What is Caching? List the merits of Caching.
Caching is a SAS feature that enables to cache the query results against the UserId for a
business model. This feature is used to improve
performance by caching query results of requests that are used repeatedly. Reduces
workload on database. Reduces network traffic.

42. How to enable the cache feature in SAS?


The value of Enable key under the Cache section of NQSConfig.INI file should be set to
Yes. Also the Make table cacheable check box of
physical table should be checked.

43. Name the parameters and its significance that affects Caching feature?
Parameter

Description

DATA_STORAGE_PATHS

Indicates the name of the folder where the Query results should

be cached in files and the maximum size of the cache. Usually created in faster hard-drive to
reduce response time.
METADATA_FILE

Specifies the File Name with location that is used to store (business)

details of queries that are cached.


REPLACE_ALGORITHM

Indicates the algorithm that is used to replace existing entries

when the maximum cache size is reached. Only algorithm currently supported is LRU.
BUFFER_POOL_SIZE Size of memory that is used to store the caching entries in the memory to
improve cache response time.
MAX_ROWS_PER_CACHE_ENTRY Indicates the maximum rows that will be cached against a
user/BMM/query.
MAX_CACHE_ENTRY_SIZE Signifies the maximum allowable size for a cache entry.
MAX_CACHE_ENTRIES

Specifies maximum allowable cache entries.

44. When there are four tables involved in a query but one of the table did not have Make
table cacheable enabled. Will SAS cache the result
of this query?:
No.

45. What is cache hit?


When a user executes a request and BMM Query matches with the query in the cache
then the results are retrieved from the cache
instead of database. This is called cache hit.

46. What are the criteria to meet cache hit?


1. Where clause of the Query is semantically same or logical subset
2. Same columns or sub set of columns in the select list
3. Expressions in the select list that uses the columns that are already cached.
4. Equivalent Join condition
5. If Distinct is used, then it should match with query that is cached.
6. Compatible Aggregation Levels
7. Order By Clause should match the columns in the select list.

47. What is stale caching?


Even after the data change occurred in the database server, but the SAS use the data from
the cache to satisfy the request, this is called

stale (out-dated) cache.

48. What are the methods to purge the cache entries?


Method

Significance

Manual

Using the Siebel Analytics Server Administration tool (Manage->Cache) cache

entries can be purged.


Automatic

Using the Event Polling Table/Cache Persistence time.

Programmatically

Using ODBC Extension functionality.

49. What is cache seeding?


Results of requests can be created (seeded) in the cache periodically using the Siebel
Delivers iBot feature. This way user will have access
to current data even though data is retrieved from the cache.

50. Explain step-by-step procedure involved in configuring Event Polling Table?


1. Create the event-polling table in the physical database by using the SAEPT.<DB>.SQL
file available in the Schema folder of SAS
installation path.
2. Import the Event polling table into the Physical Layer.
3. Run the Siebel Analytics Event Tables utility from SAAdminTool and select the table
and set the polling frequency.

4. Ensure that the ETL process makes appropriate entries in the Event polling table upon
successful load.

51. What are the important columns of EPT used by SAS?


Update_Type -> Should have value 1.
Table_Name-> Name of the Physical Table that has been changed.
Update_TS-> Timestamp stores when the change occurred.

52. Explain the use of Merge functionality.


Enables to merge the changes between original (before modification) and modified
repository into the master repository that is currently loaded.

53. Explain the Multi-user Checkout process.


1. The master repository should be made available in the shared or network folder.
2. Then the shared or network folder where the master repository is available should be
specified in the Multi user development
directory (AdminTool->Tools->Options->More tab).
3. Whenever changes needs to be made, activate use File->Multi user->Checkout menu.
It lists the projects available in the master
repository. Select desired Project. Then save the repository with unique name. It
automatically makes another repository with
original.rpd, as suffix and this repository will be used at the time of merge.

4. After making changes in the repository, activate File->Multi User Checkout -> Merge
Local Changes menu. This makes a lock on the
master repository in the shared folder, a log entry is created and the master repository
is copied into the local systems Repository
folder.
5. After the merge is completed, then invoke File-> Multi User Checkout -> Publish to
Network menu. This copies back the master
repository into shared folder, releases the lock on it and makes an entry in the log
marking the completion of changes.

54. Explain the Usage of Project.


Project allows to group discretely defined subset of metadata. Associating respective
Presentation catalogs and its business model objects,
Users, Groups, Variables, Initialization block, creates project. The purpose of the project is
to handle multi user repository development
efficiently.
56.

What is the significance of multiple logical source in the logical model.

Enables the SAS to combine data from different physical data sources (tables) into single

logical source and select the best physical


source to satisfy the query.

Example: Converting Snowflake Schema to StarSchema.


1. Year-> Quarter-> Months-> Week -> Day table joined as OpenDate Table.
2. Product->Product Classification (Internet Security, Anti Virus,

Communication, Desktop etc.)

3. Order Header and Detail Tables.


4. Fact and Aggregate Fact table.

57.

What is calculated measures?

Calculated measure is a measure that is derived from another logical or physical

measure. Calculated measure can be created:


a. Using Physical Columns, This avoids subquery.
b. Using Logical Columns. This requires subquery. But the usage is inevitable when the
calculated measure has to be created from an
aggregated measure.
Example: Cuts => (Units Ordered Units Shipped).

59. What is the maximum level of hierarchy supported by Siebel Analytics?


10. If repository is created with more than 10 levels of hierarchy SA raises exception.
60. What is RAGGED hierarchy?
A hierarchy in which each level have a consistent meaning, but the branches have
inconsistent depths because at least one member
attribute in a branch level is unpopulated. SA does not support this type of hierarchy
directly. But can be achieved thru ETL process by
having Not Applicable as value for respective level (in the below example <Not
Available> as value for State for Greece).
Example: Continent->Country->State->City

North America->USA->CA->San Francisco


Europe->Greece->->Athens

61. What is the significance of Number of elements at this level in the Logical Level dialog
box?
It signifies how many rows exist for the respective dimensional attribute in the database.
This is an approximate value, but helps the SAS
to determine the best execution method. This is a noticeable performance factor.

62. What is aggregate navigation?


Aggregate navigation is a technique used by SAS to speed up requests by using the

aggregate fact table instead of fact table based on

the dimensional level attribute used in the request. Creating logical fact table that contains

both the fact and aggregated fact table as

logical table source and assigning aggregate level for each LTS based on a dimensional
hierarchy implements aggregate navigation.
Examples: W_Sales_Revenue_Fact

W_Sales_Revnue_MPP_AGT (Aggregated by Market Key, Period Key and


Product Key)

For Yearly/Quarterly/Monthly/Weekly measures it uses aggregate fact table and

only for detail level uses the fact table


63. What is level based measures?
A level based measure is a column whose values are always calculated against specific

level of aggregation.

Examples: Revenue By Region. Assigned to Region Level of Market dimension.


dimension.

Revenue By Product Type. Assigned to Product Type Level of Product

64. When do you use fragmentation content?

Is a way to model multiple sources of data that specifies what data is located where, so the

SAS will automatically use the best source to


satisfy the query.
Example: Customer Table that is partitioned in the database level by the first alphabet of

LastName.

65. What is Slowly Changing Dimension?

Allows you to account for data changes occurs over a period in a dimensional table.
Example: Country Manager Effective Period

66. What are the types of Slowly Changing Dimension?

Type1 - No History is maintained.


Type2 - Every version of history is maintained (Effective Start/EndDate).

Type3 - One version of History is maintained. (CURRENT and PREVIOUS value columns)
67. What is Extension table?

Extension table is used to implement physical schema changes made in the OLTP system

without modifying the vanilla Dimension and fact


table. Extension table is implemented as Snow Flake Schema in the physical level (0,1 to
Many) and using multiple logical table sources in
the logical model.

Example: W_SALES_FACT_X contains credits provided to educational institutions when


the product is licensed.
68. What is the usage of Time Series wizard?
It creates measures that are used in historical period comparison analysis reports.
Examples: Year Ago Revenue

Change Year Ago Revenue


Percentage Change YearAgo Revenue

(Adds Alias for respective Fact and Aggregation Tables).


69. Explain Time Series Wizards functionality Step by Step?

1. Invoke the time series wizard by right clicking over the BMM.
2. All physical dimension tables are listed.
3. Select required period table

4. Select the period key that will be used for comparison (YearAgo or Quarter ago or
Month ago or Week Ago)

5. Then sales measures and calculations are listed. Choose desired measures and type of

calculation to be performed on the selected


measures.

6. Complete the wizard.


7. Time comparison measures will be added into respective fact/aggregate table and alias

of the respective fact/aggregate fact table(s)

will be added into the physical layer and included as logical table source of the
original fact table.
70. What are the Time Series Calculations available?
Change.

Percent Change
Index

Percent
71. How do you override lexical sorting of a column? Example: Month Name sorted not by
alphabetically but order of month.

By assigning another column in the Sort Order Column field of a logical column. When
this column used in a Siebel Answers Request,
sort will be performed based on the column specified in the Sort Order Column field.
72. What is authentication?
Authentication is the process that validates the credentials of the user who logs into the
Siebel Analytics.
73. What are the types of Authentication supported by SAS?
LDAP (Lightweight Directory Access Protocol).
Database Authentication.

External Table Authentication.


OS Authentication.
74. How does the LDAP server works?

Never got a chance to work using this type of authentication!

75. How does the Database Authentication works?

1. Modify the AUTHENTICATION_TYPE key of SECURITY section of NQSConfig.INI to

DATABASE. Assign the database in the physical


layer DATABASE key.

2. Create Users that matches the login id in the database. No need to maintain password

in the repository. Even if it is maintained it is


ignored.

3. Create Groups and assign to the users created.


4. Ensure that in the connection pool the shared log on option is unchecked.
5. Assign connection pool to the user or group.

6. When the users logs in thru Siebel Analytics, the SAS attempts to login to the database
server. If the login succeeds, then the user is
connected with Siebel Analytics or else they are not.
76. How does the External Table Authentication works?

1. Modify the AUTHENTICATION_TYPE key of SECURITY section of NQSConfig.INI to

NQS.

2. Do not need to maintain users or groups in the Siebel Analytics Repository.


3. Design table(s) to hold User authentication details (such as Login-Id, Password,

DisplayName, UserGroup, Web Groups etc.)

4. Create System Session variables for USER, DISPLAYNAME, GROUP, WEBGROUPS,

LOGLEVEL etc.
5. Create an initialization block that selects values from the respective database table(s)

that maintains authentication details. Assign

this Initialization Block to the respective system session variables.


77. Describe OS Authentication.
Modify the AUTHENTICATION_TYPE key of SECURITY section of NQSConfig.INI to

BYPASS_NQS.

OS Authentication enables the SAS to use trusted connection feature of the OS. This
authentication is not supported when the user
Logs-in using Siebel Analytics Web client. Only applicable for applications that connect to
SAS thru ODBC.
80. What Types of Repository Variables are available?
Type

Details

Static

As the name itself implies that value

Example:

remain unchanged unless SAS is restarted

assigned to the static repository variables


or changed by the user using SAAT

RSV_DW_DSN

ONLINE mode. This is equivalent to


constants in the programming languages.

RSV_DW_USER

Initialization block cannot be used to


assign value to the static repository
variable.

Dynamic

Dynamic repository variables are similar

Example:

language. Values of Dynamic variables

to

RDV_CURRENT_YEAR
RDV_CURRENT_QTR

variables

in

any

programming

can be changed at any point of time.

Initialization Block must be assigned to the


dynamic variables to initialize/refresh.

RDV_CURRENT_MONTH
RDV_CURRENT_WEEK

81. What Types of Session Variables are available?


Type
System
Example:
USER

Details
System session variables are pre-declared
one. SAS does NOT allow to create a new
system session variable. Only pre-declared
session variables can be used. Initialization
Block must be assigned to the system

GROUP

session variables. Value of the system

WEBGROUPS

user session.

session variables is not changed during a

LOGLEVEL
Non-System

Non-system session variables are created

Example:

an Initialization Block. Value of Non

based on the need. It must be assigned to

SV_POSITION_ID

System session variable remains same


during a user session.

SV_ORG_ID

82. What is Initialization Block?


Initialization Block is a routine pre-defined in the SAS repository to initialize/refresh
dynamic repository variable and session variables.
Examples: IB_SET_CURRENT_PERIOD (Refreshed for once a day)
IB_GET_USER_ORG_DETAILS
IB_GET_USER_DETAILS

Initialization block can be scheduled to refresh dynamic repository variables.


83. How to create Initialization Block?
1. Go to SAS and activate Project->Variables menu. Click over the Initialization Blocks
tree-view item and right click over the pane on
the right hand side. Activate New Initialization Block pop-up menu.
2. Type a name of the IB.
3. Assign the connection pool that should be used to execute the SQL.
4. Enter relevant SQL in the Initialization String field.

5. Set Refresh time to schedule the refresh values dynamically. Only applicable for
Dynamic Repository variable.
84. What is the significance of Row-wise Initialization?

This feature enables to initialize system session values from the database table (i.e both
Variable name and its values are retrieved from
database).
Also this feature can be used to initialize a variable with list of values (i.e more than 1
value). These variables can be used in the set
operation of SQL. (Used in conjunction with IN clause of SQL).
This feature is available only for session variable.
85. What is the difference between SQL used in the Initialization Block and rest of SAS?
The SQL used in the IB refers direct physical database objects. SQL Objects referred in the

query does not have to exist in the physical

layer. SQL defined in the IB is executed automatically on re-start of SAS if it is assigned to


repository variable otherwise it is executed for
every user session.
86. What is the syntax to use variables in the expressions?
VALUEOF(<RepositoryVariable>).
VALUEOF(NQ_SESSION.<SessionVariable>)
87. What is the impact when a dynamic repository variable is refreshed automatically?
All Cache entries associated with that variable in a business model will be purged

automatically.

88. What level of Security methods supported by SAS?


Data Level security that is called permissions.
Object Level security that is called privileges.
89. What is data level security?
Data Level security is restricting data being retrieved by or listed to the user. This is

implemented using an expression defined in the


Filter tab of User/Groups permission dialog or in the Where condition in the content tab.
Example: Sales Rep can see only what he/she sold.

Sales Regional Mgr can see only see sales made by reps reported to him/her
Country Mgr can see all the sales made by people reporting to him/her.
90. What is object level security?

Object level security is granting or restricting access to a repository objects, Web Objects

(Presentation Catalog/Tables, Connection Pools


Shared Folder, Shared Dashboards, etc.) to the user/groups.
91. What is Usage Tracking?

Usage tracking is feature in Siebel Analytics to capture the statistics over the usage of

Siebel analytics Reports/Dashboards etc. These


statistics can be used to analyze database optimization, aggregation strategies, etc.
92. How can the Usage Tracking feature be enabled?
The Enable key value of Usage Tracking section in the NQSConfig.INI file should be set to

Yes. The usage tracking data can be capture in


flat file or in database.

93. What are the table types that come with Siebel Relationship Management Warehouse?
Internal

Staging

Dimension
Fact

Subset Dimension
Mini Dimension

Slowly Changing Dimension (SCD)


Helper
Hierarchy

Aggregate
Extension
94. What is Image Table? How many image tables are used in SRMW?
Image table captures the data changes occurred after last ETL load. The following are the

image tables used by SRMW:


S_ETL_R_IMG (1 to 83)
S_ETL_I_IMG (1 to 83)

S_ETL_D_IMG (1 to 83)
95. What is Staging Tables?
Staging tables are the tables that store the incremental data extracted from OLTP
transactions. Before each ETL process these staging
tables are truncated prior to loading. Data in the staging tables are then transformed and
loaded into appropriate target tables by ETL
process.
96. What is Aggregate Table?

Aggregate table contains the summation of facts by a given dimension or set of

dimensions. Purpose of aggregate table is to avoid


resource intensive on the fly calculations and improve query response time.
97. What is Subset Dimension Table?
In the SRMW the subset dimension tables are created by filtering the main dimension
table. The main purpose of the dimension to use in
conjunction with aggregated tables.
98. What is Mini Dimension Table?

In the SRMW the Mini Dimension tables are created using the combination of most

frequently used attributes of their parent dimension. The purpose of Mini Dimension Table is

to improve query response time.


99. What is Helper Tables?
Normally the relationship between Dimension and Fact table is 1:N, but there are
circumstances that will have many-to-many relationship.
To overcome this issue helper tables are created.
100. What are the SRMW System Fields?
ROW_WID
DATASOURCE_NUM_ID
INTEGRATION_ID
ETL_PROC_WID.
101. How many ODBC data source should be created in the SAS/SAW setup?
Minimum of 2 data sources required to be created however actual number of data source

will be created based on the implementation


strategy.

One ODBC data source for database connectivity. The connection pool in the physical
layer will use this data source to establish
connection between SAS and database server.
One ODBC data source of Siebel Analytics Server type. The SAW will use this data source

to establish connection to SAS.

102. What is the default port no used in the ODBC data source used by SAW?

9703. This should match with RPC_SERVICE_OR_PORT entry in the SERVER section of

NQSConfig.INI file. If this port is consumed by some


other TCP/IP services, the next available port can be used.
103. What is the configuration file used by the SAW and where does it exists?

Instanceconfig.xml and it exists in the SiebelAnalyticsData\Web\Config folder.

104. What is the web catalog file?


Web catalog file contains all objects (such as dashboards, requests, filters, prompts, web
groups etc) developed using the
Siebel Analytics web client application.
105. Where do you specify what catalog file should be used by SAW?
In the CatalogPath element of the instanceconfig.xml file.

106. How the SAW determines that which SAS server it should communicate?

In the DSN element of the instanceconfig.xml file holds the value of ODBC data source

that indicates which SAS should be


communicated.
110. What is Shared Filter?
Filter created to restrict rows based on requirements using columns of a subject area. If

the filter is saved in the shared folder then it can


be associated with many requests.
111. What is Global Filter?

Global filter is used in the Dashboard to prompt the user to select report criteria on the

fly. It affects all the requests in the dashboard

that are having same column or set of columns with Is Prompted assigned as filter.
112. What are the Prompts available?
Dashboard Prompt (Global Filter), Page Prompt, Column Filter Prompt, and Image

Prompt.

113. What is Page Prompt?

Page Prompt is used in the dashboard to enable the user to select criteria for requests

listed in the dashboard page that is being used

currently by the user. Scope of Page Prompt is limited to the dashboard page it is
associated with.
114. What is Column Filter Prompt?
Column Filter prompt is associated with a request. When this request is assigned to a

dashboard, Siebel analytics will prompt the user to

select the criteria for that column, then generates the request using the criteria selected.
115. What is Image Prompt?
Image prompt and Column Filter prompt are functionally same, instead of showing

values, the image prompt displays an image and allows

the user to select the region (co-ordinate) in the image and takes value associated for that

region and generates the request. When

image prompt is created column values are assigned to particular co-ordinates of the
image

128. Can a single answer request be created using objects from different Subject Areas?
Not possible to create a single answer request using objects from different Subject areas,

however using the Combine With Similar

Request feature, a request can be combined with another request(s) that was created
using different subject area. The data type of
columns should match otherwise Siebel Analytics will throw Inconsistent data type
error. Also security rights should be properly handled.
129. When a report is printed from the Dashboard page by clicking on the 'Print' Report Link,
the prompts that were applied to the results in
that report also to be printed. Is this possible?

Yes. Add the Filter View to the request so that Prompts there applied. But this displays
the filter name instead of content if the request
is associated with any shared filter.
130. A dashboard prompt is shared by all requests in the dash board with Equal operator, but
for one request the operator should function as
<= rather than =. How to make this workable?

1. Save as the request that requires <= operator as <RequestName>Real.


2. In the real request, instead of using Is Prompted, use Filter based on results of
another request and choose the request that has
is Prompted. Ensure that the <= operator is used and respective column is selected.
3. In the dashboard use real request instead of the request that has is Prompted.
131. There are three fields Start Date, End Date (Constrained!) and Category from the same
table in a Dashboard Prompt. But the issue is that
when category is selected the End date values are constrained. What is the solution to this
issue?
<Though logically it is working exactly, the requirement is different! No clue at all. Yet to
find a solution! >
132. When a request that contains drilldown column (dimensional hierarchy). For userA has
access to all columns in that hierarchy and userB
do not have access to 2nd level column. What will happen when userB drill downs this

request?

When userB drilldowns from 1st level column then the request drilldowns to 3rd level

column.

133. What needs to be done to improve performance in UI?

Ensure that only relevant fields are displayed in the report.

Ensure that only for highest granularity (detail level) the system access facts table and for
lower level (group by a dimension attribute) it
access the aggregated fact table.
Enable the cache feature.

134. How to track changes in OLTP source from SA Admin Tool?


Using Event Polling Table.
135. How does SAS know that it has to access aggregate level table but not detail level table?

SAS determines this by using the hierarchy level associated for the fact table in the logical

source.
136. What is the relationship between the Group and WebGroup?
If a Webgroup is created with the same name of a Group in the Siebel Administrator Tool
then the users assigned to that Group
automatically inherits privilege assigned to the Web Group.
137. Can a Global filter be created using a computed column?
Not possible.
138. What are types of indexes available?
B-tree and Bitmap (Only in Oracle from 9i onwards).
139. When does bitmap index is used?
Bitmap indexes are used in OLAP database for columns having less selectivity. For

example: GENDER, MARITAL STATUS etc.


140. When does B-tree is used?

B-tree indexes are used for columns having high selectivity.

141. What are the new features in 7.8.2

Yet to find.

143. How to create link in Physical Layer using confirmed dimension?


Create an alias table using the confirmed dimension table and use the alias table to create

link to fact table of the business model.

144. How do you decide when to use Repository/Webcat file to implement object level
security?
Only when there is requirement that restrict access to particular table or column in a

presentation catalog then repository should be used

otherwise object level security should be implemented in the webcat file.


145. Why do you specify the content filter?
The content is used to specify what content is accessed using that table.
146. What are the tables involved in configuring scheduler?
S_NQ_JOB, S_NQ_JOB_PARAM, S_NQ_INSTANCE and S_NQ_ERR_MSG tables
147. There is a report causing error in data. From where do you begin your debug?
a. Get the active physical by activating Admin-> Manage Session-> ViewLog (of the

cursor) from Siebel Analytics Web Client and


analyze to debug the error.

148. What kind of fact tables that you had used in your recent project?
Regular fact and fact less fact table (to support negative analysis report).
149. What is materialized view?
A materialized view (MV) is similar to a view but the data is actually stored in the
database (view that materializes). Materialized views
are often used for summary and pre-joined tables, or just to make a snapshot of a table

available on a remote system. A MV must be


refreshed when the data in the underlying tables is changed.
150. There is region, product and a fact table. How do you create the trend chart displays
each region seperatelty in a single view?

Create Pivoted table view, move the region column into section of the pivot table and
check the Chart Pivoted Results check box.
151. How do you create request that returns TOP 10 values of a report?
Request can be created with TOPN operator filter.

152. List the Best Practices recommended by Siebel for Dashboard development
1. No horizontal scrolling.

2. Not more than 10 to 15 columns in a table


3. Not more than 2 or 3 pages

4. Presentation catalog S_Contact 50 columns


5. Dont use the same physical column name in the presentation catalog
6. Always use complex join in BMM
153. What is a "Combo Table"?

The Activity Dimension is created in the Logical Layer with a data from Activity_F and

W_LOV_D.
Why has the Activity Star no Atvivity Dimension in the Physical Layer?

The Activity Star was wisely modeled using a Combo table. A Combo table is like an

extreme version of modeling Degenerate Keys in


Dimensional Modeling theory.

Analytics can logically convert a physical table into both a logical dimension and a
logical fact. By using a combo table, a) the loads

are easier b) less storage is required, and c) no join is needed between _F and _D.
This is a good practice when dealing with transactional records that are used as both
Dimensions and Facts - reduces work, errors,
complexity, and especially for large tables, can greatly improve performance.

Unfortunately, Siebel chose not to do this on many other of their stars.


154. List Sibel Datawarehouse table type with their respective suffix?
SUFFIX

Tabletype

_A

Aggregate

_D

Dimension

_DX

Dimension Extension

_DS

Staging for dimension

_DSX

Staging for Dimension Extension

_DH

Dimension Hierarchy

_F

Fact

_FX

Fact Extension

_FS

Staging for Fact

_FSX

Staging for Fact Extension

_G, _GS, _S

Internal Table

_H

Helper table

_MD

Mini dimension

_SCD

Slowly-changing Dimension

155. What is "Data Visibility" present in "Siebel Delivers\General" Tab?


156. What is funnel chart? When do you use funnel chart?

157. Do you use Level Based mesasure for Granular Level?


158. How do you implement Cache Management for Drilldown Reports?

Where are passwords for userid? Ldap,external table authentication stored respectively?

o passwords for userid are in siebel analytics server repository Ldap authentication in Ldap
server external database in a table in external database
Can

you

bypass

siebel

analytics

server

security

?if

so

how?

o 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?

o 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
o

are

the

Aggrigation

things

navigation,level

column,comlex join.

you
base

can

do

matrics,time

in

series

the

BMM

wizard,create

new

layer?
logical

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

o If a logical table in BMM layer has only one Table as the source table then it is Single LTS.
o If the logical table in BMM layer has more than one table as the sources to it then it is called
Multiple

LTS.

o 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?

o As per resume justification document


How do you bring/relate the aggregate tables into the Siebel analytics Logical layer?
o One way of bringing the Aggregate Tables into the BMM layer is by bringing them as Logical
Table

sources

for

the

corresponding

Fact

table.

o 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?
o 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

Have

you

the

heard

of

process

Implicit

of

Facts?

Aggregate

If,

so

navigation

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

History

star.

Campaign

Response

star.

Campaign
Order

the

Customer

dimension,

Stores

Stores

star. Stores customers who

such

customers

customer

as

the

following

targeted

responses

placed orders as a

in

to

result

stars:

campaign.

campaign.

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.
(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?
o No, its not mandatory to define hierarchies to other Dimension tables.
Can

you

have

multiple

data

sources

in

Siebel

Analytics?

o Yes.
How

do

you

deal

with

case

statement

and

expressions

o use expression builder to create case whenthen.. end statement

in

siebel

analytics?

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

Init

blocks

are

used

for

instantiating

session

when

o To create dynamic variable you have to create IB to write sql statement.


what
o

is
It

allows

for

is

you

query
utility

to

example:

user

logs

repository

of

examine

search

the

for

Seibel/OBIEE

objects

repository
based

in.

tool?
Admin

metadata

on

tool

tool

name,type.

o Examine relationship between metadata objects like which column in the presentation layer
maps to which table in physical layer
Oracle doesnt recommend Opaque Views because of performance considerations, so
why/when

do

we

use

them?

o 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

o No we have to migrate the whole web & rpd files

layer

to

different

server.

How do you identify what are the dimension tables and how do you decide them during the
Business/Data

modeling?

o 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?

o to improve the performance and query response time.


what

is

the

full

form

of

o there is no full form for rpd as such, it is just a repository file (Rapidfile Database)
how

do

disable

cache

for

only

particular

rpd?

tables?

o 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)

o we need to make an alias table in the physical layer.

Split

Broker

and

customer.

calculation for that new column.


Can

you

use

physical

join

in

BMM

layer?

o 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?

o yes we can.When we are doing complex join in BMM layer ,there is one option type,outer
join is there.
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?

o Monitoring and managing the cashe is cache management.There are three ways to do that.

o Disable caching for the system.(INI NQ config file), Cashe persistence time for specified
physical
o

Disable

tables

caching

and

for

the

Setting

event

system.(INI

NQ

polling
config

file

table.
:

You can disable caching for the whole system by setting the ENABLE parameter to NO in the
NQSConfig.INI file and restarting the Siebel Analytics 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.
o

Cashe

persistence

time

for

specified

physical

tables

You can specify a cachable 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 cachable 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
o

that

are

updated

Setting

frequently,
event

potentially

down

to

polling

every

few

table

seconds.
:

Siebel Analytics 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.

o For event polling table ,It is a standalone table and doesnt require to be joined with other
tables in the physical layer
What

is

data

level

security?

o 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 alll regions, while a
sales representative for a particular region sees onlu datafor that region.

What is the difference between Data Level Security and Object Level Security?

o Data level security controls the type and amount of data that you can see in a
reports.Objectlevel security provides security for objects stored in the siebel analytics web
catlog, like dashboards,dashboards pages,folder,and reports.

How

do

you

implement

security

using

External

Tables

and

LDAP?

o Instead of storing user IDs and passwords in a Siebel Analytics 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

Siebel Analytics Web users. The table could also contain the names of specific database catalogs
or schemas to use for each user when querying data

o Instead of storing user IDs and passwords in a Siebel Analytics Server repository, you can
have the Siebel Analytics 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?

o Using levelbase matrics.


Did you work on a stand alone Siebel system or was it integrated to other platforms?

o Deploying the Siebel analytics platform without other Siebel applications is called Siebel
analytics Stand -Alone .If your deployment includes other siebel Analytics Application it called
integrated analytics -You can say Stand-Alone siebel analytics
How

to

sort

columns

in

rpd

and

web?

o 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?
o 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 can not use that new logical column for other dashboard(or
request)

What

is

complex

join,

and

where

it

is

used?

o we can join dimention 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?
o 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

o Standalone.

standalone

or

integrated

system?

If you want to limit the users by the certain region to access only certain data, what would you
do?
o

using

data

level

security.

o Siebel Analytics 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

o
1.

The
2.

To
In

the

set

Security

Double-click

you

Administration

the

Manager

user.s

user

find

user.s
Tool,
ID.

logging

select

Manage

dialog
The

that?

box

User

dialog

level
>

Security.

box

appears.

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?

o Siebel Analytics 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

Can

you

migrate

the

updated

presentation

layer

only

tables.

to

different

server

o No we cant do only presentation layer. And ask him for more information and use one of the
above
o

Create

answers
a

ODBC

connection

in

the

o Copy the Rpd and migrate it to other server

different

serve

and

access

the

layer.

How do you define the relationship between facts and dimensions in BMM layer?

o Using complex join ,we can define relationship between facts and dimentions in BMM layer.
What is time series wizard? When and how do you use it?
o 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

o Identify the time periods need to be compared and then period table keys to the previous time
period.

o The period table needs to contain a column that will contain Year Ago information.
o The fact tables needs to have year ago totals.

o To use the Time series wizard. After creating your business model right click the business
model and click on Time Series Wizard.
o The Time Series Wizard prompts you to create names for the comparison measures that it
adds to the business model.

o The Time Series Wizard prompts you to select the period table used for the comparison
measures

o 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.

o 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.
o 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

o In the General tab of the Logical table source etc you can find Generated by Time Series
Wizard in the description section

o Then you can add these comparision measures to the presentation layer for your reports.
o Ex: Total sales of current qtr vs previous qtr vs same qtr year ago

Can you use physical join in BMM layer?


o 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?


o 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

Where are passwords for userid? Ldap,external table authentication stored respectively?

o passwords for userid are in siebel analytics server repository Ldap authentication in Ldap
server external database in a table in external database
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;
A)Oracle BI server will not be started.

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


A.)1.Open the repository with the admin tool.
2.Go to File>Import from Multi-dimensional.
3.Enter your credentials and click OK, select your cube and import.
5. Whats XMLA and where is it used for in OBIEE context?
A.)Extended multi lanaguage analysis ,in previous version named as xmla nothing but a cube.
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?
A.) It cannot be changed.
9. Can you use an OLTP backend database for creating a dashboard?
A.) Yes
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?

A.)One dimension and Fact Table


11.What is a complex join in OBIEE and why, where is it used?
A.)The complex join in the BMM is it will dynamically select

which Logical table sources to join together from the Logical tables.
In Pyhsical layer
12. Is it mandatory to have hierarchies defined in your repository? If Yes, where does it help?

If No,

what happens in the reports?


A.)Yes it is mandatory.
14. What does Consistency Checking perform; What are the minimum criteria to pass
consistency
checking for a given repository?
A.)Need One Dimension and fact in BMM and appropraite folders in Presentaion layer
15.Does OBIEE store physical sql ? How is physical sql generated in OBIEE environments?
A.)Yes it stores.We can check in mange sessions and Nqquery log.
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?


A.It will effect due to Log level.
17.What is the best default logging level for production users?
A.)Log level 2
18.What is the difference between logging level 1 and 2?

A.)Level 1 Logs the SQL statement issued from the client application and 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.

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

report?

A.) Manage sessions and NQQuery log.


20.)Where does the BI Server logs its start, stop and restart times in the file system?
A.)In NQServer log (C:\OracleBI\server\Log)
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?
A.) Yes,it will
22.Same as question 22 but what happens if you import each table seperately?
A.)Keys will be affected but not the joins.

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?
A.)Table with primary key becomes Dimension and table with foreign key becomes Fact table.
24.What if the tables (Table 1 and Table 2) are not joined, then what happens in BMM layer?
A.)Both acts like Fact table in BMM.
25.How many server instances can coexist in an OBIEE cluster?
A.)There are two server instances:
Master server. A master server is a clustered Oracle BI Server to which the Administration Tool
connects for online repository changes. In the NQClusterConfig.INI file, the parameter
MASTER_SERVER specifies the Oracle BI Server that functions as the master server.
Slave server. A slave server is a clustered Oracle BI Server that does not allow online repository
changes. It is used in load balancing of ODBC sessions to the Oracle BI Server cluster. If the

master server is ever down, the Administration Tool will connect to an available slave server,
but in read-only mode.
26.Aggregation rules are set on top of columns (Physical Columns or Logical
Columns or Both)
A.)Logical Columns.
31. What are Chronological Keys in OBIEE? How are they different from Logical Keys?
A.)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.
Where as logical key is the key which is used to define the unique elements in each logical
level.A logical level may have more than one level key. When that is the case, specify the key
that is the primary key of that level.It is used to specify the columns which is used for drill
down and which is used as primary keys.
32.What are the different ways to authenticate an user in OBIEE system? Can OBIEE
authenticate a user passing through multiple authentication methods?

A.)OBIEE Support four types of authentication.


1)LDAP Authentication : Users are authenticated based on credentials stored in LDAP.This is the
BEST method to do authentication in OBIEE and it supports companys Single Sign On (SSO)
philosophy as well.
2)External Table Authentication : If users belongs to multiple groups ,that information is being
pulled from the data base scheme table.This usually implemented with LDAP Authentication
3)Database Authentication: The Oracle BI Server can authenticates user based on database
logins. If a user has read permission on a specific database.Oracle BI Presentation Services
authenticates those users
4)Oracle BI Server User Authentication: User are directly crated in OBIEE and are
authenticated against those credentials. This is the worst authentication method if company has
larger then few people using the system. Believe me Maintenance is a nightmare here.
Two authentication methods are usually combined together.like LDAP and external table
authentication.
And as i said earlier LDAP and/or LDAP with external table are BEST authentication(Again each
case is different)
Oracle BI Server User Authentication is not quite popular as it has its support/maintenance
issue associated ,once system grows beyond certain users

34. 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 thisrepository by opening online?
A.)We can avoid this error by deleting the .log and .sav in repository directory and restarting
the services.
35.What is the default configuration for caching in NQSConfig.ini file? How method does the
OBIEE use for clearing its cache?

A.)To disable in rpd In NQSConfig.INI file(OracleBI\server\Config) set ENABLE = NO under


Cahce section.
If you make it as NO cahce will never save cahce again in rpd.
36.What is MUDE/ MUD in OBIEE? On what basis would you create projects?
A.)Oracle BI repository development environment is not set up for multiple users. A more
efficient development environment would permit developers to modify a repository

simultaneously and then check in changes. This can be done by setting up the multi user

environment using the Oracle BI Administration Tool to support concurrent development.


37.In MUDE, Can two resources checkout the same project simultaneously?
A.)NO
38.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?
A.)RPD DocumentationTools>Utilities>Repository Documentation
We can do dashboard and report documnention by CATALOG MANAGER.
39.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?

A.)To clear Cache:


if its presentation server then go to Settings > Manage Session > Close all Cursors
if its bi server.. go to Admin tool(rpd) > Manage > Cache > Action > Purge
To disable in rpd In NQSConfig.INI file(OracleBI\server\Config) set ENABLE = NO under
Cahce section.

If you make it as NO cahce will never save cahce again in rpd.


Physical table->general>Cacheable
40. Is it better to cache a fact table or dimension table or both in the BI Server level? Why?
(Forgetother caches from above question)
A.)Better to cache at fact table.
41. 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.

A.)If Alias table is avaliable for Presentaion table then all the reports work fine.
44.What is a federated query? How does OBIEE develop these federated queries?
A.)Federated queries are queries where data is being brought frommultipledatabases and
consolidated/joined in the business layer/logical layer. OBIEE does this quite a lot no matter
where the data is. All it needs is a relation between the tables coming from muliple databases.
45.What is in-memory query? How to implement this in OBIEE?
A.)I dont think OBIEE does in-memory queries. It does compensate for this by using features
like caching. Also, caching being present in two places for OBIEE like presentation cache and
server cache.

What are opaque views in database? When is it advisable to create one?

The opaque views are tables that are created with join or other query data that contain
SELECT query output. The opaque views make the logical understanding simple for
implementation but there are heavy performance constraints. They are only used when
there is no other way to get to the final solution.

How can you map each of the reports across to the different tables that are being accessed?
E-mail

OBIEE Interview Questions and Answers

The Admin tool has the Manage Sessions tab which gives you the access to the logs that are
being generated for each session.After the report generation sessions, you can easily view the
log to map each requests to the corresponding tables and databases.

How can you migrate the presentation layers across to different servers?
The presentation layer is dependent on the database that is underlying in the each server.
Therefore the presentation layer alone cannot be migrated as a stand-alone aspect of the
database. What we can do instead is have a ODBC or similar database connection

established across from the different servers to the particular main system and then carry
over the presentation semantics from the other server with that database oriented changes
in the logic layer

How will you impose access limitation to the database according to the region of access?

The Data level security imposed according to data in certain column can be used to

limit access depending on the regions.

The Siebel Analytics admin tool will give you the control over user access to the

different data according to conditions supplied by you.


Which is preferable? Creating the new logical column in the repository level or the
Dashboard level of view?

Creation of the logical column on the higher level of dashboard will have effect on the tables
only on that view level and not on the other dashboards and other requests. The logical

columns created on the repository level will in turn gets its effect on all the other requests
and reports from different view levels. So it is always preferable to have the logical column
created at the repository level.

How can you improve and quicken the way of dealing with summary query reports?

Having indexes set out for the different values.

Implementing algorithms for joins at the business layers help you get a better speed.

Rewriting the views and other related queries according to your specific requirement.

The report designs should be pertaining what is exactly needed, nothing more and

nothing less.

How does the data pass through the three layers of view?

The three layers that are involved in the data accesses and modeling are:

Physical layer: This is the layer where the actual raw data is stored in the form tables.

These are very descriptive data and are meant for use by the business layer of logic.

Business layer: The more higher level of interface to the data sources, that makes the

logical interpretation much feasible and easy.

Presentation layer: This is what is given out to the user. All the processed and categorized

data give the clear picture of the real world entities using the raw/combination of multiple data
from the physical sources through the business layer logics

Is it possible for inserting a new column in the BMM layer? How does it help?
The new column can be added to the fact table in the BMM layer by right clicking the specific table and selecting add New
logical Column. This comes in handy when we are dealing with same standard calculation for all the rows in the table. The
data fetches can be made quicker with the already stored calculated data in the logical layer.
What would you do if you are provided with multiple dimensions and multiple fact tables to connect to?
We create the logical fact table on the higher level BMM layer. This logical table will have the source pointing to the
multiple fact tables. This logical table will be used to be connected with the multiple dimensions.
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 seperate 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.
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? Lets 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?
69. What are logical keys? Why would you need to create them? Does the physical key gets automatically converted to
logical key when the table is moved from physical layer to business model?
70. Lets 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?
71. In the above scenario, Is it better to have atleast one column defined in your criteria manually or just leave it without any
sort criteria mentioned? Whats the difference in performance?

Cache Management Techniques


Do change Cache configurable parameters first .Note if disk space for Cached file exceed its
limit ,entries least recently used(LRU) will be discarded and replace automatically to make room

for new entries .Below mentioned techniques could be broadly distinguished as Manual ,
Automatic and Programmatic way to manage Caching :
Cache Seeding
There are several means to do this business :
1) Set Global Cache parameter on This will cache query running on any physical tables .By
default for all tables in repository is cacheable .
2) Switch on Cacheable property This will provides table level benefit and extra
customisation that which Physical tables should participate in generating query cache . E.g :
sometime user would be more interested on giant Fact table caching rather tiny dimension tables
.
3) Scheduling iBot iBot could be properly configured and used for cache seeding purpose
.This will silently build the cache without having any manual intervention . Possibly triggered in
a time window after daily ETL load finishes or can be further customised and automated based
on result retrieved from another iBot in chain request .The second iBot necessary ping the DB to
identify whether a database update has been done(after ETL finish) before passing the request to
trigger its chained counterpart .This will build data and query cache for a dashboard request and
not for entire set of tables .
4) Running nQCmd utility :
Another fantastic way to handle query caching which doesnt have any dependency on the ETL
load .But overhead to accumulate the superset of the actual physical query needs to be fired
against a request /report and put it down in a single file to pass as parameter of nQCmd.exe .
This necessarily need to be invoked after ETL run and by the ETL job itself .It could be done
using remote login to BI server and trigger nQcmd automatically and thus iBot scheduling time
dependency could be avoided .
Cache Purging
A very important and crucial mechanism which should be proven good and perfect to make
Caching a success story :
1) Manual purging Usually a dedicated dumb Administrating job ,kind an overhead for a
company .This could be done simply by deleting the existing Cache TBL files or by firing purge
from BI Admin Tool .This purging could be done by categories i.e. (Repository , Subject areas ,
Users or by physical tables) from Admintool in online mode .
2) Calling ODBC Extension Bundled ODBC extension function like
SAPurgeCacheByDatabase()
,SAPurgeCacheByQuery(),SAPurgeCacheByTable(),SAPurgeAllCache() etc . could be called to
free the cache table for specific queries, tables,database or all .See Oracle documentation for

details .This should be called using nQCMD utility and just after ETL load and before Cache
seed to ensure there is no time window related gap and dependency .
3) Event Polling table A nice and robust concept but not so nice to manage and lead to extra
overhead .Really a good technique to make BI server aware of that DB update done and now
carry forward to do your business of purging . A Cache Polling frequency is an important step
and should be predefined and robust to make it a success .Poll table will be populated by a auto
insert DB Trigger each time target DB tables updated .Analytics server polls that table at specific
set of intervals and invalidates cache entries corresponding to updated tables.
4) Calling iBots to Purge Cache It could be done by calling a custom java scripts .This in turn
call nQCmd and ODBC extension to free cache .However the catch in this feature is again the
iBots need to be scheduled just after ETL run and before Cache seed . So you might not sure
about stale data if ETL doesnt meet the SLA .Again this could be done after setting a chained
iBots to trigger the Purging activity in proper time .So ground rule is that never rely on iBot
schedule on time.Lets pick the status from DB to trigger it .
Trade-off
Not purging the outdated caches , known as Stale Caches , can potentially return inaccurate
results over time .Think of a situation where your Cache didnt get purged on time after ETL
load finishes. In this scenario though database has been updated but the change is not going to be
reflected in your cached data as the seeded cache having outdated data at your filesystem and
thus results a stale data which would throw inconsistent and wrong result .This potentially will
cause huge confusion to the users mind .Thus Cache retention ,refresh time is important.
Not only that,in large platform , Caching should be separated and spreaded across multiple
folders/mountpoints for better utilization of I/O across the filesystems .The query Cache storage
should be on local, high-performance ,high-reliable storage devices .The size of consumption of
the Cached files would be a bottleneck for performance improvement across disk usage space .It
should be used with proper Caching replacement algorithm and the policy towards the number of
maximum cache entries defined under NQSCONFIG.ini file . A potential Cache related problem
found in Clustered environment where the Cache files build on one native host is not sharable
with other one and this leads to be the same cache build across clustered participants as it could
not be ensured that which BI server will handle which request .Until and unless the request get
processed Cluster participant cant determine there was already some Cache hit based on the
query generated and the request need not to be processed from other Clustered BI server .Again
Purging need to be done from both Clustered servers .Cluster Aware Cache is propagated across
Clustered Servers only when Cache is seeded

You might also like