ODI Transformations

Hi All,
I am in the process of developing complex interfaces(mappings) using ODI.i did lot of development using other etl tool informatica.
since i am in the initial stages....could you please help me in finding ways implement following transformations in ODI.
1) Lookup tranformation
2) Insert/update Transformation
3) router transformation. etc...,
and also suggest some good reference materials on the above topics.
Thanks

Hi,
You have to work out your transformations in ODI designer .. "Diagram" and in "Flow" tabs.
Now to do
1. Lookup -- bring up the lookup tables in the datastore by reversing(same like ur source and target tables/views) and drag in the designer along with ur source for transformations. do ur txfm by either drag n drop or post ur query in the "Expression Editor" by selecting the target column.
2. Insert/Update- will be controlled by ur ODI IKM`s (Incrementel Update)
3. I dont know about router Txmf.
Visit : http://www.oracle.com/technology/products/oracle-data-integrator/10.1.3/htdocs/1013_support.html for ODI docs
Thanks

Similar Messages

  • Maintaining Master-Child relationship during ODI transformation

    ODI Gurus
    For following requirement, we need the best approach to transform data from Source to Target instance(Both Source and Target instances are running on Oracle Database)
    Tables in Source Instance
    a) Source_Master
    b) Source_Detail (One to many relationship with Source_Master)
    Tables in Target Instance
    a) Target_Master
    b) Target_Detail (One to many relationship with Target_Master)
    In ODI need to create interfaces to transform data from
    a) SOUCE_MASTER table to TARGET_MASTER table and
    b) SOUCE_DETAIL table to TARGET_DETAIL table
    NOTE: Value for Primary Key column in Target Instance tables Target_Master and Target_Detail are generated from Database Sequence.
    Once the transformation is completed using ODI, the master-child relationship should be maintained in Target Instance between Target_Master and Target_Detail table. How do we achieve this in ODI ?
    Thanks
    Uma Shankar

    For this, create the first interface for MASTER, in the mapping for the primary key you should map the database sequence, something like: MYSCHEMA.MYSEQUENCE_NEXTVAL.
    Create the second interface for DETAIL, and on the sources pane of the interface, drag the SOURCE_DETAIL and TARGET_MASTER datastores. Make the joing between the two using the keys from the source. In the Primary key mapping of the DETAIL_TARGET make sure you select the new PRIMARY KEY of the TARGET_MASTER, mapping in staging area. This "lookup" will be done in the target data server.
    If you are going to be doing updates and inserts in the target, you should make sure you set the Update Key selected for each of the targets to the same keys as on the source (obviously you won't have the target values!)
    If you are not going to do any updates, then use the IKM SQL Control Append rather than the incremental update IKM.
    You can optionally set the COMMIT option of the first interface to NO, and only commit on completion on the second interface if you want to ensure the full 'all or nothing' transactionality - but bear in mind, large volumes of uncommitted changes use resources....

  • Transformation Tools of ODI

    Hi,
    Do we have the Transformation Tools like Aggregator, Expression, Filter, Joiner etc in ODI. These tools are found in OWB and informatica.
    If these tools are not in ODI, how can we achieve this functionality.
    Thanks in Advance,
    Ram Mohan T.

    I think you're missing the tool's philosophy here.
    ODI transformations are performed by the DBMS engines (this is the idea under ELT vs. ETL). Therefore, when designing interfaces in ODI, you'd specify the transformations in the form of joins, mappings, filters using DBMS engines' expressions (SQL and DB functions).
    Please try to play with the Getting Started tutorial (available on OTN - http://otn.oracle.com/goto/odi). This will help.

  • Is it possible for ODi to do a "https post" of an xml file?

    Hi,
    We would like to use ODI to read from a VIEW and within ODI transform to a target using an XSD to generate an XML file and then do a HTTPS POST. Would be grateful for any pointers.
    we also ran into issues while transforming using a target xsd. Listed below:
    Use Case Context: In an ODI interface, Data from a database view is mapped to a target XSD schema. A package is then created, wherein, in the first step, this interface is executed. Then, in the second and final step, data transferred to the target XSD schema is saved as an XML file using OdiSqlUnload function.
    Problems faced in the above mentioned use case:
    When the data from the target XSD schema is saved as an XML file using OdiSqlUnload function, the XML does not match the XSD, which was initially imported into ODI.
    Regards
    Shema

    Ask them!  Product Feedback
    This is a user to user forum.  We are all end users like yourself.  Know one here knows what Apple is going to do.

  • ODI repository creation

    Hi Friends,
    This is reddy..I am new to ODI..I have some douts on ODI
    1) How to create the repositiory in ODI ( Step By Step Information)
    2) Notes on ODI transformations
    3) Benifits of ODI comparing to other ETL tools
    Thanks
    Ranjith

    Master Repository creation :
    Assuming that you have an database user created to hold the Master Repository.
    1. Goto the Repository Management . You can invoke it from command prompt also using oracledi\bin\repcreate.bat or repcreate.sh script.
    2. Click onto the Master repository creation
    3. Fill up the details like driver , url , user , password . This user and password is of the database user who is going to store Master Repository.
    4. Click on Test and verify it is successfully connecting .
    5. Specify an ID number for this Master Repository
    6. Choose appropriate Technology
    7. Click Ok , it should create around 55 tables in the database schema.
    Work Repository :
    1. Invoke Topology and create a connection to the Master Repository created above.
    2. Goto repository tab and right click on to the Work Repositories ---> Choose Insert Work Repository
    3. Fill up the details and provide an ID for this work repository
    4. Click OK to create the work repository

  • Dynamic SQL generation

    Hi All,
    As part of the ODI Transforms, is it possible to create dynamic sqls at the run time, which could be dependent on the data coming inside, which in turn would be looking at some kind of mapping table and create the sql dynamically.
    Is this feature possible ODI?
    Thanks in advance for your input.

    Hi Cezar Santos,
    Thanks for the reply. The scenario is given below:
    Logic to dynamically map chartfield to segment.
    A user would have access to a GUI domain value map that would allow them to map BU/Chartfield to Ledger/Segment.
    Edge App 1 (PSFT)     AIA Common Key     Edge App 2 (Retail)
    Business Unit (from SETID)     Chartfield          Segment     Ledger
    US001     ACCOUNT     1     SEGMENT1     Ledger1
    US001     DEPARTMENT     2     SEGMENT2     Ledger1
    US001     PRODUCT     3     SEGMENT3     Ledger1
    US001     OPERATING_UNIT     4     SEGMENT4     Ledger1
    US002     OPERATING_UNIT     5     SEGMENT2     Ledger2
    US002     ACCOUNT     6     SEGMENT3     Ledger2
    US002     DEPARTMENT     7     SEGMENT4     Ledger2
    US003     OPERATING_UNIT     8     SEGMENT1     Ledger3
    The transformation happens inside the XFORM view by using an alias to select the columns from RETAIL_STG. Once the aliases are applied, the view can be mapped one to one with the PSFT_STG table.
    Use ODI to select unique Ledgers from RETAIL_STG.
    Execute transformation and transportation of data.
    Move to next Ledger and repeat.
    For US001/Ledger1
    SELECT LEDGER AS BUSINESS_UNIT, SEGMENT1 AS ACCOUNT, SEGMENT2 AS DEPARTMENT, SEGMENT3 AS PRODUCT, SEGMENT4 AS OPERATING UNIT FROM RETAIL_STG WHERE LEDGER = “Ledger1”
    For US002/Ledger2
    SELECT LEDGER AS BUSINESS_UNIT, SEGMENT3 AS ACCOUNT, SEGMENT4 AS DEPARTMENT, ‘ ‘, SEGMENT2 AS OPERATING UNIT FROM RETAIL_STG WHERE LEDGER = “Ledger2”
    For US003/Ledger3
    SELECT LEDGER AS BUSINESS_UNIT, ‘ ‘,’ ‘, ‘ ‘, SEGMENT1 AS OPERATING UNIT FROM RETAIL_STG WHERE LEDGER = “Ledger3”
    Kindly provide your thoughts. If you have questions, please let me know.
    Thanks.

  • What are the different type of transformations in ODI?

    Hi all,
    I'm new to ODI tool.My source is Flat files and target is Teradata.Please tell me what are the knowledge modules i have to use?
    In ODI tool what are the different types of transformatios are there.Advance thanks
    Regards
    suresh

    Hi,
    Check the following KMs
    LKM File to Teradata
    IKM File to Teradata
    ODI have some basic transformation like Joiner, Filter etc .
    You can refer the User Guide for details about these transformations .
    Thanks,
    Sutirtha

  • How to handle error for a file to file transform in ODI

    I am doing a lab for file to file transformation where source = CSV file and target = Flat file.
    1) When I am changing the datatype in source two files are getting created where one having the errored out data and the other having the errored message, how how to handle the errored data?
    2) If the target path is changed the session in ODI is showing as completed, it should error out. Here no files are created in source as earlier. Hoe to handle this type of error?

    Hi,
    I have used the following KMs in my transformation with the following options:
    IKM SQL Incremental Update
    INSERT    <Default>:true
    UPDATE    <Default>:true
    COMMIT    <Default>:true
    SYNC_JRN_DELETE    <Default>:true
    FLOW_CONTROL    <Default>:true
    RECYCLE_ERRORS    <Default>:false
    STATIC_CONTROL    <Default>:false
    TRUNCATE    <Default>:false
    DELETE_ALL    <Default>:false
    CREATE_TARG_TABLE    <Default>:false
    DELETE_TEMPORARY_OBJECTS     <Default>:true
    LKM SQL to SQL
    DELETE_TEMPORARY_OBJECTS    <Default>:true
    CKM Oracle
    DROP_ERROR_TABLE    <Default>:false
    DROP_CHECK_TABLE    <Default>:false
    CREATE_ERROR_INDEX    <Default>:true
    COMPATIBLE    <Default>:9
    VALIDATE    <Default>:false
    ENABLE_EDITION_SUPPORT    <Default>:false
    UPGRADE_ERROR_TABLE    true

  • How to handle error for a Db Table to Db table transform in ODI

    Hi,
    I have created two table in two different schema source and target, where there is a field for e.g.- place where the datatype is varchar2 and data inserted is string.
    In designer model of ODI i have put the type of place as number in both source and target and accordingly done the mapping.
    When it is executed it should give an error, but it got completed but no data is inserted neither in target table nor in error table in the target schema(E$_TARGET_TEST which is created automatically).
    Why the error is not given and how to handle such type of error..
    Please help.
    The codes for source and target tables are as follows:
    source table code:
    CREATE TABLE "DEF"."SOURCE_TEST"
        "EMP_ID"   NUMBER(9,0),
        "EMP_NAME" VARCHAR2(20 BYTE),
        "SAL"      NUMBER(9,0),
        "PLACE"    VARCHAR2(10 BYTE),
        PRIMARY KEY ("EMP_ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE
    inserted data:
    INSERT INTO "DEF"."SOURCE_TEST" (EMP_ID, EMP_NAME, SAL, PLACE) VALUES ('1', 'ani', '12000', 'kol')
    INSERT INTO "DEF"."SOURCE_TEST" (EMP_ID, EMP_NAME, SAL, PLACE) VALUES ('2', 'priya', '15000', 'jad')
    target table code:
    CREATE TABLE "ABC"."TARGET_TEST"
        "EMP_ID"     NUMBER(9,0),
        "EMP_NAME"   VARCHAR2(20 BYTE),
        "YEARLY_SAL" NUMBER(9,0),
        "BONUS"      NUMBER(9,0),
        "PLACE"      VARCHAR2(10 BYTE),
        PRIMARY KEY ("EMP_ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE

    Hi,
    I have used the following KMs in my transformation with the following options:
    IKM SQL Incremental Update
    INSERT    <Default>:true
    UPDATE    <Default>:true
    COMMIT    <Default>:true
    SYNC_JRN_DELETE    <Default>:true
    FLOW_CONTROL    <Default>:true
    RECYCLE_ERRORS    <Default>:false
    STATIC_CONTROL    <Default>:false
    TRUNCATE    <Default>:false
    DELETE_ALL    <Default>:false
    CREATE_TARG_TABLE    <Default>:false
    DELETE_TEMPORARY_OBJECTS     <Default>:true
    LKM SQL to SQL
    DELETE_TEMPORARY_OBJECTS    <Default>:true
    CKM Oracle
    DROP_ERROR_TABLE    <Default>:false
    DROP_CHECK_TABLE    <Default>:false
    CREATE_ERROR_INDEX    <Default>:true
    COMPATIBLE    <Default>:9
    VALIDATE    <Default>:false
    ENABLE_EDITION_SUPPORT    <Default>:false
    UPGRADE_ERROR_TABLE    true

  • Can we replicate Informatica Lookup transformation in ODI Interface?

    So was just wondering if we could replicate a lookup transformation in an ODI join of some sort where in only one value is returned for multiple matches of the same item....something like a max for a group or something while joining 2 tables...
    So for example I have 2 tables...A columns (Attendee_id,xyx,byx)
    B columns (partnerid,attendee_id,xyz,bxc)
    I want to join table A and B on Attendee_id and get the partner_id---but I want only one record in case of multiple matches for a particular attendee_id
    can we do this??

    No responses yet...Ive tried doing a left outer join...but it still returns all the matches...I want to return only one record....ne help from the xperts?

  • XmError: 7000 ODI XML Transformation That Can Be Executed Within a BPEL Pro

    Hi iam sudhakar
    iam using xml file as source and target and one csv file at the source through demo given in oracle site
    facing problem loading data in taget xml file
    source xml file contains
    client_id,
    address
    and othercolums
    csv file source contains
    client_id
    new_address
    row_id
    target xml(same as source) file is
    client_id
    address
    and othe rcolums
    iam just joining xml source and file as left outer join
    problem is unable recive the data from file to the target xml file and it not showing any errpors
    only xml data only storing in target xml file
    and
    set sql to sql
    sql to sql append
    filq to sql
    After that i have created variable the opened sql to sql append
    in detail tab
    ia have written create XMLFILE (NAME OF THE VARIABLE ) FROM SCHEMA geo
    Then I have created package
    i joined variable and interface then excuted
    In operator it showing errors
    Sunopsis.jdbx.xml....
    pls send the solution how to do
    ODI XML Transformation That Can Be Executed Within a BPEL Pro
    thanks
    user11366851

    I tried According to ur suggestion ,it is not working
    Actually Iam doing Second demos in oracle data integrator in oracle site
    http://www.oracle.com/technology/obe/fusion_middleware/odi/ODIxml_BPEL/ODIxml_BPEL.htm
    In this demo iam facing problem with coalesce function it is used in target data shore(address column)
    pls tell the steps from starting onwards.......
    thanks and regards
    user11366851

  • Data Loss in DB to DB Transformation in ODI

    Hi,
    I am facing data loss when I am trying a transformation for a DB to DB mapping in ODI.
    I have two tables in two different schemas with the following specifications. In ODI designer model of i have put the type of place as number in target and place as varchar2 for source and accordingly done the mapping.It works successfully when i am putting the data as ('12', 'ani', '12000', '55').
    Now for testing I am giving the datas as ('1', 'ani', '12000', '55') and ('2', 'priya', '15000', '65t') and when I am executing it is giving the error as expected(ORA-01722: invalid number) in the task (Insert flow into I$ table). My C$ table is populated with the datas from source. But E$,I$ and target tables are not populated with the data.
    Now when I am puttting data in source as ('3', 'shubham', '12000', '56') and ('4', 'shan', '12000', '59') it is getting completed successfully , datas from C$ tables are deleted and data is inserted into the target table.
    Now my question is where are the datas ('1', 'ani', '12000', '55') and ('2', 'priya', '15000', '65t') gone. If they are lost what is the recoverable table so that no data loss takes place.
    The codes for source and target tables are as follows:
    source table code:
    CREATE TABLE "DEF"."SOURCE_TEST"
        "EMP_ID"   NUMBER(9,0),
        "EMP_NAME" VARCHAR2(20 BYTE),
        "SAL"      NUMBER(9,0),
        "PLACE"    VARCHAR2(10 BYTE),
        PRIMARY KEY ("EMP_ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE
    inserted data:
    INSERT INTO "DEF"."SOURCE_TEST" (EMP_ID, EMP_NAME, SAL, PLACE) VALUES ('1', 'ani', '12000', '55')
    INSERT INTO "DEF"."SOURCE_TEST" (EMP_ID, EMP_NAME, SAL, PLACE) VALUES ('2', 'priya', '15000', '65t')
    Target table code:
    CREATE TABLE "ABC"."TARGET_TEST"
        "EMP_ID"     NUMBER(9,0),
        "EMP_NAME"   VARCHAR2(20 BYTE),
        "YEARLY_SAL" NUMBER(9,0),
        "BONUS"      NUMBER(9,0),
        "PLACE"      NUMBER(9,0),
        PRIMARY KEY ("EMP_ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE
    Thanks.

    So, first you have data in "DEF"."SOURCE_TEST".
    You then run your interface, and the data is moved into "ABC"."TARGET_TEST" if the interface executes successfully with no errors.
    Correct? - no data loss
    But if you're saying that you need to handle records which are going to cause the "invalid number" error, then you should read up on 'flow' and 'static' control and how to flag errors before loading them. Flow and Static Control allows ODI to identify erroneous records prior to loading - they'll be put in the E$ table for you to deal with later.
    If you haven't already, I'd encourage you to take a look at the documentation on this:
    Implementing Data Quality Control

  • Use of Trace key in transformer and parser of ODI Data Quality

    Hi All,
    Can someone explain to me the significance of Trace key in the transformer and parser processes (modules) in the ODI data profiling and quality part.
    I have read all the documentation present of the ODI dataquality getting started and the user guide. I was not able to find any answer.
    It would be great anyone can answer this question.
    Thanks in advance,
    Chapanna

    Hi Julien,
    The Trace key option is present in the "transformer" and "transformer address reconstructor" steps when executing an ODQ Name and Address Quality project.
    The purpose of this trace key is to help developer to easily debug and identify records that have incorrectly transformed. A primary key/surrogate key is usually chosen as the trace key to facilitate the debugging process by identifying the exact record.
    Thanks,
    Chapanna

  • Aggregator Transformation in ODI

    Hi,
    How do i implement aggragation using ODI interfaces...
    transform the data accoridng to aggregator functions like
    MIN
    MAX
    AVG
    COUNT
    FIRST
    LAST
    MEDIAN
    PERCENTILE
    STDDEV
    SUM
    VARIANCE
    where do i specify the columns to be included in the group by function....
    for example in informatica we have aggreagator tranformation wherein we can specify the columns to be cinsodered in group by...
    Thanks

    Hi Ace2,
    When i use the aggregator function in the expression editor of the target column....i can see the group by function in the SQL in operator...
    but group by has all the other columns...
    say i have 10columns in my table....when i applicaed sum(coln1) then it is generationg the4 SQL as
    select sun(coln1)
    from table
    gorup by coln2 thru coln10
    i wqould like to specify only some of the columns in the group by clause....
    Thanks
    Is there any option to attach the screenshots here in this discussion forum.
    Edited by: user4315565 on Mar 22, 2010 3:51 PM

  • ODI - Set Based Transformations

    I'm a Business Intelligence SC and have a slide on ELT and ODI that highlights three reasons by performance is good.
    1) Leverage Set-based transformations
    2) Improved performance for loading, no network hop
    3) Takes advantage of existing hardware
    I do not know how to explain Set Based Transformations. Is there someone that can explain how I can explain thisfor a non-ELT expert/layperson?
    Regards,
    Beth Rodgers
    [email protected]

    Since most of your queries are done by the RDBMS, you can load directly a set (of rows) instead of doing that row by row.
    Set-based is in opposition with row-based and is of usually faster.
    Hope it helps.
    Regards,
    JeromeFr

Maybe you are looking for

  • Can't Restore Ipod...error message

    I presume I need to restore my 5th gen Ipod as I can't sync it with itunes. However I also can't restore it. I get a 1418 error message, also had a -50 error message too. It has worked once since i got it, i synced it with a mates computer. But I can

  • Activity Allocation in PA30

    Hi All, I'm trying to create a Subtype of attendance in PA30, But when I puch the button "Activity Allocation" and filling all required fields, I have a pop up "Create a master data record for CostCenter/ActivityType", can any one tell me what can I

  • Strange Problem with P67A-GD65

    Hi just got this board along with a 2500k and 8gb corsair xms3. Im getting a strange problem with the board as it when its supposed to be rebooting it just shuts down. Ive flashed it to the latest 1.6 bios before anything just to be safe which went o

  • My icons were doing the twist today....

    They were were all shaking and my old school dialer was x'd out, hit the sleep button and restarted and they stoped. What's this all about? Anyone?

  • Mac Pro + 10.6.8 - gray screen with a forbidden sign & "still waiting for root device"

    Hi everyone, I've a Mac Pro Early 2008 Dual Xeon which runs 10.6.8  version of OS X (Snow Leopard) After a recent reboot the system won't come up, it just hangs displaying a gray screen with a forbidden sign instead and the gray spinner spinning fore