Thursday, January 23, 2014

ODI 12c does not support Hyperion, atleast for now.

Now, I have stopped my research on ODI 12c for a while, simply because ODI 12c does not support integration of Hyperion applications (which makes me earn my bread) for now :D
Does that mean you cannot create Interfaces err sorry mappings using ODI 12c, very well you can, the KMs, technology nodes in topology are all there. It is just that Oracle will not help you resolving issues in integration of Hyperion apps using the current crop of ODI12c, future releases will be supported.

For now, lets use ODI11g  minor version 7 for satisfying our needs.

All thanks to my senior colleague Navan who got this news for us.
http://appliedbi.blogspot.in/

More information I found regarding this here.
http://devepm.com/2013/11/13/odi-12c-excelent-for-ogg-bad-for-epm/

Cheers !!
NJ

Wednesday, January 15, 2014

Creating a very basic mapping in 12c (Interface) : Issues

Creating a mapping in ODI 12c is different from the one in ODI11g. People who are accustomed to ODI11g will be irritated by the fact that some things which were bad in 11g haven't changed and the new additions are even more complicated than the older one.

I am going to show how to create a simple mapping and as I do that, I'll list down some issues that we can normally face. (Please dont delve into the details of tables and what they are doing)

Starting with the first tab, you will see that 'Staging Area Different From Target' check option is missing. Where did it go ? We will see that later.












Dragging and dropping tables is same as older versions.On the 'Logical' Tab canvas I dragged and dropped three tables from Models tab and a 'join' component explicitly from the component tab since we have to join tables DEPT and EMP. Somehow the graphics are not rendered perfectly as you can see the Join component is not visible completely.


To create joins, drag DEPTNO column from DEPT onto the join component and DEPTNO from EMP table onto the component. This exercise will create the needed join. Now, if you see the connector properties, you will see that INPUT1 and INPUT2 are showing DEPT and EMP, now what about OUTPUT1 ?


Well, it does sound weird but all components have this INPUT and OUTPUT 'ports' whether they make sense or not (and Oracle lovingly calls it EAST and WEST)
Now, if you drag source tab column onto the target tab column (EMP.DEPTNO onto EMPDEPT_LO. DEPTNO), this port will be automatically populated and an arrow starting from out port (EAST) of Join component to the target table will be created.
That ODI 12c supporting multiple targets is an old story, but looking at the diagram below will give you a hint of how it will look.  Spare some time to observe how arrows come out from tables.
Logical flow (Mapping in ODI11g) now looks more like its competitors (if you know what I mean) and should silence critics for some time now.


There is a 'check' button to validate the mapping, if everything is alright, you can navigate to the 'Physical' tab
Now, here is the issue which even the older one had, if there is a warning or error the properties tab will show it in a single line.

Even if you reposition the tab to accommodate the issue column, the space is insufficient to view the entire message and it does not open in a separate window so that you could just copy it. There is a ridiculous work-around, hover your mouse pointer on the issue column and read the message before if disappears automatically (or take a snapshot as I did below)

Oracle definitely needs to do something about this.
Coming back to the topic, the warning was about re-considering the Staging location, (staging area different from target option). Where is this option now ?
On the Physical Tab's canvas you will have to click on the whitespace to get the properties of the mapping.


Observe the options 'Is Frozen' and 'Use Unique Temporary Object names'. These are new features and using the 'Help' option redirected me to documentation of ODI 11g. Will have to find the use of these by trial-and-error.

When everything was sorted, I tried executing the interface and it threw an error

ODI-1228: Task LKM Oracle to Oracle Pull (DB Link) (Create database link to source) fails on the target GENERIC_SQL connection ODI_TRN.
Caused By: java.sql.SQLSyntaxErrorException: ORA-01031: insufficient privileges

Please note that the tables used in the mapping are already being used in ODI 11g and it has been working fine. I observed that in ODI12c, ODI tries to create a dblink at the start of the execution and removes the link after use. So there are some extra privileges that your source and target are going to need in order to create these dblinks. To make matters worse, I could not find an option in KMs or anywhere else where I can run a mapping without creating dblinks just like in older versions.

Creating a dblink and giving extra privileges is not working, maybe I need to consult the DBA here to sort it out. But for now, this is how it is.

Next we will see how other components are used.

Cheers !

NJ

Friday, January 10, 2014

ODI 12c Mappings Introduction

I had to create a separate blog post for mappings because when I started creating a mapping (previously interface) I came to know how different it is from the previous versions.

Before we go into details of creating a mapping, lets see what all things are different from the previous versions.

I created a completely nonsensical mapping as you will see below, and trust me, for a person who is accustomed to creating interfaces in ODI for the last four years, it was infuriating
(Note: Creating Models is similar to older versions so that topic will not be elaborated)


