Friday, 30 August 2013

Interview Questions for BIAPPS Consultant position

KPI Partners Interview Question:-

1) Explain me about the projects you have worked on?

2) Tell me your roles and Responsibilities?

3) What is the technology we will use for reporting and ETL?

4) Major Differences between ROLAP and MOLAP?

5) How do you rate yourself in OBIEE, Informatica, DAC?

6) How do you build data model?

7) Major differences between OBIEE 11g and 10g?

8) What is Application Server in OBIEE 11g?

9) Why do we use Oc4j in 10g?

10) Where does the users and groups generally stored in obiee 11g?

11) What is the External Table Authentication?

12) How do you resolve Many to Many Relationship?

13) If you want to add a new column, what all changes need to be done in informatica, DAC,OBIEE?

14) What are the subject areas you have worked on?

15) What is Content level Navigation?

16) What is a level based measure?

17) What all changes were done in Presentation layer in obiee 11g?

18) Whys is it the PF-FK join is from fact to Dimension table in 11g?

Monday, 26 August 2013

Modeling Degenerate dimensions & Fact attributes

https://docs.google.com/document/d/1VKYKeHuzRxJKI7EqSmaMy4Q4dqB9b8sHcBYbznIEp2k/edit

Saturday, 24 August 2013

DAC interview questions and answers




Description: http://img1.blogblog.com/img/icon18_wrench_allbkg.png
Tuesday, August 20, 2013
Oracle DAC interview questions and answers

Oracle DAC is an essential part of BI Apps, which is seldom being introduced in a systematic training course, although we use them all the time. There can be quite a lot of things to ask about when it comes to working with DAC, especially during interviews for BI Apps related projects. So I am going to gather some of the common interview questions with regard to DAC.

1. Name some of the DAC source system parameters:
TYPE2_FLAG, GLOBOL1_CURR_CODE, Initial_extract_date etc.. (The goal is just to name a few and of course, nobody remembers exactly the spelling)

2. To configure for initial full load, what are the things that needs to be done:
A, in DAC, set the value for initial_extract_date to avoid loading way too many data into target
B, to load base table W_DAY_D, nullify all of the refresh date to enable to full load. Do the same for all other aggregated time table like W_Week_D etc. At each task level where day dimension is being part of (SIL_daydimension), set the $$start date and $$end date parameter values at the task level to determine how long period your day dimension should store.
C. If your company does have multiple currency, then you need to configure currency in DAC by assigning currency code and exchange rate to DAC parameters like globol1 (2,3)_curr_code and globol1 (2,3)_curr_rate_type. BI Apps support up to 3 types of currency.
D. Configure GL Hierarchy so the info stores in W_Hierarchy_D. No DAC configuration needed
E. DATASOURCE_NUM_ID is a DAC parameters that determine which datasource system the extraction is taking place. In physical data source tab under 'setup' view, this field can be edited with integer number from 1 to 10 to represent different DB source.

3. Explain how to set up metadata in DAC to load data into the target

For basic intro on how DAC work in terms of executing the tasks.

4. How to configure incremental loading in DAC
A. The refresh date under physical data source stores the last ETL run time, by nullifying this, the DAC will run full load or it will run incremental load based on the refresh date value.
B. Under task, there is 'incremental load' commend, by checking this, it will do either full load or incremental load regardless of refresh date.


-------------------------------------------------------------------------------

Below are the list of questions about DAC found through googling, since these questions have been provided with answers, I have provided my answers, feel free to read it for your reference:

1. Over all architecture of DAC ?
DAC server and DAC Client. They must co-locate with Informatica Integration service, repository service and Informatica repository


2. Why we should use DAC and not control all execution through informatica ?
For better performance management, such as creating index, dropping index, truncating before load. Without DAC a custom ETL process will be needed, which has to survive the upgrate

3. Can we run multiple execution plan at the same time in DAC ?
Yes. only if the execution plan are not loading into the same table or using the same phyiscal table source

4. Explain DAC export/import
A way to import or export DAC repository metadata for upgrade or backup. Logica, System, runtime objects can be import/export

5. Have you change any of the DAC parameters ? If so which one and why ?
You have to understand what are the DAC parameters and the purpose of each. For example, Initial_extract_date can be modified when configure for initial full load, so the value for initial extract date will be used to filter out records from the source that are older than this date.

