Oracle Data Integrator vs. Oracle Warehouse Builder: What to do, what to do?
Posted: July 13th, 2009 | Author: Uli Bethke | Filed under: ETL, Oracle, Oracle Data Integrator (ODI), Oracle Warehouse Builder | Tags: ODI OWB comparison, ODI OWB differences, oracle data integrator, Oracle Warehous Builder | 12 Comments »One of the questions that regularly comes up in the forums, or during presentations on Oracle data integration products, is on the future of Oracle Warehouse Builder and Oracle Data Integrator. People wonder which tool to use for new projects? What should be done with existing implementations? In this article we will first compare the features and functionalities of both products and then I will answer these questions.
Oracle Data Integrator Enterprise Edition
In January 2009, Oracle released a statement of direction for ODI and OWB: “Today Oracle includes Oracle Data Integrator (ODI) and Oracle Warehouse Builder (OWB) as the two components of ODI-EE and will merge them into a single unified data integration technology platform. This strategy fully preserves any existing development investments of all Oracle data integration customers and will provide a seamless, easy upgrade path from the current components to the unified platform and beyond.”
Both data integration tools will be licensed as one product, i.e. you don’t have to buy a separate license for Oracle Data Integrator and the OWB Enterprise ETL features. The Oracle Warehouse Builder core ETL features are installed with the Oracle RDBMS and remain free to use (as long as you are licensed for the RDBMS). From what I hear from Oracle they will also offer a free data integration component going forward even when the two products have merged into a unified platform.
Google Trends
Apparently Google Trends can predict the outbreak of a flu virus more accurately than traditional methods. Why not let it have a go at predicting the future of ODI and OWB. As you can see from the Google Trends chart below, we are dealing with a slow but steady increase in searches for Oracle Data Integrator. On the other hand we are seeing a slow and steady decline in queries for Oracle Warehouse Builder. Not really unexpected.
Declarative Design vs. Traditional ETL
ODI follows a declarative design approach. This is the key differentiator between the two products and the one that gives Oracle Data Integrator a clear advantage over Oracle Warehouse Builder. Declarative design expresses the logic of a computation without describing its control. What exactly does this mean? In data integration projects loading and integration strategies are very similar, e.g. in a data warehouse project 80%-90% of fact tables follow the same loading strategy: first we disable foreign key constraints and indexes, then we look up surrogate keys and finally we load the data into the fact table. In a traditional ETL approach we would create a mapping module for each individual fact table. This is very time consuming. In ODI we simply define the loading strategy in a template (this is called a knowledge module in ODI) and with the click of a mouse apply it to every fact table load. Knowledge modules are created using a mix of programming languages, such as SQL, PL/SQL, Jython, the ODI substition API, OS commands, or Java. This data integration approach is very quick to implement and extremely flexible. It essentially gives you the flexibilty of manual scripting in combination with the advantages of an ETL tool (process flows, data lineage, scheduling, impact analysis, metadata etc.).
In a project where most data flows follow a similar pattern, the declarative design approach of ODI will be able to cut down the development time for your transformations by a factor of 30-50%. In a project where each transformation is unique you will not benefit too much from the declarative design approach in terms of productivity. However, from my experience this situation is extremely rare.

Data flow in Oracle Warehouse Builder

