User Defined Function (UDF) in ODI
Posted by Dylan Wan on March 21, 2011
User Defined Function (UDF) is a very powerful feature from ODI.
One of features that are absent from other ETL tool is to address the need to support different database platforms. I won’t blame those ETL tools since they are not really designed for pre-package BI Apps.
Who will need to switch database platform like that?
If your data warehouse is deployed on Oracle, you can use Oracle SQL. If you are using Teredata, you can use Teradata. You know that your PeopleSoft is running on DB2, you can write the DB2 SQL. In the custom data warehouse ETL environment, switching database platforms is uncommon, one time only task. You do not need to switch among different database platforms within your code.
A prepackaged BI apps ETL developers, however, are facing different challenges. You do not know if the source apps is running on which database platform. Also, you want to give customers the choices on the database platforms to deploy the data warehouse.
ODI UDF comes very handy. You can create a UDF to use in your SQL, you can have multiple implementation of the UDF for different database platform. You can use GetDate() for MS SQL and use SYSDATE for Oracle database in the implementation, but you can create you own function such TODAY() and use in your SQL.
User Defined Function is not a new idea. You may see something similar in other tools. However, to be able to use UDF in SQL and to be able to use UDF with multiple implementations under different technologies, I only see the feature in ODI.
I won’t be surprised to see those “me too” products in the near feature.
More and more companies are moving to use prepackaged BI apps.