Showing posts with label OBIEE. Show all posts
Showing posts with label OBIEE. Show all posts

Monday, April 29, 2013

Multiple Fact Reporting on (Non-)Conforming dimensions – Part II

What happens when you want to filter on a non-conforming dimension?

When you filter an a non-conforming dimension, you could get a null value for the fact which has all the dimensions as conforming.
 
 
Is this not exactly how the Oracle BI-server works? We have created one logical fact table and two different logical table sources (LTS). The Oracle BI-server creates seperate queries for each LTS in a Oracle BI Answers query.
Query I:

Query I connects fact table 1 to all the dimensions, including a filter on the non-conforming dimension.
Query II:

Query II connects fact table 2 one to the conforming dimensions only. Because there is no physical relationship between fact table 2 and the non-conforming dimension, it is not possible to filter query II on  dtnc1.value3 = ’3CCC3′ as well.
The results of both queries:

Lucky enough for me Nicolas did some investigating himself to:
It looks like the most easy solution is to filter on the fact table which has all the dimensions as conforming. In this case, that would be; Fct1 Value1.

Solution you could see in Multiple Fact Reporting on (Non-)Conforming dimensions – Part III

Multiple Fact Reporting on (Non-)Conforming dimensions - Part I

There are some questions, which are popping up at the Oracle BI EE Forums regularly. One of those questions is;

*** How to model multiple facts against (non-) conforming dimensions?
I will try to work things out. Click on the images to see more detail.
Note: I am aware of the extra white space between the images. That’s not intended functionality, but lack of knowledge of  WordPress.
Picture the following:
There are two fact tables and three dimension tables. FACT_TABLE_1 has two conformed dimension tables; DIM_TABLE_CONF_1 and DIM_TABLE_CONF_2 and one non-conformed dimension table DIM_TABLE_NON_CONF_1.
FACT_TABLE_2 has two conformed dimension tables; DIM_TABLE_CONF_1 and DIM_TABLE_CONF_2.
The Physical Model would have the following structure:

Physical Diagram
Based on the Physical Model we could construct the following Logical Model:

Logical Diagram
I have created one fact table which contains Logical Table Sources (LTS) for FACT_TABLE_1 and FACT_TABLE_2

Logical Model
As you can see I have created Dimensions (Hierarchy’s) for each Dimension Table.
FACT_TABLE_2 has no physical relationship with DIM_TABLE_NON_CONF_1. Therefore you should set the logical levels for FACT_TABLE_2 to the ‘Grand Total’-level of DIM_TABLE_NON_CONF_1. This way the Oracle BI Server won’t look for a join between DIM_TABLE_NON_CONF_1 and FACT_TABLE_2.
If you want to avoid nulls, set the detail levels for the facts. Set the ‘Grand Total’-levels for the metrics as well.

Logical Table Source - Fact I

Logical Table Source - Fact II

Logical Column - Fact II
If we take a look at Oracle BI Answers, we can create a report which contains data from the following tables;
  • DIM_TABLE_CONF_1
  • DIM_TABLE_CONF_2
  • FACT_TABLE_1
  • FACT_TABLE_2 

Oracle BI Answers - Conformed Dimension
Now we can bring data from DIM_TABLE_NON_CONF_1 into this report. It is impossible to devide data from FACT_TABLE_2 over this dimension. Therefore the data will be the same for every value of this dimension.

Oracle BI Answers - (Non-) Conformed Dimension
*** Summary:
 It’s possible to report on facts and dimensions which not have a physical relationship to each other. Just make sure you create dimensions (hierarchy’s) for every dimension table. Next to that you should set the logical levels for your logical tables.

Thursday, December 27, 2012

Security in OBIEE


Types of Security in OBIEE with example

Why do we need security in OBIEE?

OBIEE is a reporting tool wherein multiple users belonging to multiple groups create multiple reports and dashboards. Reports created by a particular group of users should be visible to that particular group only or some specific data should be visible to only a specific set of people. So, to achieve this we need to have some sort of security thereby we can protect reports belonging to a group of users from the users of other groups.