Data flow in Oracle Data Integrator
Data servers
One of the reasons why Oracle Warehouse Builder never made it into the top spot in the Gartner Magic Quadrant for ETL tools was its limitation on Oracle as the target server. You don’t have this limitation with ODI. In ODI you can use any technology that can be accessed via JDBC as either your data source or your target.
The ELT approach
Both products are ELT tools. They don’t need a separate transformation server but use the power of the target RDBMS server for transformations. This is a key differentiator to traditional products such as Business Objects Data Integrator.
Change data capture (CDC)
Oracle Data Integrator ships with change data capture knowledge modules. It supports near real time data warehousing out of the box.
Even though ODI allows you to quickly set up CDC, you will not get far with your project without a sound understanding of the underlying change data capture technology. In an Oracle world this is Oracle streams. Oracle Warehouse Builder has no interfaces to CDC. Of course, you can use it on top of Oracle CDC as this article by Mark Rittman shows . However, most of the work needs to be done at database level.
Data Modeler
Both products ship with a basic data modeller. The ODI Common Format Designer (CDF) is ideal for prototyping as you can quickly click together your target model from your source model. This then can be forward engineered to your target data server, e.g. a data warehouse. This saves you from creating a separate source to target map document as all the relationships are stored in the repository. Once you have established the relationship between the source and target attributes, ODI automatically generates data flow interfaces for you. Another brilliant feature. The functionality of the CDF for data modelling purposes, however, is rather limited. While you can define basic functionality and logical models (attributes, constraints, table relationships etc.) ODI won’t allow you to define the physical attributes of your tables, e.g. tablespaces, partitions etc. All of this functionality is available in OWB.
OLAP
In OWB you can create multidimensional OLAP cubes directly from a relational star schema. This is done through analytic workspaces and Oracle OLAP. You can’t load directly into Essbase cubes. ODI on the other hand can directly load your data into Essbase cubes. Various knowledge modules are provided out of the box for Essbase. ODI also allows you load into Oracle OLAP cubes.
Scripting Objects
Oracle Warehouse Builder relies on OMB+ and TCL for scripting objects. This is useful for updating a lot of objects in one go, e.g. if you want to set the tablespace for a group of tables. One drawback here is that you can’t create TCL scripts from your objects. It would be a nice feature to create a script from the mappings you create in OWB. ODI relies on XML to import and export objects. In theory you can script your objects via XML and then import into ODI. Unfortunately, no documentation exists on this so this will not be straight forward. One of the new features in Oracle Data Integrator 11 will be a proper API for scripting objects. Looking forward to this.
Misc.
ODI allows you to encrypt your objects. This could be useful for third party vendors of Knowledge Modules. With ODI you also have proper version and source control built into the product. OWB allows you to take snapshots of your objects. However, this feature does not allow for version control in the traditional sense. Personally, I have found the snapshot feature awkward to use.
Available resources
When I started out on ODI in January 2008 there was very little documentation available. Available documents I found poor. This has changed completely. In my opinion the best starting point to learn about ODI is the ODI Best Practices in a Data Warehouse guide. A quick search on LinkedIn revealed that there are currently 1,469 people registered with Oracle Warehouse Builder skills. On the other hand we just have 334 users with ODI skills. On Metalink there are now three times more documents on ODI than on OWB. There is also a lot of ODI related activity on the Oracle forums. While there is more OWB knowledge and skills out there, ODI is catching up fast.
What to do then?
Over the next two years Oracle Data Integrator and Oracle Warehouse Builder will merge into one unified product. In calendar year 2011 we will have a unified platform. The comparison above has shown that out of the two products ODI has more to offer. You can expect that a lot of the functionality for the unified platform will come from ODI.
In my opinion, only tactical data integration projects that solely rely on the Oracle Warehouse Builder core ETL functionality (the stuff you get for free with the RDBMS) should be implemented using Oracle Warehouse Builder. If you are licensed for Oracle Data Integrator EE, you should use Oracle Data Integrator for any new data integration projects you start. While Oracle will offer upgrade paths for both products you can use third party tools to start your migration from OWB to ODI today. Don’t expect that this tool will completely automate a migration. It also seems that migration of process flows is not supported currently.
Any Oracle data integration consultant will need to focus and upskill on ODI functionality going forward. Why not start this exercise with my ODI Knowledge Module article on OTN.
In order to master scripting in ODI I recommend the following books.
Java BeanShell
Scripting in Java: Languages, Frameworks, and Patterns
Jython
The Definitive Guide to Jython: Python for the Java Platform.
Jython Essentials (O’Reilly Scripting)