6. How do you Determine the Informatica Server Maximum Sessions Parameter Setting in DAC?
One you register informatica server in Dac client

7. Can dac send an email just in case of any failures ?
In DAC Client, toolbar, click email recipient, then in Tools--> DAC Server setup, Email configuration

8. Can you execute the sql scrip through DAC ? If yes how ?

Yes, at task level, in execution type, select SQL file. As a bonus to this answer, this article explains how to run store procedures in DAC.

9. in DAC How you can disable table indexes before loading and enable the index once load is complete ?
Just drop and recreate index

10.Let say you are running the normal incremental load. But just for today you want to extract data from AP_INVOCIES_ALL from 12/12/2011? How you can achieve this ?

Modify the refresh date to be 12/12/2011


11.How DAC Determines the Order of Task Execution within an Execution Plan ?
Based on tasks source/target table, Task phase (extract dim, load fact etc) and 'truncate always' properties, to run them in particular order, create task group


12.What are Micro ETL Execution Plans ? How can you Build and run them ?

According to Oracle document:
Micro ETL execution plans are ETL processes that you schedule at very frequent intervals, such as hourly or half-hourly. They usually handle small subject areas or subsets of larger subject areas. The DAC tracks refresh dates for tables in micro ETL execution plans separately from other execution plans and uses these refresh dates in the change capture process.

in design -- subject areas, create copy of subject area, inactive the unwanted tasks and create new execution plan for this subject area

13.From you past experience – explain scenario where Micro ETL Execution Plans produced wrong results on reports?

According to Oracle Document:
CAUTION:  Micro ETL processes can cause issues with data inconsistencies, data availability, and additional load on the transactional database. Therefore, you should consider the following factors before implementing a micro ETL process:

For related star schemas, if one schema is omitted from a micro ETL execution plan, the cross-star reports may be inaccurate. For example, if the Person fact table is refreshed more frequently than the Revenue fact table, a report that spans the Person and Revenue dimensional schemas may produce inconsistent results.
If you omit dimension tables from a micro ETL execution plan, the foreign keys for the fact tables will point to Unspecified rows for the new dimension records. The foreign key references will be resolved when the Complete ETL execution plan is run, but users of the reports should be aware of such inconsistencies.
If you do not include aggregate tables in micro ETL execution plans, the reports that use data from these tables will be inconsistent with the reports that use data from the detailed fact tables. However, if aggregate tables are included in the micro ETL execution plan, the aggregate calculations are performed for each ETL process, which will take a constant amount of time and may be inefficient to perform at such frequent intervals.
Hierarchy tables are rebuilt during every ETL execution plan by querying the base dimension tables. This operation takes a constant amount of time. If the base tables are big, this operation may take a long time and may be inefficient if the micro ETL execution plan runs several times a day. However, if you avoid populating the hierarchy tables during micro ETL processes, data inconsistencies will occur.
With micro ETL execution plans, caching will occur more frequently, which may have performance implications.
Micro ETL execution plans will put more load on the transactional database because of the frequent extracts.


14. Let say you can not use DAC scheduler to schedule you execution plan. What other options do you have ? How you can achieve this ?

Use Informatica scheduler.

15.Does DAC keeps track of refresh dates for all the source/target tables ?

According to Oracle Document:
Refresh dates are tracked only for tables that are either a primary source or a primary target on tasks in a completed run of an execution plan. The DAC runs the full load command for tasks on which a table is a primary source or target if the refresh date against the table is null. When there are multiple primary sources, the earliest of the refresh dates will trigger a full load or an incremental load. If any one of the primary source tables has no refresh date, then the DAC will run the full load command.


16.Consider the scenario as below for task T1
Primary Source has not null last refresh date
Primary Target has null last refresh date
Will task T1 executes in full or incremental ?

Based on answers provided from question 15, what do you think?


17.Explain the upgrade/merge options for DAC 7.8.4 & below and new versions ?

Use upgrade/merge wizzard.
1. Repository Upgrade (DAC 784) --- upgrade Dac
2. Refresh Base --- For upgrading BI Apps
3. Simplified Refresh From Base -- This option is similar to the Refresh Base option. It allows you to upgrade the DAC Repository from an older release of Oracle BI Applications to a new release without comparing repositories and creating a Difference Report.
4. Replace Base --- Upgrade when phasing out older transaction system to newer one
5. Peer to Peer Merge  --- Mergre different DAC instance of repository

