ODI SDK: Reporting on KM Use in Your Projects

One common use for the ODI SDK is to generate reports leveraging the information that can be mined from the repository. One of our customers is actually comparing specifications from their analysts (normalized in an Excel spreadsheet) to the code for the mappings (found in the ODI repository) and reports on discrepencies between the two. 

The example we have here is much simpler, but comes from a similar request from a different customer: how can you give developers the freedom to choose the KM they want in their interfaces, but ultimately validate that when they deviate from the corporate standards they justify their choices? In other words, how can I list which KMs are used (based on the source and target technologies) and report on deviations from the standard?

The code that we have here will parse a given project and folder, and will list the following for each interface:

  • Interface name
  • Target technology and associated CKM and IKM
  • For each dataset, the list of source sets
  • For each source set, the list of source technologies and associated LKM

In version 11.1.1.5 od ODI, you have to create an ODI procedure (using Groovy as the technology). You can then run this code against a standalone agent and the report will print in the agent console. Or you can adapt the code to print into a file (which is what you will want ultimately from a reporting perspective).

In version 11.1.1.6, you can run this code directly from the Groovy editor in the ODI studio, where you will see the printout. Unless, again, you'd rather modify the code to print into a file.

Here is a preview of a report generated in ODI 11.1.1.6 with this code:

 

Comments:

Good article. Thanks Christophe.

Gürcan.

Posted by Gurcan Orhan on January 12, 2012 at 06:04 PM PST #

Actually, it might be a good idea to produce some kind of automatically generated report with info about sources, KMs, etc for particular interface directly from ODI studio.

Because for obtaining such info not neccessary to have Groovy or Standalone agent or other staff. You can just directly read from repositories and save it to file.

Posted by guest on January 12, 2012 at 07:44 PM PST #

In the studio, you can right-click on the folder where your interfaces have been created and select the option "Print...". You can then choose what you want to print: interfaces, packages, etc. This will indeed list the KMs used in the interfaces, along with the details of the mappings and associated business rules. Actually if you take the time to enter desscriptions for your interfaces and mappings, all these end-up being consolidated in the generated PDF for a very detailed report.

Because this print option is located at the Folder level, it is easy to miss... but I can only encourage you to play with it!

I think the SDK use would be more interesting in cases where you want to automate the detection of errors, discrepencies, mis-use of components, etc. Granted the code sample that I have provided only lists the KMs, but if you can list which ones are used, you can then compare that to a list of what should be used. Or you can list only interfaces that are obviously invalid (no IKM, remote connection on the source but no LKM, "flow-control" option selected but no CKM...) These could just be remnants of tests that were performed at some point in time, but the report would give you a quick list of objects that you can remove because they have no relevance anymore with your project and are just polluting your repository. If you take this approach, I guess that the code sample would easily be transformed into a "metadata cleansing" tool...

Posted by Christophe on January 13, 2012 at 05:31 AM PST #

Chirstophe,

When will be ODI 11.1.1.6 avaialble for download ?

-Rick

Posted by guest on February 14, 2012 at 12:51 PM PST #

Rick,

You can download ODI 11.1.1.6 from this link:
http://www.oracle.com/technetwork/bdc/big-data-connectors/downloads/index.html
Look for the Oracle Data Integrator Companion 11g

-Christophe

Posted by Christophe on February 14, 2012 at 02:34 PM PST #

Christophe,

Can you point to SDK Library to delete\drop objects like Session Folders, Scenario Folders and Project ?

Unable to find the methods.

Thanks in Advance
-Joby

Posted by guest on March 02, 2012 at 09:29 AM PST #

Hi Joby

Check this posting here....
https://blogs.oracle.com/warehousebuilder/entry/odi_11g_insight_to_the

Cheers
David

Posted by David on March 05, 2012 at 10:44 AM PST #

Hi,
How to get the name of all the available IKMs,LKMs under one of the ODI project.

Thanks,
Aniket

Posted by Aniket on June 05, 2012 at 04:58 AM PDT #

Hi Aniket

You can use the getIKMs, getLKMs methods on the OdiProject class.

See the OdiProject class definition here;
http://docs.oracle.com/cd/E23943_01/apirefs.1111/e17060/oracle/odi/domain/project/OdiProject.html

Cheers
David

Posted by David on June 13, 2012 at 08:01 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

Learn the latest trends, use cases, product updates, and customer success examples for Oracle's data integration products-- including Oracle Data Integrator, Oracle GoldenGate and Oracle Enterprise Data Quality

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
2
3
5
6
7
8
9
10
12
13
14
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today