You are on page 1of 50

CONVERTER ODI 11g > ODI 12c

From Oracle Data Integrator 11g


to Oracle Data Integrator 12c
his presentation shows a way to migrate from ODI 11g to ODI 12c, using both the Oracle
Upgrade Assistant and then the Converter D&T has developed to help fixing some
problems that remain after the migration with Oracle UA.

CONVERTER ODI 11g > ODI 12c


ODI 11g

???

ODI 12c

The idea was born when a partner told us that one of his clients was having lots of problems
during the update from ODI 11g to ODI 12c and he described this operation as a real
nightmare.

Also, from our personal experience and other colleagues experiences, a simple upgrade
between different versions of the same product can create various problems, not only during
the test of the new upgraded objects, but also thinking about their future development.

CONVERTER ODI 11g > ODI 12c

ODI 11g and ODI 12c are too different


ODI 11g

ODI 12c

The main difficulty stands on the difference between ODI 11g and ODI 12c.

ODI 11g uses interfaces, whilst ODI 12c uses mappings.


Converting an interface in an equivalent mapping is not so
straightforward, as several problems must be faced during this phase.

CONVERTER ODI 11g > ODI 12c

The ODI Upgrade Assistant


WINDOWS: %ODI_HOME%\oracle_common\upgrade\bin\ua.bat

The Upgrade Assistant (UA) is a tool


provided by Oracle, to be used to migrate
from ODI 11g to ODI 12c.

The UA is shipped with the ODI 12c


installation, and can be found in the path
(for Windows):
%ODI_HOME%\oracle_common\upgrade\bin

UA is a wizard that guides the user through


the process of migration from ODI 11g to
ODI 12c.

CONVERTER ODI 11g > ODI 12c

The ODI Upgrade Assistant

UA
acquires
the
11g
repository and all required
data, then it overwrites the
original repository with the
new 12c upgraded version.

Thus, as the official Oracle


Upgrade
Documentation
suggests, better execute a
backup of the repository
before upgrading.

CONVERTER ODI 11g > ODI 12c

The ODI Upgrade Assistant

UA migrates all repository:


topology, models, data stores, KMs,
load plans and so on.

It upgrades all the objects of the


ODI 11 repository correctly.

CONVERTER ODI 11g > ODI 12c

Unfortunately, only for one type of object: ODI Mappings (interfaces in ODI 11g) it
uses a specific style that produces many difficulties, in case of fixing, reworking or in
case of future deployments (normal operation in a Data Warehouse System).

CONVERTER ODI 11g > ODI 12c

SOME EXAMPLES

CONVERTER ODI 11g > ODI 12c

SOME EXAMPLES
An interface have a temporary
interface in it, used as a derived
table, which means - an inline
view in the enclosing query.
In this example:
MAP_ODS_CUSTOMER.0 is a
temporary interface generating
a query that will be used as an
inline view in the query generated
by MAP_ODS_CUSTOMER.1

CONVERTER ODI 11g > ODI 12c

SOME EXAMPLES
This is the temporary interface:
MAP_ODS_CUSTOMER.0.

Not necessarely the target


datastore must be created.

The target datastore will be


used as a signature in the
calling interface to map the
fields in the final target
datastore.

CONVERTER ODI 11g > ODI 12c

SOME EXAMPLES

This is the temporary


interface.

It performs a join, a
filter and a MINUS
between two dataset.

CONVERTER ODI 11g > ODI 12c

SOME EXAMPLES

The UA creates two


mappings and two
reusable mappings.

CONVERTER ODI 11g > ODI 12c

SOME EXAMPLES

The reusable mapping:


MAP_ODS_CUSTOMER.0_RMT
is never used.

CONVERTER ODI 11g > ODI 12c

SOME EXAMPLES

Only the reusable mapping:


MAP_ODS_CUSTOMER.0_RMS
is used.

The SETOP has a


problem, it
performs an UNION
instead of a MINUS.

CONVERTER ODI 11g > ODI 12c

SOME EXAMPLES
How about models?...
How about models?

Into the interface


MAP_ODS_CUSTOMER.0 the
target object
ZTEMP_SETOP14 is not a
datastore, but it will be used
as a signature to output
data in the calling interface.

CONVERTER ODI 11g > ODI 12c

SOME EXAMPLES
How about models?

In ODI 12c a datastore appearing in some mapping, must be created


in some model, so the target datastore ZTEMP_SETOP14 is created
in the model MAP_ODS_CUSTOMER.0..

CONVERTER ODI 11g > ODI 12c

TO SUMMARIZE
For an ODI interface, UA creates:
1. A model for each mapping related to a temporary interface.
2. A datastore for each one appearing in the mapping.
3. Two reusable mappings, one of them never used.

CONVERTER ODI 11g > ODI 12c

Reusable mappings are black boxes

Plus, reusable mappings


are black boxes, so noone
has the complete vision
of what the mapping
performs before opening
the reusable mapping.

CONVERTER ODI 11g > ODI 12c

Reusable mappings

Reworking a reusable mapping is harder than reworking a mapping, especially if a reusable


mapping has a dataset.

A dataset in ODI 12c works in the same way as the left pane of an interface in ODI 11g, so it is not
possible to add components from the component toolbar to the dataset of the reusable mapping.

CONVERTER ODI 11g > ODI 12c

Datasets: Convert to Flow