18. Using DAC command line – write a script to check weather informatica services are up or not ?

use dacCmdLine InformaticaStatus.

19.Can we have two DAC server on the same machine ?
You can run two DAC servers on the same machine as long as they are listening on different ports and pointing to two different repositories

20.Explain briefly What kind of DAC Repository Objects Held in Source System Containers ?

Subject Areas -- A logical grouping of tables related to a particular subject or application context. It also includes the tasks that are associated with the tables, as well as the tasks required to load the tables. Subject areas are assigned to execution plans, which can be scheduled for full or incremental loads

tables -- Phsyical tables in DB

Indexes -- Just like your physical DB indexes

Tasks -- Unit of work for loading tables

Task groups  ---- Grouping of tasks that can be bundled to run as a group

Execution plans -- A data transformation plans defined on subject areas that needs to be transformed at certain frequencies of time

Schedules -- Determine how often execution plan runs.


21.What is Authentication file ? If you have dac client installed can you access DAC repository without Authentication file ?

According to Oracle Document:
When you configure a connection to the DAC Repository, the configuration process includes creating a new authentication file or selecting an existing authentication file. The authentication file authenticates the database in which the repository resides. If you create a new authentication file, you will specify the table owner and password for the database.

22.Explain Index, Table and Task Actions in DAC ?

According to Oracle Document:
Index action: Override the default behavior for dropping and creating indexes

Table action: Override the default behavior for truncating and analyzing tables

Task action: Can add new functionality of task behavior, such as precedinf action, success action, failure action, upon failure restart



23.How DAC Handles Parameters at Runtime ?

According to Oracle Document:
During an ETL execution, DAC reads and evaluates all parameters associated with that ETL run, including static and runtime parameters defined in DAC, parameters held in flat files, and parameters defined externally to DAC. DAC consolidates all the parameters for the ETL run, deduplicates any redundant parameters, and then creates an individual parameter file for each Informatica session. This file contains the evaluated name-value pairs for all parameters, both static and runtime, for each workflow that DAC executes. The parameter file contains a section for each session under a workflow. DAC determines the sessions under a workflow during runtime by using the Informatica pmrep function ListObjectDependencies.

The naming convention for the parameter file is

....txt

DAC writes this file to a location specified in the DAC system property InformaticaParameterFileLocation. The location specified by the property InformaticaParameterFileLocation must be the same as the location specified by the Informatica parameter property $PMSourcefileDir.

24. How DAC Determines Tasks Required for any given subject area ?

According to Oracle Document:
You define a subject area by specifying a fact table or set of fact tables to be the central table or tables in the subject area. When a subject area is defined, DAC performs the following process to determine the relevant tasks:

DAC identifies the dimension tables associated with the facts and adds these tables to the subject area.

DAC identifies the related tables, such as aggregates, associated with the fact or dimension tables and adds them to the subject area definition.

DAC identifies the tasks for which the dimension and fact tables listed in the two processes above are targets tables and adds these tasks into the subject area.

Tasks that DAC automatically assigns to a subject area are indicated with the Autogenerated flag (in the Tasks subtab of the Subject Areas tab).

You can inactivate a task from participating in a subject area by selecting the Inactive check box (in the Tasks subtab of the Subject Areas tab). When the Inactive check box is selected, the task remains inactive even if you reassemble the subject area.

You can also remove a task from a subject area using the Add/Remove command in the Tasks subtab of the subject Areas tab, but when you remove a task it is only removed from the subject area until you reassemble the subject area.

DAC identifies the source tables for the tasks identified in the previous process and adds these tables to the subject area.

DAC performs this process recursively until all necessary tasks have been added to the subject area. A task is added to the subject area only once, even if it is associated with several tables in the subject area. DAC then expands or trims the total number of tasks based on the configuration rules, which are defined as configuration tags. This process can be resource intensive because DAC loads all of the objects in the source system container into memory before parsing.


25.Difference between Homogeneous and Heterogeneous execution plans.

According to Oracle Document:

Homogeneous