Mapping Tab:
Observe the tabs of mapping 'TAB1' , Overview, Logical, Physical .
Now what these tabs mean in previous versions,
Overview in 12c == Overview in 11g (except that now you cant specify Execution Schema in this tab)
Logical in 12c == Mapping tab in 11g (more on the mapping tab later)
Physical in 12c == Flow tab in 11g

Components:
This is something new to 12c, sql functions have been included separately in this tab. You have to drag -n-drop or click on the mapping tab in order to use these functions, I will be covering each of them in the next few blogs (Frankly, I've been struggling to know how to use a few of them)
So far, I feel that these components are a good thing, but even people having a good experience in ODI 11g will find it a bit tedious initially. 
ODI Help (Table of contents) is a good place to search and read a brief description of these components

Properties:
This is similar to older version but with addition of some new properties and a change in the layout, take a few minutes to see what is where for the first time and you will be fine next time. And I've already started detesting this word 'Staging Location Hint' (Hint ?? seriously ??), it is the same execution location of previous version.

Mapping Tab Changes:
The biggest change in this area is the absence of a separate Target area, all datastores (source and target) now fall in the same canvas. The plus point of this is now you can have multiple datastores as target. But this feature radically changes the way associations are done. For example, if you want to create a join between two tables, dragging a column of table1 to the column of table2 will not create a join (in ODI11g), instead it will create a flow meaning table1 is source and table2 is target. To create a join you have to use the component named 'Join'. How this is achieved will be covered in the following posts, but for now, just remember that building a mapping in 12c is completely different from 11g and it is better to keep the concepts of ODI 11g aside and learn ODI12c as a new tool.

Live long and prosper !!



Thursday, January 9, 2014

ODI 12c : Models, Projects and Interfaces ... er sorry.. Mappings

Creating Models is similar to the previous version, so I will not show how it is done here, Topology manager has not changed either.

Where it gets interesting is when you create a project.


The 'Interfaces' node has now been replaced with 'Mappings'.
Importing KMs gives a prompt for entering an Unique ID.
I entered 1, and proceeded, looks like it appended 1 to the original ID

Now lets take a dig at interfaces, er sorry, mappings ... 

Oracle Data Integrator 12c : Installation, Configuration and upgrading from ODI11g

God, its amazing how fast technology evolves, just as we were trying to get a hang of ODI 11g,
ODI 12c is here and the 'blogosphere' is busy writing whats new and 'cool' in this iteration.
Refer this link for a glance:
http://www.rittmanmead.com/2013/10/oracle-data-integrator-12c-release-part-1/

I had a shot at it myself and started installing, I'll be putting down my experience of working with this new version.

The Installation :
The installable can be downloaded from Oracle's website.  Within the zip file is an html page which will tell you how to install. DO READ THE INSTRUCTIONS CAREFULLY !!

THIS BABY RUNS ONLY ON JDK 1.7 !!

To get the new studio, you have to install the ENTERPRISE INSTALLATION, standalone installation will not give you the studio of 12c.
Installation is pretty straightforward, this time it doesn't ask you to 'skip master repository connection' of an existing Repository or prompt for an agent name with port (which I think makes sense).
Thankfully there are no surprises at the time of installation.

Configuration:

The window looks like this, cool blue color is 'khool' \m/ (bad joke)


Configuring repositories is similar to 11g except that I got a warning while creating a new master repository.


I wonder what that is, I had given the necessary privileges (session, connect and resource) to the user, googling the error number wasn't fruitful, I guess I will have to dig deeper for that error, but for now it worked seamlessly. Master Repo creation worked without any error. Only one stupid warning which everyone having an engineering degree should be knowing already.


On pressing the connect button, I got this message, maybe because I already had ODI 11g  on my machine.
I said NO and proceeded, NOTE: It does take the existing version's credentials automatically.

Then, this message, I need to learn about Wallet now, I chose not to store passwords in wallet.

After that, everything was just the same as far as configuring ODI users and repositories is concerned.

Can I connect an ODI11g repository to ODI 12c studio directly ??
NO, the error you will be getting is:
oracle.odi.core.config.MasterRepositoryVersionMismatchException: ODI-10179: Client requires a repository with version 05.01.01.16 but the repository version found is 04.03.04.02.

Fortunately there is an upgrade assistant for this one as well, I did not run that (had to keep older version functional) but found a link showing how it is done

http://docs.oracle.com/middleware/1212/odi/ODIUG/tasklist.htm

Some of them have already done it. Pretty straight forward.

http://dwteam.in/upgrading-odi-11-1-1-7-repository-to-12c/

NOTE : DO TAKE A BACKUP OF YOUR DATABASE SCHEMA BEFORE TRYING IT

Next topic will be covering creating basic interfaces. Will see if its a revolution or evolution ...

Cheers !!