Users and Groups in OBIEE

End users who make use of OBIEE for reporting need to be defined somewhere. These users can be defined either in the OBIEE RPD, External database tables, LDAP Servers or in Active directories with their respective passwords.
The users belonging to same business unit can be clubbed and Groups can be created for them. It’s not always necessary to create users in the RPD  but its necessary to create the groups in the RPD. Infact, creating several users in the RPD can be a cumbersome job and it will also increase the size of the RPD, so, according to the best practice create the users and groups on the DB(or add in AD/LDAP) and associate them with the RPD groups by creating groups of the same name on the RPD as in DB.

Authentication & Authorization

Authentication means validating the user while logging in the OBIEE application. When a user logs in the OBIEE application a request is sent to the BI Server asking that whether this user is a valid user or not. When BI Server validates the user,then only the user is able to login in the application.

Authorization means a user is authorized to view what all objects. Example, User A might be authorized to view only particular set of reports and dashboards based on the security applied.
Now we can understand these terms in detail.

Types of Security in OBIEE

Security in Oracle BI can be classified broadly into the following three types.
1. Object Level security (Authorization)
2. Data Level security (Authorization)
3. User Level Security (Authentication)


User Level Security in OBIEE
User Authentication in OBIEE
The goal of the authentication configuration is to get a confirmation of the identity of a user based on the credentials provided.
In OBIEE, the credentials provided are hold in this two variables:
  • USER 
  • PASSWORD
The authentication process in OBIEE is managed by the BI Server.
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 : you can maintain lists of users and their passwords in an external database table and use this table for authentication purposes.
  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 : You can maintain lists of users and their passwords in the Oracle BI repository using the Administration Tool. The Oracle BI Server will attempt to authenticate users against this list when they log on.

Object Level Security in OBIEE
As the name states, Object Level security refers to restricting access to OBIEE objects between different users and groups. The access to following objects can be restricted using object level security: Presentation tables, Presentation table columns, Subject Areas, Reports, Dashboards, and Project Specific shared folders.
Object-level security controls the visibility to business logical objects based on a user's role.

You can set up Object-Level Security for :

Repository level: In Presentation layer of Administration Tool, 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 Presentation 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.

Data Level Security in OBIEE
Data Level Security is basically securing the data. Users belonging to particular group should see a certain set a data whereas users outside that groups shouldn’t see that data. Example: Users belonging to Asia group should see only the data for Asia region whereas users belonging to US region should see data for US region.

Data-level security controls the visibility of data (content rendered in subject areas, dashboards, Oracle BI Answers, and so on) based on the user's association to data in the transactional system.

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

Example
Here we will look at creating and using a session variable and how to implement row level security. This is mainly used to restrict data based on the user rights. The row level security will be useful in situations like:
1. Allowing user to see data that she has access to.
2. Showing data based on current date.
3. A sales manager can be shown data in his region only. A CEO can be shown data for all regions.

In this post we look at showing units ordered in the current month. We use a security filter to filter data for the current month.
Steps:
1. The first step is to create the session variable for the current month. To do so
a. In the Administration window, click on Action - > New -> Session -> Variable.Give CURRENT_MONTH as the name of the variable. Click on 'New' near the initialization block.
b. Give CURRENT_MONTH_INIT as the name of the initialization block. Click on Edit Data Source.
c. A new window opens. Select the connection pool by using the browse button.
d. Use database as the data source type.
e.Type in the following query:" select month(curdate()); " in the default initialization string.
f. Click Ok to close the dialog.
g. In the Session variable initialization block, click on edit data target.
h. select the CURRENT_MONTH variable. Click on Ok.
i. Click on ok to create the session variable.

2. The next step is to use this session variable to filter the result for this month.
a.In the Administration tool. click on Manage -> Security.
b.Create a new User called MonthlyUser.
c. Create a new group called MonthlyUserGroup. Assign MonthlyUser to this group.
d.Open the MonthlyUserGroup dialog and click on Permissions.
e.Click the tab that says filters. Click on 'Add'
f.In the name of the filter select the name of the table that you want to apply the filter on.
g.Click on the ellipsis in the business model filter column.Apply the filter
h. The group is now created. 