This type of execution plan extracts data from multiple instances of the same source system. For example, a business might have an instance of Oracle EBS 11i in one location and time zone and another instance of Oracle EBS 11i in another location and time zone. In such cases, the timing of data extraction from the different instances can be staggered to meet your business requirements.

Heterogeneous

This type of execution plan extracts data from one or more instances of dissimilar source systems. For example, a business might have an instance of Siebel 7.8 in one location, an instance of Oracle EBS 11i in another location, and a second instance of Oracle EBS 11i in yet a third location. You can also stagger the timing of data extraction when you use this type of execution plan.

ODI Knowledge Modules

https://docs.google.com/document/d/12bwMdgvMbXMvisZeOzrS6hVI4NRh2inOiE1l3a_v7Eo/edit

Multiple Fact Reporting on (Non-)Conforming dimensions

https://docs.google.com/document/d/1IdDSfj3DObdg0g8FJcxICQNb7fOomuiaaO0bSnG4GiA/edit

Tuesday, 20 August 2013

OBIEE- Best Practices

Repository ‐ Physical Layer
Connection Pool
1.Use individual database for every project and also specify the meaningful name for it
2.Follow proper naming convention to the database object & connection pool as per the project/business unit.
3.Use optimized number of connection pools, maximum connections for each pool ,shared logon etc.
4.Do not have any connection pools which are unable to connect to the databases as this might lead to BI server crash as it continuously ping to the connection.
5. It is advised to have a dedicated database connection for OBI which can read all the required schemas and which never expires
6.Any improper call interface should not be in the connection pool
7.Ensure to check “Execute queries asynchronously” option in the connection pool details
Others
1.Define proper keys in physical layer
2.Do not import foreign keys from Database
3.Specify the intelligent cache persistence time depending on any physical table refreshing period
4.Avoid using Hints at the Physical table Level.
5.Use aliases to resolve all circular joins
6.Avoid to create any views (SQL based objects) in the physical layer unless it is necessary
7.There should be no fact table to fact table joins
8.Use consistent naming conventions across aliases
9.Do not use a separate alias for degenerate facts
10.Search and destroy triangle joins
11.Always define your catalog under projects (typically useful for Multi User Development environment and repository merging)
Repository Design ‐ BMM
Hierarchy
1.Ensure each level of hierarchy has an appropriate number of elements e e e ts and level key.
2.No level key should be at Grand total level
3.A hierarchy should only have one grand total level
4.Lowest level of the hierarchy should be same as lowest grain of the Dimension Table. lowest level of a dimension hierarchy must match the primary key of its corresponding dimension logical tables
5.All the columns in a hierarchy should come from one logical table
6.All hierarchies should have a single root level and a single top level.
7.If a hierarchy has multiple branches, all branches must have a common beginning point and a common end point.
8.No column can be associated with more than one level.
9.If a column pertains to more than one level, associate it with the highest level it belongs to.
10.All levels except the grand total level must have level keys.
11.Should not be unnecessary keys in hierarchy
12.Optimizes dimensional hierarchy so that it do not span across multiple logical dimension tables
Aggregation
1.All aggregation should be performed from a fact logical table and not from a dimension logical table.
2.All columns that cannot be aggregated should be expressed in a dimension logical table and not in a fact logical table
3.Non‐aggregated columns can exist in a logical fact table if they are mapped to a source which is at the lowest level of aggregation for all other dimensions
4.Arrange dimensional sources in order of aggregation from lowest level to highest level
Others
1. Modelling should not be any report specific, it should be model centric
2.Joins between logical facts and logical dimensions should be complex(intelligent) i.e. 0,1:N not foreign key joins
3.It is advised to have a logical star in the business model
4.Combine all like attributes into single dimensional logical table.For e.g. Never put product attributes in customer dimension
5.Every Logical Dimension should have a hierarchy declared even if it only consists of a Grand Total and a Detail Level.
6.Never delete logical columns that map to keys of physical dimension tables
7. Explicitly declare content of logical table sources
8. Proper naming convention to be followed for logical tables and columns
9.Avoid assigning logical column same name as logical table or subject area
10.Configure the content/levels properly for all sources to ensure that OBI generates optimised SQL
11. Avoid to apply complex logic at the “Where Clause” filter.
12.Level based or derived calculations should not be stored in Aggregated tables
13. Explicitly declare the content of logical table sources, especially for logical fact tables.
14. Create separate source for dimension extensions.
15. Combine Fact extension into main fact source
16. Separate mini‐dimensions from large dimensions as different logical tables – keeping options open on deleting large dimensions
17. If multiple calendars and time comparisons for both are required (e.g. fiscal and Gregorian), then consider separating them into different logical dimension tables – simplifies calendar table construction
18. Each logical table source of a fact logical table needs to have an aggregation content defined. The aggregation content rule defines at what level of granularity the data is stored in this  fact table. For each dimension that relates to this fact logical table, define the level of granularity, ensuring that every related dimension is defined.
19. Delete unnecessary physical column from here
20. Rename logical column here so that all referenced presentation column would changes cascaded
Logical Joins
1. If foreign key logical joins are used, the primary key of a logical fact table should then be comprised of the foreign keys. If the physical table does not have a primary key, the logical key for a fact table needs to be made up of the key columns that join to the attribute tables .
2.Look at the foreign keys for the fact table and find references for all of the dimension tables that join to this fact table.
3. Create the logical key of the fact table as a combination of those foreign keys.