Typically UA creates a
mapping with a dataset every
time in the ODI 11g interface
there are transformations like
joins or filter.

For normal mappings theres


the possibility to create a
dataset, this for simulating the
old way used in ODI 11g to
connect datastores together.

CONVERTER ODI 11g > ODI 12c

Datasets: Convert to Flow

Regading the reusable mappings, in a


normal mapping it is possible to remove
the dataset simply by right clicking on it
and choosing the option Convert to
Flow.

In this way it is much easier to rework a


mapping, as the ODI 12c style can be
used for developing the new features of
the mapping.

CONVERTER ODI 11g > ODI 12c

Datasets: Convert to Flow

On
a
reusable
mapping theres no
way to remove a
dataset, so reworking
a reusable mapping
will be more difficult.

CONVERTER ODI 11g > ODI 12c

Nested logic

Lets have a look on this example:


An interface calls a temporary interface, that calls another temporary interface and so on.
It would be quite difficult to rework such an interface as the logic is nested and spread in
many places.
If someone is supposed to rework such an interface, he/she first must understand the logic
underneath, then to think how to rework it.

CONVERTER ODI 11g > ODI 12c

Nested logic

Oracle
UA
would
convert these interfaces
as nested
reusable
mappings.

In this case, reworking


this set of mapping
would not be easy.

CONVERTER ODI 11g > ODI 12c

Nested logic

UA created two reusable


mappings
for
each
temporary interface.

The .RMT one is never


used, along with a model
for each reusable mapping
containing the datastore
that in ODI 11g was a
temporary datastore.

CONVERTER ODI 11g > ODI 12c

Yet another summary


UA CREATES:
Lots of reusable mappings, two per temporary interface and only one of
them is used.
One model for each interface, containing a single datastore.
A datastore if contained in more ODI 11g interfaces, is recreated in each
respective model.

CONCLUSION: UA creates too many objects, many of them never used,


so at the end of the migration, the ODI 12c repository will be full of junk.

CONVERTER ODI 11g > ODI 12c

How about...
A migration tool that:

Migrates from ODI 11g to ODI 12c.


Migrates from an interface to a single mapping.
Creates no reusable mappings.
Creates models and datastore only if really needed.

CONVERTER ODI 11g > ODI 12c

CONVERTER ODI 11g > ODI 12c

D&T migration tool:

Migrates from ODI 11g to ODI 12c.


Migrates from an interface to a single mapping.
Creates no reusable mappings.
Creates models and datastore only if really needed.

CONVERTER ODI 11g > ODI 12c

D&T migration tool:


Is the tool used only by D&T team to provide the
Customers a service for migrating from ODI 11g to
ODI 12c.
Is run after the UA to migrate ODI 11g interfaces in a
correct way.

CONVERTER ODI 11g > ODI 12c

HOW IT WORKS

This is the Original ODI


11g repository, stored in
a database schema as a
work repository.

1. Backup the ODI 11g


repository, as it will be
overitten by UA.

2. Run ODI
Upgrade Assistant.
It will upgrade the ODI
11g repository in a ODI
12c equivalent
repository, but with
mappings containing
dataset and reusable
mappings.

3. Duplicate migrated ODI 12c repository.


Source

Rep 1

Rep 2

4. Restore the ODI 11g repository from backup.


Source

ODI 11g backup

At this stage, we have a source ODI 11g repository and two identical ODI 12c repositories.

5. Delete packages and mapping from one of the two duplicated


repositories (Rep2).

Here comes the time for the D&T Upgrade tool.


In a simple scenario it uses the ODI SDK API library
to migrate repositories.

6. Run the D&T Upgrade


tool on Rep2 - the
repository without
packages and mappings.

7. Now - run the D&T


Upgrade tool on Rep2,
where already are the
newly created mappings,
but all packages still are
missing.

8. Export all
packages from
the UA converted
repository Rep1,
using a Smart
Export.

9. Import all
packages from the
UA converted
repository (Rep1)
to the one converted
by the D&T upgrade
tool (Rep2), by using
Smart Export.

CONVERTER ODI 11g > ODI 12c

Here it is!

The Result: Now the whole logic is visible, clear and all
grouped in a single place.

CONVERTER ODI 11g > ODI 12c

...and the nested mapping?...

is converted in
a simpler way.

CONVERTER ODI 11g > ODI 12c

...now everythings in one place

The whole logic is


grouped in a single
place, readable and
easily reworkable.

CONVERTER ODI 11g > ODI 12c

Less mappings created

Oracle UA

Oracle UA + D&T migration tool

With this upgrade process,


you got less mappings with
no reusable mappings.

CONVERTER ODI 11g > ODI 12c

Less datastores created

The D&T Converter


checks if a datastore
is present before
creating it.
If a new datastore
has been already
created, it reuses it.

CONVERTER ODI 11g > ODI 12c

Time Saving and Cost Reduce

No need to rework after upgrade.


Upgraded repository fully tested.

Database & Technology

CONVERTER ODI 11g > ODI 12c

Largo Promessi Sposi 4.


20142 Milano, Italy
Phone: +39 02 8950 0080
Fax:
+39 02 8954 9736
Mobile: +39 348 6979791
Stream university
Emails:
massimo.sposaro@databtech.com
dt.marketing@databtech.net

Websites:
www.databtech.com
www.owb2odiconverter.com

OWB to ODI
Migration Group

You might also like