Handson01: Physical Layer
- What is connection pool
- Connection pool is a physical layer object ,is useful to store data base credentials like database name, username, password..etc.
- OBIEE oracle BI Server contacts data base using connection pool
- How to import views/materialized views?
- What is the isolation level in a connection pool
- It applies only For ODBC and DB2 gateways only. The value sets the transaction isolation level on each connection to the back-end database. The isolation level setting controls the default transaction locking behavior for all statements issued by a connection. Only one option can be set at a time. It remains set for that connection until it is explicitly changed.
- The following options are available:
- Dirty read. Implements dirty read (isolation level 0 locking). This is the least restrictive isolation level. When this option is set, it is possible to read uncommitted or dirty data, change values in the data, and have rows appear or disappear in the data set before the end of the transaction. Dirty data is data that needs to be cleaned before being queried to obtain correct results (for example, duplicate records, records with inconsistent naming conventions, or records with incompatible data types).
- Committed read. Specifies that shared locks are held while the data is read to avoid dirty reads. However, the data can be changed before the end of the transaction, resulting in non repeatable reads or phantom data.
- Repeatable read. Places locks on all data that is used in a query, preventing other users from updating the data. However, new phantom rows can be inserted into the data set by another user and are included in later reads in the current transaction.
- Serializable. Places a range lock on the data set, preventing other users from updating or inserting rows into the data set until the transaction is complete. This is the most restrictive of the four isolation levels. Because concurrency is lower, use this option only if necessary.
- How many connection Pools you used in your project
- It is a general question ,there is no fixed answer, however in each project we will have minimum three connection pools
- One for importing tables and execute reports
- One for execute session initialization block sql queries
- One for usage tracking purpose
- Recommended number is between 2 to 10.but justification is important.
- To get data of another schema ,then what we need to enable in connection pool
- Required fully qualified names
- DB permissions
- Can we create multiple connection pools under one database object
- Yes, we can
- What is the difference between Duplicate and Alias in physical layer
- We will use Alias in physical layer to resolve below problems
- Self Join
- To maintain naming Standards in physical layer
- Resolve loops or closed paths
- Duplicate normally used in Physical layer to create a duplicate copy of existing Select table (Opaque View) /stored Procedure object
- How many types of Joins are there in Physical layer?
- Two types
- Foreign Key join
- Equivalent to Equi join
- Accepts only = operator
- Most used join in physical layer
- Complex Join
- Equivalent to Non Equi join
- Accepts all operators like (=,<>,=>,,=…….etc)
- Less used join in Physical layer
- Can we create self join
- Can we create outer join in physical layer.
- In Physical Layer Outer join not possible ,however we can create outer join in BMM layer .
- How to remove unused objects from physical layer
- It will remove objects, which we did not use in BMM layer
- Tools menu | Utilities | Remove unused objects from physical layer
- How to synchronize physical layer objects
- What is complex join, in which scenario we use it.
- If foreign key is not possible then we will go for complex join. For example between emp and salgrade we will use complex join
- In place of non equi join ,complex join is used
- In foreign key join can we use other than equal to operator
- No
- What is Opaque view
- A SQL query or select statement is called as opaque view.
- If we need a new table then go for physical table (or) materialized view. In worst situation go for opaque view.
- Opaque views are not supported by non relational db.(example MS Excel ,XML ,ESSBASE …etc)
- If we need to call data base function then we have to go for Opaque View .
- Is deploying opaque is mandatory?
- No. but it is recommended due to below reason
- Without deploying view into database, if we use opaque view in reports then oracle BI server needs to create complex queries. To avoid complex queries oracle recommended to deploy each and every opaque view into database.
- When automatic joins will be created in physical layer.
- If we have primary key and foreign Key relation ship in database level and while importing if we enable foreign key options then automatic joins will be created .
- What is Alias
- A virtual physical table (or) reference of physical table is called as alias.
- On one physical table we can create ‘n’ no. of aliases.
- Whatever changes occurred in physical table that will immediately reflect in alias (except Key definitions)
- It is mainly useful to resolve loops
- Can we create or delete a column from Alias.
- No
- How to eliminate Circular Join or loop or closed path.
- By Using Alias
Handson02:Business Model and Mapping Layer
- What is the business model
- Is the highest-level object in the BMM layer
- Contains the business model definitions and the mappings from logical to physical tables
- Simplifies the physical schema
- Captures how users think about their businesses using their own vocabulary
- Can we create business model with single logical table, if no please let me know work around.
- Approach 1: Creating duplicate table in BMM layer
- Approach 1: Creating alias and creating join between original table and alias
- Can we create business model from multiple databases, did you created then tell me one scenario
- Yes
- Scenario: when we want to compare the Actual data with target data and these data coming from sources like oracle database and MS-Excel respectively
- What is the Logical Table Source and when we will go for multiple logical tables
- Logical table sources define the mappings from single logical table to one or more physical tables.
- A logical table contains one or more logical table source.
- The mapping between physical columns and logical columns can manage using LTS
- By integrating multiple physical tables to LTS or By integrating multiple LTS to LT we can convert snow flake schema into star schema
- When we need to integrate multiple physical tables in LTS.
- If we have snowflake schema then want to convert that into star schema then we will go for multiple logical tables.
- Did you get chance to map a logical column with multiple physical columns
- Yes, If we want to configure aggregate tables then we need to do it .
- What is logical join and why it is useful?
- A: The join defined in the BMM Layer is called logical join
- Logical join is used to defined driving table
- Logical Join is used to define Inner, Right, Left and Full outer joins
- Used to defined the cardinality
- Logical join is useful to identify dimension and fact table
- Logical join allows Oracle BI Server to make the best decision about the exact physical SQL to generate based on the logical query path.
- 7.Can we have a table without logical join?
- No
- Can we have a dimension table without primary key?
- No
- Can we copy RPD objects within the RPD and from one RPD to another RPD?
- Yes, we can copy RPD objects with in the RPD.
- We can copy one RPD to another RPD but we need to copy corresponding layers only i.e. (physical to physical, BMM to BMM and presentation to presentation)
- What is Renaming wizard and which layers can be modified.
- Renaming wizard is used to rename all objects ( example : tables and columns) of BMM and Presentation layer
Handson03:Presentation Layer
- Can we create a subject area from multiple business models
- No
- In which version of OBIEE , presentation layer supporting hierarchy object
- OBIEE 11G
- What is Aliases
- What are nested tables
- Prefix the name of the presentation folder to be nested with a hyphen and a space. or type " - > "in description of the column
- Place it after the folder in which it nests
- Can we map a presentation column with multiple logical columns
- we can not
- A report as shown is using by business
Handson04:Testing / Validating Repository
- What is global consistency check
- Consistency check is one of the processes to check whether a repository is yielding proper results in Answer reports. It checks whether;
- All logical columns are mapped correctly to physical columns.
- All logical dimension tables have a logical key.
- Are there at least two logical tables in the business model (one is a logical fact table and the other is logical dimension table with join condition).
- There are no circular logical join relationships.
- A presentation catalog exists for the business model.
- How many messages are there in consistency check manager?
- Upto OBIEE 11.1.1.5 version There are 3 messages in consistency check manager such as
- Errors
- Warnings
- Best Practices
- In OBIEE 11.1.1.6 version onwards There are 3 messages in consistency check manager such as
- Errors
- Warnings
- In OBIEE how many servers are there
- In OBIEE 11G we have 6 servers
- Oracle BI Server
- Oracle BI Presentation server
- Oracle BI Java host server
- Oracle Oracle BI Scheduler server
- Oracle BI Cluster controller server
- Web logic Server (newly added in OBIEE11G)
- What is OPMNCTL and how many servers are integrated in it.
- The Oracle Process Manager and Notification Server Control
- Oracle BI Server
- Oracle BI Presentation server
- Oracle BI Java host server
- Oracle Oracle BI Scheduler server
- Oracle BI Cluster controller server
- NQSCONFIG.INI and NQSERVER.log files are corresponding to which server.
- OBI server
- Can we load multiple RPDs in Oracle BI server
- No, we can’t
- Can we upload RPD without using EM?
- We can’t
- How many log levels are available
- Totally 8 levels (0 to 7)
- What are the log levels in development , test and production, you used in your project.
- In Development and Test we will use log level as 2
- In production we will use log level 0
- All query logs will be stored in which file and what is that file physical path
- NQQUERY.log file
- C:\OBIEE_OBIEE\instances\instance1\diagnostics\logs\OracleBIServerComponent\coreapplication_obis1
- In log level 1 can we see physical SQL query.
- No, we can not see the physical SQL query it shows logical SQL query.
- If you set logging level as 2 then it gives all log information of level 1 along with physical SQL query
- Global consistency check is not throwing any errors, then can we assume RPD is correct
- Syntax wise it is correct .Business rules wise we may have some mistake 1.
Handson05: .Adding Multiple Physical Table Sources
- Table 1 and Table 2 have no
direct join in physical layer. Can we map both in single LTS
No . - Detail table and aggregate
tables will be added as two LTS to LT. Is it right?
Yes, It is right . - Using this concept we can
convert Normalized/snow flake schema into denormalized / Star schema, is it
right ?
Yes we can do using below methods - By integrating multiple physical tables into LTS
- By integrating Multiple physical tables as multiple LTS to LT .
Handson06: Calculations
- How many types of
calculations available in BMM layer.
We can create three types of calculations
1. Creating calculation based on logical columns
2. Creating calculation based on physical columns
3. Creating calculation using Calculation Wizard
- What scenarios automatically handled
using calculation wizard.
Below two scenarios handled by using calculation wizard
1. To handle NULL values
2. To handle Divide by Zero values - A calculation which is
taking longer time then ,where we need to calculate
Request ETL team to calculate . - A calculation which is taking lesser time and reusable then ,where we need to calculate
If a calculation is reusable , simple and takes less run time then calculate in RPD . - A calculation which is taking lesser time and not reusable then ,where we need to calculate
If a calculation is taking less time and not reusable then do the calculations in the report only. - What is CAST() function?
This function changes the data type of an expression or a null literal to another data type.For example, you can cast a customer_name (a data type of Char or Varchar) or birthdate (a datetime literal). The following are the supported data types to which the value can be changed:
CHARACTER, VARCHAR, INTEGER, FLOAT, SMALLINT, DOUBLE PRECISION, DATE, TIME, TIMESTAMP, BIT, BIT VARYING
Use CAST to change to a DATE data type. Do not use TO_DATE.
Example
CAST(hiredate AS CHAR(40))
Please refer help document for all four below evaluate functions
- I have two columns in two tables, one column data type is varchar and another one is number. Then can we create foreign key join in physical layer.
Yes By using CAST() function ,we can achieve it
- What is evaluate function
EVALUATE
This function passes the specified database function with optional referenced columns as parameters to the back-end data source for evaluation. This function is intended for scalar calculations, and is useful when you want to use a specialized database function that is not supported by the Oracle BI Server, but that is understood by the underlying data source.
The embedded database function may require one or more columns. These columns are referenced by %1 ... %N within the function. The actual columns must be listed after the function.
The ability to use EVALUATE is disabled by default. To enable support for this function, change the EVALUATE_SUPPORT_LEVEL parameter in NQSConfig.INI. See Oracle Fusion Middleware System Administrator's Guide for Oracle Business Intelligence Enterprise Edition for more information.
Syntax
EVALUATE('db_function(%1...%N)' [AS data_type] [, column1, columnN])
Where:
db_function is any valid database function understood by the underlying data source.
data_type is an optional parameter that specifies the data type of the return result. Use this parameter whenever the return data type cannot be reliably predicted from the input arguments. However, do not use this parameter for type casting; if the function needs to return a particular data type, add an explicit cast. You can typically omit this parameter when the database-specific function has a return type not supported by the Oracle BI Server, but is used to generate an intermediate result that does not need to be returned to the Oracle BI Server.
column1 through columnN is an optional, comma-delimited list of columns.
Examples
This example shows an embedded database function.
SELECT EVALUATE('instr(%1, %2)', address, 'Foster City') FROM employees
Examples Using EVALUATE_AGGREGATE and EVALUATE to Leverage Unique Essbase Functions
The following examples use the EVALUATE_AGGREGATE and EVALUATE functions. Note that expressions are applied to columns in the logical table source that refers to the physical cube.Use EVALUATE_AGGREGATE to implement custom aggregations. For example, you may want to compare overall regional profit to profits for the top three products in the region. You can define a new measure to represent the profits for top three products resulting in the Logical SQL statement:
SELECT Region, Profit, EVALUATE_AGGREGATE('SUM(TopCount(%1.members, 3, %2), %3)',
Products, Profit, Profit) Top_3_prod_Profit FROM SampleBasic
The Oracle BI Server generates the following expression for the custom aggregation:
member [Measures].[MS1] AS 'SUM(Topcount([Product].Generations(6).members,3,[Measures].[Profit]),[Measures].[Profit])'
Use the EVALUATE function on projected dimensions to implement scalar functions that are computed post-aggregation. EVALUATE may change the grain of the query, if its definition makes explicit references to dimensions (or attributes) that are not in the query.
For example, if you would like to see the Profits for the top five products ranked by Sales sold in a Region, after creating the applicable measure, the resulting Logical SQL statement is as follows
SELECT Region, EVALUATE('TopCount(%1.members, 5, %2)' as VARCHAR(20), Products, Sales), Profits FROM SampleBasic
The Oracle BI Server generates the following expression to retrieve the top five products:
set [Evaluate0] as '{Topcount([Product].Generations(6).members,5,[Measures].[Sales]) }'
- Please explain how to add or subtract date columns.
We cannot perform an arithmetic operation(plus ,minus ....etc) on a DATE or TIMESTAMP. These are considered Non-numeric types. To calculate difference between two dates, OBIEE provides a TIMESTAMPDIFF function. The syntax for using the function is:
TIMESTAMPDIFF(interval,
first_date, second_date)
First_date and second_date have to
be valid values in the TIMESTAMP type.
Interval is a specified value.
Valid values for INTERVAL are:
- SQL_TSI_SECOND
- SQL_TSI_MINUTE
- SQL_TSI_HOUR
- SQL_TSI_DAY
- SQL_TSI_WEEK
- SQL_TSI_MONTH
- SQL_TSI_QUARTER
- SQL_TSI_YEAR
If the dates
are not in a valid TIMESTAMP format, use CAST function to convert values into
TIMESTAMP type. See example below:
TIMESTAMPDIFF(SQL_TSI_DAY,CAST(VALUEOF("MY_DATE_COLUMN")as
TIMESTAMP), CURRENT_DATE)
We can also
use TIMESTAMPADD function to add an interval to a date.
Example: TIMESTAMPADD(SQL_TSI_DAY, 7,
TIMESTAMP '2011-11-01 12:00:00')
10. Please explain Filter function.
Insert Filter dialog
Use this dialog to add a SQL FILTER function to a column formula in the "Edit Column Formula dialog: Column Formula tab".
For more information, see:
"Editing the Formula for a Column"
Components
Filter Function Area
Displays the SQL function in the form:
FILTER(expr USING filter_expressions)
Where:
expr is an expression that contains at least one measure column. For example, the expression "sales + 1" is allowed if "sales" is a measure column. The expression "productid" is not allowed if "productid" is a scalar attribute.
filter_expressions is a Boolean expression (evaluates to TRUE or FALSE) and does not contain any measure columns. Also, this expression cannot contain any nested queries.
Note:
If you selected some text in the Formula area before clicking Filter, then it is incorporated in the inserted SQL function, replacing the expression token (expr). For example, if you had selected "Sales Measures".Dollars before clicking Filter, then the SQL function would look like this: FILTER("Sales Measures"."Dollars" USING filter_expressions).
A complex filter statement might replace the filter_expressions token as follows:
FILTER("Sales Measures".Dollars USING ((Periods."Year" = '1999') AND ((Markets.District = 'CINCINNATI DISTRICT") OR (Markets.District = 'DENVER DISTRICT'))))
Even we can use in RPD too :)
11. Please explain Lookup function.
Lookup Functions
Multilingual schemas typically store translated fields in separate tables called lookup tables. Lookup tables contain translations for descriptor columns in several languages, while the base tables contain the data in the base language. Lookup is when a query joins the base table and lookup table to obtain the translated values for each row in the base table. A LOOKUP function is typically used in the Business Model and Mapping layer as an expression in a translated logical table column.
See the following sections in Oracle Fusion Middleware System Administrator's Guide for Oracle Business Intelligence Enterprise Edition for full information:
"Supporting Multilingual Data"
"About the LOOKUP Function Syntax"
Syntax
10. Please explain Filter function.
Insert Filter dialog
Use this dialog to add a SQL FILTER function to a column formula in the "Edit Column Formula dialog: Column Formula tab".
For more information, see:
"Editing the Formula for a Column"
Components
Filter Function Area
Displays the SQL function in the form:
FILTER(expr USING filter_expressions)
Where:
expr is an expression that contains at least one measure column. For example, the expression "sales + 1" is allowed if "sales" is a measure column. The expression "productid" is not allowed if "productid" is a scalar attribute.
filter_expressions is a Boolean expression (evaluates to TRUE or FALSE) and does not contain any measure columns. Also, this expression cannot contain any nested queries.
Note:
If you selected some text in the Formula area before clicking Filter, then it is incorporated in the inserted SQL function, replacing the expression token (expr). For example, if you had selected "Sales Measures".Dollars before clicking Filter, then the SQL function would look like this: FILTER("Sales Measures"."Dollars" USING filter_expressions).
A complex filter statement might replace the filter_expressions token as follows:
FILTER("Sales Measures".Dollars USING ((Periods."Year" = '1999') AND ((Markets.District = 'CINCINNATI DISTRICT") OR (Markets.District = 'DENVER DISTRICT'))))
Even we can use in RPD too :)
11. Please explain Lookup function.
Lookup Functions
Multilingual schemas typically store translated fields in separate tables called lookup tables. Lookup tables contain translations for descriptor columns in several languages, while the base tables contain the data in the base language. Lookup is when a query joins the base table and lookup table to obtain the translated values for each row in the base table. A LOOKUP function is typically used in the Business Model and Mapping layer as an expression in a translated logical table column.
See the following sections in Oracle Fusion Middleware System Administrator's Guide for Oracle Business Intelligence Enterprise Edition for full information:
"Supporting Multilingual Data"
"About the LOOKUP Function Syntax"
Syntax
Handson07: Hierarchies
- What is hierarchy
- Types Of hierarchies
- What is level based hierarchy
- What is parent child hierarchy
- What is unbalanced or ragged and skipped hierarchy
Sir, i have few queries:
ReplyDelete1. On one day you find that report is running slow so what steps you will take , from where u will start.
2. Opaque View: Why we do not use opaque view. what kind performance bottleneck it creates if used? An example would be helpful like creating a join with other dimension and creating a report.
3. if we have 10 prompts on a Dashboard, is it good practive to use cache.
4. Use Hierarchical Columns in Dashboard Prompt.
5. Dashboard Prompt: Period Prompt -- Jan, Feb, Mar....Dec
Want the values like -- Jan, Feb, Mar.... Dec, HY1, HY2, HY1+HY2
HY= Half Year
6. Make the default dashboard for a group of users.
7. Use of non confirmed dimension in Report along with confirmed dimension. Filter on Non confirmed dim.
8. if i have a Dashboard Prompt on country:
In report -- First i select country --India --> Shows the result for country India
Second time when i select the value as USA -- Will it use the cache or go to the database and fetch the new resultset.
9. Request Variable
10. Which options is good: Materlized view or Aggregate Table
11. first approach when you see that the report is running slow.
what can be done at OBIEE level
12. Fact less Fact example
13.how to set Dedicated Coonections for Previledged users - connection pool --> Permissions.
14. Currency conversion
15. how to manage Multiple calendars
16. user A belongs to Group A & Group B
OBI PS has one folder F1
Group A has Access to F1 but not Group B so will User a be able to access the folder.
What is a Factless Fact table?
DeleteA Fact table is a table which consists of measurements, metrics or facts of a business process. A factless fact table is a fact table that doesn't contain any facts. They contain information to capture information but not for calculation
Example:Tracking a student or employee attendance.
A request variable is used to override a session variable
DeleteHello Sir,
ReplyDeleteCan you please post the answers to my below Queries:
These are the interview questions I faced:
1) Have you worked on single server or cluster server? Also,what is standalone/Integrated environment?
2) How many records were there in your fact table? Give me a number.
3) What software did you use to raise tickets and contact oracle support? Please give me a scenario to contact oracle support?
4) Have you ever worked on UNIX environment to use OBIEE? If yes,what type of commands I should be familiar with?
5) What was the most challenging/complex report you worked on? I had given this example: http://oracle.ittoolbox.com/groups/technical-functional/oracle-bi-l/passing-parameters-in-drill-through-reports-in-obiee-11g-4578588
Should I mention even more complicated report requirement?
6) Can you please provide few lines on business requirement gathering?
7) What will you do if the report result shows wrong data? How would you resolve?
Awsome
ReplyDeleteHello Sir,
ReplyDeleteI have few obiee questions in obiee which i faced in interview ,
1.Have you done OBIEE implementation? if yes then tell me how?
2. have you done OBIEE security implementation?if yes then tell me how?
3. tell me about Low level project details?
4. what is OBIEE segmentation?
Waiting for your answer
Thanks,
Manish Dhopte