Presentation Layer
1. It should be simple Break out complex logical models into simple, discrete, and manageable subject areas.
2.Expose most important facts and dimensions
3. All columns should be named in business‐relevant terms, NOT in physical table/column terms
4.Proper Naming Convention for all tables and columns by Initial cap Labellings.
5.Do not combine tables and columns from mutually incompatible logical fact and dimension tables
6. Ensure that aliases for presentation layer columns and tables are not used unless necessary. Verify that reports do not use the aliases
7.End‐Users should not get any errors when querying on any two random columns in a well designed presentation layer
8. Each Catalog should have the description which will be visible from Answers
9. Each Presentation column should have description visible from answers on mouse hover to it
10. Delete unnecessary columns of BMM in presentation layer
11. Avoid naming catalog folders same as presentation tables
12.  If the presentation catalog is in Tree like folder structure(main and sub folders), then place a dummy measure in the main catalog folder.
13. Avoid to set permissions to tables or groups unless necessary
14. If presentation table is in tree like structure then place a dummy column as ‘_’ to enforce proper table sorting . This also help in merging activities
15. Separate numeric and non‐numeric quantities into separate folder sets. Mark “Facts” or “Measures” for column having Aggregation rules
16. Detailed presentation catalogs should include measures from one fact table only as a general rule, as the detailed dimensions (e.g. degenerate facts) are non‐conforming with other fact tables
17. Overview catalogs dimensionality is intersection of the conforming dimensions of the base facts
18. Do not use any special characters(‘$‘,’%’,’&’,’_’,’’’ etc.) for naming convention in Presentation Layer and also for Dashboards
Others
RPD Security
1.Use Externalized security for user‐group association to roll‐out large number of users
2.Users should not be stored inside the repository
3.Use template groups (i.e. security filters with session variables) to minimize group proliferation
4. Limit online repository updates to minor changes.
5. For major editing take backup copy of the repository, and edit the repository in Offline mode.
6. Use naming convention for initialization block and variable for ease of maintenance
7. Follow proper migration strategies
Report Design
Shared Folders
1. Each project or business unit will be given a dedicated shared folder on the catalog to create/save the corresponding report developments.
2.Any project specific work is not supposed to be saved in “My Folders”.
3.Dashboard, Page Name , Report Name , Web Groups should be saved to relevant business area shared folders with proper and easily identifiable naming conventions
4.Each Dashboard , Page , Report should have descriptions
Interactive Dashboard
1.Compact and balanced and Feature Rich
2.Do not use any special characters(‘$‘,’%’,’&’,’_’,’’’ etc.) for naming convention in Dashboards/reports.
3. Try to avoid complex pivot tables.
4. It’s not recommended to use Guided Navigation which effects the report performance.
5. Use single GO button for g all the prompts in the report
6.Apply the hidden column format as the system‐wide default for these preservation measures
7.Name should be meaningful for business
8. Each report can have title definition
9. Do role based personalization wherever applicable
10. Answers access should be restrictive to group of users via privilege control by BI Administrator
11. Apply filter with some default value to avoid high response time
12. Avoid drop down list for filters for large set of distinct values
13. For date calendar column place it in pivot rather tabular data show
14. Always try to put a single Go
15. Make Drill in place in dashboard for Drilled down reports
16. Put the Download ,Refresh , Print link across all reports
17. 2‐D charts are easier to read than 3‐D counterpart typically for bar charts
18. Use standard dashboard layout across all pages
19. Try to keep only 3 to 4 messages per page
20. Remember people read from left to right & top to bottom
21. Always keep dashboards symmetrical, balanced and visually appealing
22. Augment basic reports with Conditional Formatting
23. Always leverage Portal Navigation, Report Navigation & Drill‐down
24. Create Visibility Roles
25. Place Filter Views underneath Title views
26. Don’t Show Detailed Filters (They look cluttered)
27. Use standard saved templates to import formatting and apply the layout
28. Use region/section collapsible features .
29. Use View selector to allow same data to be replicate across several view
30. Avoid horizontal scrolling of dashboard page
31. Remember that you can embed folders or groups of folders
32. Always Drill/Navigate from summary to detail, top to bottom
33. Always try to leverage each request view within an application or  demonstration (Table, Chart, Pivot Table, Ticker, Narrative,Filter, etc.)
Performance
1. Should have no Global Consistency Errors and Warnings
2.Metadata Repository size to be Reduced to the possible Extent by removing the unused Objects
3.  Optimized settings for BI server and Web server configuration file parameters
4. Applying Database hints for a table in the Physical layer of the Repository
5. Reduce the SELECT statements executes by the OBIEE Server
6.  Limit the generation of lengthy physical SQL queries by Modeling dimension hierarchies (Hierarchy ( Drill Key and Level Key)
7. Disable or remove the unused initialization blocks and also reduce the number of init blocks in the Repository
8. Set the correct and recommended log level in the Production, setting the Query Limits and turn off logging
9. Push the complex functions to be performed at the database side
10. Good Caching and Purging strategy(Web server cache and Siebel Analytic Server Cache)

Understanding the types of tables in Oracle Business Intelligence Data Warehouse



The Oracle Business Analytics Warehouse (OBAW) is based on the dimensional modeling technique where fact tables are joined to multiple related dimension tables to form a "star schema".   While at the most basic level the star schema can be represented by dimensions and facts, the process of building those tables in the Oracle Business Analytics Warehouse requires several more table types.   

The standard OBAW ETL (Extract, Transform, Load) process includes the following tables:

Dimension Staging  (_DS) contains data loaded from a source application database.

Dimension Target   (_D)  contains the transformed dimension data for the final star schema model.

Aggregate tables (_A) sontains pre-summarized data at a higher grain than the base fact table.  Aggregate tables are used to improve query performance on front end tools.

Fact Staging tables (_FS) contains staged metric data prior to ETL transformation.   Foreign key values for the dimensions have not yet been translated to WID (warehouse ID) key values.

Fact tables (_F) contains the metrics to be analyzed along with foreign key WID (warehouse id) values pointing to the associated dimensions.

Delete tables (_DEL)  contains the primary keys of rows that were physically deleted from the source application.  These rows are either flagged or deleted from the data warehouse during the ETL process.

Dimension Hierarchy tables (_DH) contains dimension hierarchical structure information.  These are flattened hierarchies with multiple columns representing each level of the hierarchy, typically a code and name pair at each level and allow for rolling up data at various summary group levels.

Staging tables for Dimension (_DS) contains dimension hierarchy information that has not been processed by final ETL transformations.

Internal tables (_G, _GS, _S) Internal tables are referenced by ETL mappings for data transformation purposes as wells as controlling ETL execution.

Mini dimension tables (_MD) Include combinations of the most queried attributes of
their parent dimensions. These smaller "combo" tables are then joined to the fact tables in order to improve query performance.

Persisted staging tables (_PS) contains a static copy of source table data with additional calculated columns in order to improve ETL processing.    These tables are useful when there isn't a clear incremental extract date available to handle changes that affect multiple records.  These tables are never truncated except during a full load.

Pre-staging temporary table (_TMP) Source-specific tables used as part of the ETL processes to make the source data match the standard staging table structure. These tables contain intermediate results that are created as part of the conforming process.

Monday, 19 August 2013

OBI Interview Questions



Define repository in terms of OBIEE?
Repository stores the Meta data information. The extension of the repository file is “.rpd”.   With OBIEE Server, 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. OBIEE Server can access multiple repositories                        
Repository is divided into three layer,
1. Physical –    Represents the data Sources
2. Business –   model the Data sources into Facts and Dimension and apply business logic
3. Presentation – Specifies the user’s view of the data rendered in OBIEE answers client

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 data to the Data Warehouse
4. Build a repository
5. Build dashboards and reports
6. Define security (LDAP or External table)
7. Based on performance, decide on aggregations and/or caching mechanism.
8. Testing and QA.

If you have 3 facts and 4 dimension and you need to join would you recommend joining fact with fact? If no than what is the option? Why you won’t join fact to fact?
Instead of joining fact with fact we can create one logical table (fact) and add the 3 fact tables as logical table source in the BMM layer.

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
We can have multiple connection pools for each group to avoid waiting

What is the purpose of Alias Tables?An Alias table is a physical table with the type of Alias. It is a reference to a physical table, and inherits all its column definitions and some properties from the physical table. 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:
1. To reuse an existing table more than once in your physical layer (without having to import it several times)
2. To set up multiple alias tables, each with different keys, names, or joins
3. 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.

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> select new logical column>give name for new logical column like Total cost.                                                                                                    

Can you use physical join in BMM layer?Yes we can use physical join in BMM layer.

Can you use outer join in BMM layer?Yes we can. When we are doing complex join in BMM layer in the join properties we have an option to change the type of join to left outer, right outer, full outer or inner.

What is level based metrics?Level based metrics means, having a measure pinned at a certain level of the dimension.         
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.                                                   
Ex: if you have a measure called “Dollars”, you can create a “Level Based Measure” called “Yearly Dollars” which 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.


What is logging level? Where can you set logging levels?You can enable logging level for individual users.
We can 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 Siebel Analytics 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 are different types of variables? Explain each.There are two classes of variables:
1. Repository variables
2. Session variables
Repository variables-
A repository variable persists from the time the repository is started.
Static: This value does not change until a Siebel Analytics Server administrator decides to change it.
Dynamic: The values of these variables change with the values returned by queries. These variables are linked to an initialization block. An initialization block contains a SQL query. When the repository is started the value returned by the query in the initialization block will be assigned to the dynamic variable.
Session Variables-
Session variables are created and assigned a value when each user logs on(when a new session is started). There are two types of session variables:
1. System: 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). 
Ex: To filter a column on the value of the variable LOGLEVEL set the filter to the Variable NQ_SESSION.LOGLEVEL.
2. Non-system: A common use of non-system variables is for setting user filters.                    Ex: 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. For example, to filter a column on the value of the variable ‘SalesRegion’ set the filter to the Variable NQ_SESSION.SalesRegion.

