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:
[email protected][email protected]Websites:
www.databtech.com
www.owb2odiconverter.com
OWB to ODI
Migration Group