Great research, many thanks for the nice article.
have a nice day
@lex
Nice post!
Hi ,
Good research..It has come out with the clear cut idea of the product path and features. Thx
Apoorva Awasthi
Gr8 work and good research, additional screenshots would have been much more beneficial. Many thanks
Good Work Uli, very good!
What to do?
Do nothing and don’t use either one. Both tools are depository centric and unless the Data Warehouse installation is also OWB/ODI depository centric, which most of them are not, you will create a very costly maintenance and support problem (metadata synchronization) for the organization.
Hello Uli,
your post shows a nice feature comparison of a subset of features of ODI & OWB, however, I do disagree with your analysis and recommendation.
The major problem I have with your blog entry is, that you leave the requirements of projects’ completely out of the equation when assessing the usefulness of the two Oracle tools. But looking at different application areas, everyone sees instantly that the match of project requirements versus tool features are key in order to take a decision between ODI & OWB.
When you look at data migration, transport and simple integration tasks, the feature set of ODI is a very good match, since these projects need especially rich connectivity, data transport and only moderate modeling & transformation capabilities for heterogeneous environments. Moreover, hand coding is more appropriate in projects like these, since most of them are pretty restricted in size. The footprint of these requirements shows clearly, that ODI is the right tool for that kind of job.
On the other hand, if you have a serious Data Warehouse project at hand, requirements are quite different. You need code generation and maintenance capabilities for very complex operations (pivoting, SQL*Analytics, SCD etc), tool support for database specific performance features, and modeling support for dimensional structures. These are of course only just a few typical DWH project requirements. None of these are, in my opinion and experience, sufficiently covered by ODI so far, but are fields in which OWB excels. Moreover, you typically have only one database vendor’s RDBMS as target system in DWH projects. Therefore it doesn’t hurt if your tool is focused on serving just that one vendor’s RDBMS as target as long as it knows how to handle that one’s different releases and important performance features well.
Therefore, my recommendation goes like this:
- if you have to cope with a heterogeneous target environment, have to ship data around, transform it only moderately, or have to migrate stuff, happily use ODI today.
- However, if Oracle is your target DB and you do have to do a DWH project, which is demanding regarding resources, amount of data, and transformations, go with Warehouse Builder.
Further down the road, if you want to use ODI-Knowledge Modules for extracting data from heterogeneous source and loading it into your Oracle DWH staging area, migrate to OWB 11.2 once it’s going to be released. Given the slides available on OTN, this is going to be the first step of ODI/OWB integration. It should bring together the best of both worlds. Then you can do E&L with ODI-technology, followed by modelling, T&L into Oracle targets with OWB technology, all from within OWB 11.2. Let’s just hope that Oracle will really release it, as the outlook in the May-2009 product update on OTN suggests.
Best regards,
Holger
Holger,
Thanks for your usual incisive analysis.
There’s certainly a lot of legwork in this post, and much of the detail is right, but… when the oracle’s prophesies seem obscure, the impulse to see into the future can lead us to read too much into too few signs.
As for a release of OWB 11.2, rest assured, it’s on track, and will add much of the flexibility associated with ODI to the other benefits OWB has always delivered (along with other new treats you’ll just have to wait for). We can’t say anything specific about timeframes, other than the usual “it will release with Database 11.2.”
ODI is of course gettiing a lot of attention right now, and has a prominent place in a lot of conversations, but it would be a mistake to infer from that that either tool is supplanting the other.
Each will contribute concepts and technology to future Oracle DI offerings, each will continue to be available, supported and enhanced until a future DI product is delivered, and even at that point, customers should not fear being forced to migrate away from the tool of their choice.
Each customer can therefore safely choose whichever is a better fit for their technical requirements, and know that there will be a continuity between today’s products and Oracle’s future DI offerings. License ODI-EE today, and know that investing in skills and design effort in either tool is a safe bet for the future.
-Antonio Romero, Senior PM, Oracle Data Integration
Now, the shameless plugs: To keep up with Oracle Data Integration, join our LinkedIn group and follow our blogs:
http://www.linkedin.com/groups?gid=140609
http://blogs.oracle.com/dataintegration/
http://blogs.oracle.com/warehousebuilder/
@Stan: Can you explain what you mean by depository (repository??) centric and why this creates maintenance problems?
@Holger: I agree on your statement that business requirements should drive the choice of tool.
I also agree that modelling features in ODI need improvement esp. around physical design and forward engineering. Why not bring in a FKM (Forward-engineering Knowledge Module?)?
I am negative on your analysis that OWB is a better fit for a DW project for the following reasons:
– Tool support for database features in OWB lags behind the database features, e.g. still no support in OWB 10GR2 for delete in a Merge statement (introduced in 10GR1 of the RDBMS), no support for pivot/unpivot operator (introduced in 11GR1 of RDBMS), support for DML error logging was not in sync with RDBMS release etc. In ODI you can always be one step ahead by modifying/writing a KM to benefit from database performance features immediately and still enjoy the advantages of the ETL tool such as data lineage, metadata support etc.
– Complex operations need tool support: For performance reasons really complex operations (such as multi-level inter-row calculations, analytics etc.) rarely fit the tool support of an ETL tool without awkward workarounds and resulting performance issues. Again no problem here with ODI. Hand code your KMs make full use of the database features of the target RDBMS and still enjoy the ETL tool benefits.
- From my experience it is a common requirement for near-real time feeds to the DW. Another area where ODI excels.
Stan: Can you explain what you mean by depository (repository??) centric and why this creates maintenance problems?
Hello Uli,
Yes, I meant repository.
To answer your question, I have to expand on my original comment first. Primarily, I reacted to the title of your article, regardless of how sound or meaningless the comparison is between OWB and ODI features. To me, this article is a classical example of how using a tool to support a project can become more complex than the project itself. It is frustrating enough to experience this type of situation once and with only one tool. When you expand to using two tools at the same time – even if you get many positive reactions from supposed experts – you really shouldn’t use those tools at all because it will result in a complete misunderstanding of their purpose and clients needs. This problem is related not only to OWB or ODI, but any of the numerous tools available. However, I really appreciated the very eloquent comment contributed by Holger .
I will try to explain the maintenance issue based on a real project experience.
As a consultant, I worked on a project creating a Data Warehouse using about 15 tables from an Oracle ERP application as the data source and for starters, creating one fact table and 6 to 10 dimensions. One would say that is not too complicated an assignment. The client insisted on using OWB to support the ETL process for this project. While several ETL supporting tools were considered, OWB was selected primarily based on pricing at that time. You can train an analyst/programmer using OWB in about a week. A competent analyst/developer, when working on a real project, will probably become an “expert” in a month because scripting tools with fancy GUI have been around for decades and most of us used such tools on more then on one occasion.
OWB consists of two main components: the design and runtime environments. Thus, one has to consider not only project requirements but the actual OWB environment in a particular client setup, including the client’s organization support structure. Out of the box installation might work but not too well.
The developers GUI works only on data structures copied from a run time environment into the Design Environment Repository and can’t be used without going through the repository and directly mapping to the run time environment source data and Warehouse target structures. Thus there is a need to synchronize these two environments, because overall data integrity and process integrity will hang on what is in the Repository and term repository centric.
A question arises; which environment is going to be the governing one and which one will be the subordinated one to maintain this repository centric assumption. I don’t think that the Oracle ERP applications meta data definitions will be copied from the OWB repository. Most of the time this type of data will be imported to the OWB repository.. On the other hand, it is very tempting to use all these OWB available features to create target tables and objects in OWB and deploy them into a target environment instead of creating the target environment tables outside of OWB and importing them into the OWB repository as is done with Source data objects. Once all the tables are in this repository, you can make some modifications and add some features. When that is completed, you deploy the results including packages /procedures into your target runtime environment.
Here are the specific problems that can result from these processes:
Problem 1. People who created the initial processes move on to other projects and nobody remembers why thing were done the way they are. If you are lucky and the initial application was created by somebody who is business programming oriented, there is a chance you will be able to understand the graphical representation of what was done. If the same requirement was implemented by a scientifically minded programmer, you can spend days scrolling left /right, up/down in effort to understand the whole picture. If the work was done by a creative developer only, chances are that it will be time consuming and expensive, to understand anything. Management was sold that the GUI is intuitive and self documenting (in my example). I had a case where a column had to be added to a dimension. It was not so simple as it would seem with this type of tool. The wrong option had been used to import the table from the target runtime environment and the result was a default option (truncate). The problem with a truncated dimension and a completely new set of key values can be easily identified, but to recover and analyze why it happened is a costly process. Implementing additional tool related processes to avoid similar problems in the future also is also time consuming, not to mention the fear a developer will have for some time when it is necessary to touch anything in the GUI without damaging something else.
Problem 2. The Company decides that, to comply with SOX requirements, passwords have to be changed more frequently for all systems. OWB run time module starts issuing messages denying Oracle connectivity because the source data runtime environment was sending a warning message that Oracle passwords will expire in 3 days. It can be fixed but it is frustrating, taking the user time to figure out what is happening and fixed it procedurally or in OWB GUI (complicating code). Looking for all these links and place where OWB is storing this information and redeploying it in all environments when passwords are frequently changed is really not fun.
Problem 3. The Project started when the company was using Oracle 9i. To synchronize Oracle 9i releases and patches with OWB releases and patches, it took the dba support literally months just to make it work. As always, the promise was that Oracle 10g will fix whatever wasn’t fixed under 9i. After Oracle 10g, which had features such as parallel processes and cost based optimizer was installed, unearthly things would start happening to OWB created code. Highly priced vendor consultants were engaged and the first thing they could think of was that the OWB generated code was not good code, or the server where the OWB run time module was running was at fault (hanging up system). Proving that OWB code was not a problem using the OWB tool alone is truly an impossible exercise – especially from a position at the bottom of the totem pole looking up to world of DBA gurus. At that point you have no choice but to cut the ETL related functionality (about 10% of overall code) from the OWB created package in the target runtime environment and give it to your dba to execute using SQLPlus under his id at the closest server where the schema is running. Then you have to hover over him/her and have everyone observe what GRID is showing. Big surprise. The new optimizer was ignoring hints generated by OWB , creating a somewhat reasonable plan and executing something not even closely related to that plan.. How can you effectively find this information within OWB or even test alternative hints is not apparent either. Not to mention a situation when parallel processing was turned on. Whether a client continued to use a cost based optimizer and parallel processing or not, there was a positive result. The client decided that it was not worthwhile to have these types of issues, playing referee among the groups of experts debating the merits of a number of tools. The PL/SQL code used in that performance analysis exercise was enhanced and implemented as traditional PL/SQL packages and supported by a rank and file PL/SQL developer in about two months. So a project that could have been completed in several months became literally years of a learning experience and frustration, just because a tool had been inserted without really understanding why.
It is true that I usually get involved with projects when they reach a distress level and maybe the experience of the rest of the world is as pleasant as advertised. I am not saying that all this can’t be avoided and done better, but it is my experience that it is done at considerable cost because project management will listen to his tool experts, not understanding what the issues are or even what they are talking about.
In this commentary I am not trying to address product quality, vendor support or practices. I am addressing a simple fact of creating unnecessary and really costly support issues by inserting another layer of repository based tools into the ETL process, which is often a straight forward and simple process. Probably even the vendor is realizing that for most of their client’s projects, OWB is an overkill. Thus the vendor has purchased a simpler working product, gave it new name and is trying to simplify the process. So the cycle of acquisitions, mergers and enhancements will start again unnecessarily increasing the complexity with each new release.
Regards,
Stan
Ubet,
You do have a point about OWB 10.2 features having lagged behind the DB somewhat… but 10.2 was after all released in 2006. Several patches later much of this gap has been filled.
Stan,
I feel your pain, especially around some of the politics (which is eternal)…
All,
Just a quick note on this: It’s about six weeks since my last post here, and since then OWB 11.2 has shipped, adding the promised KM support, among many other new features. So… that great uncertainty is lifted.
ubet, in such cases as there are where OWB lags support for this or that database feature, you now have the “escape hatch” of implementing or altering KMs to take advantage of the new features without abandoning OWB. Also, the near-real-time capabilities you have turned to ODI for are now available in OWB 11.2.
For customers who are already invested in OWB, there are limited reasons to move. Existing projects in particular and shops with a lot of OWB skills can leverage those by licensing ODI-EE and applying the OWB 11.2 enhancements that derive from ODI.