What is Authentication? How many types of authentication do we have in OBIEE?Authentication is the process by which a system verifies a user with the help of a user ID and password. It checks if user has the necessary permissions and authorizations to log in and access data. There are 4 main types of Authentication in OBIEE:
Operating system authentication
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 or 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 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 report. 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 Siebel Analytics Web users.
          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.

If you want to create new logical column where will you create (in repository or dashboard) why?It would be better if we create a new logical column in repository because if it is in repository you can use it for any report. If you create new logical column in dashboard then it is going to affect only those reports which are on that dashboard. We cannot use that new logical column for other dashboards.

What is complex join, and where it is used?                                                                  
To join a dimension table and fact table in BMM layer we use a complex 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.
In the Admin tool: 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?Set the 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?In OBIEE Server event polling tables store information about updates in the underlying databases. These tables are used for cache management. 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 cache entries corresponding to the updated tables.

Define pipeline. Did you use it in your projects?
Yes, pipelines are the stages in a particular transaction, assessment, finance, etc.

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 completing the development, users check-in the changes back to the network and merge the changes.

Can you bypass siebel analytics server security ?if so how?Yes we can by-pass by setting authentication type in NQSCONFIG file in the security section as: authentication_type=bypass_nqs.instanceconfig.xml.

What are the things you can do in the BMM layer?We apply the business login in the BMM layer like creating new logical columns, Aggregation navigation, level based metrics, time series wizard, complex join.

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 LTSs, for which sources will be coming from different Physical tables.