3. Login to BI answers using the MonthlyUser user. Select the columns from the store database. view results. You will notice that the results show data for the current month only.If you login by a user from the administrators group, data for all months will be visible.

OBIEE 10g Installation


OBIEE 10g Installation Steps with Screenshots



Prerequisites
  1. Windows XP
  2. Current version of the Java JDK(Java Development Kit)
The JDK is required. The JRE(Java Runtime Environment) will not work.
Install Steps
  • Unzip Install Media
  • Execute Install Program 
  • Accept Security Warning
  • OBIEE Install Wizard Starts.It initializes and shows the required diskspace for  installing OBIEE.
  • Verify Requirements. Click Next to Proceed.
    • For the trivial install(It is the easiest to configure, smallest footprint install for any given version) we accept the defaults for install location. For installation type accept the default of basic. Click Next.

    • Choose Setup Type that best suits your needs.If you are installing for the first time then, Select the complete installation and Click Next.

    • Select JDK and enter OC4J Password
    For this we need to browse and select the location where we have installed the Java JDK. Enter a password for the oc4jadmin user. Note this password on installation worksheet.

    • Windows Services Setup 
    Accept the defaults as it is and click Next.This will cause the BI Server to be started automatically on reboot.

    • Select the language you prefer. Click Next

    • Review the location where OBIEE 10x will be installed and list of components/features to be installed. Click next to proceed.

    • Get a Message Regarding Installing .NET?
    • The installation proceeds

    • Success Screen

    • More Success.This will show the summary of installation.
      Our OBIEE installation is finished and will function correctly after reboot.

    • Reboot Required.

    Testing Installation

    We should see this screen at startup/login.
    • The OC4J Startup Window
    When we reboot or the user who have installed using this method logins, the OC4J container will be started. This means that when the user logs out,the OBI will no longer be accessible to users on the network. This is one of the reasons this is a trivial install not a production install

    See the Relevent information
    .

    OBIEE 11G Installation



    Installing OBIEE 11g

    To install Oracle BI EE 11g, after you have downloaded the install files, and unzipped them, you need to go to "Disk 1", and run the "setup.exe" file (on Windows; on Linux it would be the "runInstaller" file)



    This launches the Oracle Universal Installer (OUI for short). Don't get confused by the "Oracle Fusion Middleware 11g" logo at the top, since Oracle BI EE is part of the Fusion Middleware family of products.

    Since I am installing Oracle BI EE 11g on my laptop, I am going to go with the "Simple Install" option.


    There are some basic checks that the installer performs, like checking for the operating system version, the Service Pack, the available memory and disk space...


    The Middleware Home is going to be a new concept for people who have not installed Oracle products before. With this release, Oracle BI EE integrates more tightly with the Oracle way of installing products. Every product needs to be installed into an "Oracle Home". If you don't have an Oracle Home, you need to specify a new one. One thing that you will notice, which is different from other Oracle product installations, is that you do not get to specify a "name" for the Oracle Home. A system generated name is going to be assigned to this location that you specify as the Oracle Home. For the most part you do not need to concern yourself with its implications.

    You can enter any name here - like "weblogic" or "administrator" or "admin" or "abhinav" or "bigbaduser" - you get the general drift. Enter a password, and make sure you remember it, since you will need this to log into the Console, BI EE, Enterprise Manager, and just about everywhere else.


    I will go with the default options selected - i.e. select all products on offer here.


    Remember my earlier post, The RCU And What It Means For You? And remember the RCU schema name and password that you entered there? Well, you need that information here. Based on what I entered when creating the schemas for OBIEE, I will enter RCUOBIEE_BIPLATFORM as the schema username, and the corresponding password.
    But what if you skipped the RCU step and directly came here, to the Oracle BI EE 11g installer?
    Not a problem. Leave this screen where it is. Go run the RCU installer, create the schemas for BI, and then come back to this screen. But either way, you do need those schemas.

    Yeah yeah yeah. So I choose to remain ignorant.

    That's all as far as specifying options for the installer is concerned. The installer is now ready to do its stuff. You may want to save these details. Or not. Your choice.

    The installer doesn't take a whole lot of time on a server-class machine. On a hosted Linux box that I have access to, this installation process took less than half an hour, I think, or even less time. On a laptop, this is going to take longer.

    You need to be patient here. A laptop is not the best of choices when you want to run enterprise class software. But sometimes you have no choice. Like I don't have a choice. I am not going to lug a blade server with me, right? And I also need to run the Oracle Database 11g on the same machine. So that makes for more memory consumption, and more CPU usage. The good news is that RAM is cheap. As is hard disk.
    Of yes - if the configuration fails at some point, don't worry. At least initially. Click "Retry" and that should solve the problem. Most likely this is going to happen if the configuration step times out, which is likely if you are running this on a laptop machine.


    Once the configuration is completed successfully, you will notice the progress bar at 100%. That's good. And every configuration step shows a status of "Success". That's also good.



    On this last screen, you will see details pertinent to your installation. It's a good idea to save these details someplace, for reference later.

    If you click "Finish" Oracle BI EE will open in a browser window.



    See the below information

    Tuesday, December 18, 2012

    Business Intelligence challenges

                    Large and Changing Data Volumes.

                    Different Requirements

                    Ineffective Tools

     Large and Changing Data Volumes.

    First off, for your large and changing data volumes. The amount of data that you are going to be working with is going to be tremendous. And that data might not be nice and neatly packed into one data source. It might actually be spread across multiple systems, or it might be a combination of systems and files, which we have to work with. And not only that, the information that is going to be populated in this data warehouse or these data sources, never do stop. You are constantly gathering information associated with your environment. And so, the amount of information that you are going to have to sift through is going to be tremendous. And so, the data has to be organized in such a way that it allows you to able to search these multiple data sources or to be able to get through these large amounts of data in order to be able to get to the answers for which you are asking.

     Different Requirements

    Second challenge is, depending on who is asking the questions associated with the data, will determine what that data actually needs to look like, when it comes back from your data source. So, perhaps as a lower-level employee in the organization, I might need to know the lowest level of detail that is necessary in order for me to be able to do my job. But, my friend Sally, she is a Manager. She is not really concerned with the details. She may need to see only the summary-related information for which she support from a regional or a district level. And so, the data has to be set up in such a way that it supports the detail information that, perhaps, I may need to be able to fill my role, but also the summary-related information that executives or those that do not need the details, need to also be able to see, in order for them to be successful in their particular roles.

    Ineffective Tools

    Third challenge is the tool sets that you are actually using. Now, there are a lot of different tools that you can use from a business intelligence standpoint.  And a lot of them have a lot of different requirements that are placed on then in order for you to be able to get data. So, for example, you may have to know a whole lot of SQL in order to be able to get to the reports or create the reports that you need in order to be able to get to the data. You might also be limited to one single data source, consolidating all of that information into one big vast environment before you can actually create some of the reports that you are actually looking at. So, the tools that you may be forced to use, might often be static or fixed. They are not adhoc, and they do not allow for a whole lot of interaction.


    What is business intelligence?

    You hear quite a bit associated with this term Oracle BI or Business Intelligence, in general. And term business intelligence, from a layman’s standpoint, is really nothing more than taking some type of user interface application that you have and using that tool in order to be able to ask questions of data that you have stored somewhere. And that somewhere, where you have data stored, could be in a data warehouse, but it could also be in a transactional data source or it could be in a file of information; it really does not matter. But the answers that you get back from those questions that you ask the data source are going to determine some of the real-time business decisions associated with how you are going to operate your business going forward.

    And so, some of the examples associated with what you could actually query on are listed here. So, for example, show me the sales for each district by month or show me the lowest-ranked salesperson by region. And the reason that you are asking these questions is because you intend to do something with answer, and based on the answer that you are going to get back will determine your course of action going forward on how you will actually use this data, and use it to affect whatever the decisions are that you are going to make within your operation.