How do you bring/relate the aggregate tables into the Siebel analytics 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 in the content tab of the LTS.

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-> view log then run the SQL query on toad if it takes the same time even in TOAD then modify the query to reduce the query time. If the query runs normally in TOAD then we need to make changes in the repository.

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.
Ex: If you observe that most of the queries are fired on aggregated values like yearly or monthly data rather that day level data then to speed up the report we can create an aggregate table containing month level and year level data and map it to the respective logical table and set the aggregation levels in the content tab of LTS.

We have 4 dimension tables, in that 2 tables need to have hierarchies then in such a case is it mandatory to create hierarchies for all the dimension tables?No, it is not mandatory to define hierarchies to other Dimension tables.

Can you have multiple data sources in OBIEE?Yes, we can have multiple data sources of different types.

Do you know about Initialization Blocks? Can you give me an example where you used them?Initialization blocks are used for instantiating the value of a variable.
To create dynamic variable you have to create IB to write SQL statement. The result of the query would be assigned as value to the variable.

What is query repository tool?It is utility of OBIEE Admin tool
It allows you to examine the repository metadata
Examine relationship between metadata objects like which column in the presentation layer maps to which table in physical layer                                                                                
Ex: we can search for objects based on name, type.

Can you migrate the presentation layer to a different server.No, we cannot migrate only one particular layer to another server, we have to migrate the complete repository or the web catalog.

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.           Ex: the Product table contains product packaging information; and the Period table contains month, quarter, and year values. The tables which contain numeric values used for calculations are used as Fact tables.

Why do we have multiple LTS in BMM layer? What is the purpose?To improve the performance and query response time.

How do i disable cache for only 2 particular tables?In the physical layer, double click on a table on the general tab we have an option Cachable we can either enable it or disable it for that particular table.

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 create alias tables in the physical layer and use which ever columns are required.

Some More Questions.

Here is some important interview questions which will help to gain more knowledge in OBIEE.I have seen the below questions in many blogs unfortunately didn’t found solutions for that.So I have answered the below questions.Please comment your ideas so that we can rectify the mistakes.
1. What is the default location of a repository file?
A)C:\OracleBI\server\Repository
 2. How many repository files can be loaded to a BI Server simultaneously? Assume its a single server
with single instance of BI Server running just to keep things easy
A)BI Server only can handle one repository file in online mode
 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.
 7. What kind of joins would you perform in the physical layer of the repository file when opened with
Administration tool?
A.)Physical joins and Complex joins.
 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?
A.) All services are needed.
 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.
 13. How do you create outer joins in physical layer?
A.)We cannot create outer joins in Physical alyer.
 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.
27.What are the pre-requisites for using aggregate persistence wizard? What does aggregate
persistence wizard create and what does it help with?
A.)Creation and initial population of aggregates, persists them in a back-end database and configures the BI Server metadata layer so that they’re used when appropriate.
 28. 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)
A.)Yes we can import data from multiple sheets from an excel file
Steps to follow:
1.Create system DSN for Excel file
2.After creating ODBC Connection for system DSN , Go to Administration tool > File > Import > From Database > Select Data source > select the files which you want to import.
 29. What are the uses of “Execute Direct SQL” feature in Answers? Is it a good practice to allow this feature for production users?
A.)Check physical connectivity to the database and Check report or dashboard performance (Performance Tuning) ..etc….No,it will overload Production Users.
3o. How do you disable “Execute Direct SQL” feature for all the users of your repository?
A.)We can disable ” Execute Direct SQL ” by the path below:
Answers > Settings > Administration > Manage Privilege .
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 company’s 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
33.Does OBIEE support ragged hierarchies? What is the procedure to import ragged hierarchies from Essbase?
A.)OBIEE 11g supports ragged hierarchies.
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 Documentation—Tools–>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 it’s presentation server then go to Settings > Manage Session > Close all Cursors
if it’s 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.
42. What are the different hierarchy types available in OBIEE? When would you use them?
A.) Level-based hierarchies (structure hierarchies):Consists of an ordered set of two or more levels.
Dimensions with parent-child hierarchies (value hierarchies):Consists of values that define the hierarchy in a parent-child relationship and does not contain named levels
Ragged hierarchies:A hierarchy in which all the lowest-level members do not have the same depth. Skip-level hierarchy :A hierarchy in which certain members do not have values for certain higher levels.