Creating fact Table in ODI

I just started working in ODI sometime back.
But getting problem while creating a fact table.
In datstore i am creating foreign keys(i.e Reference Key) for the fact table which have respective parent table and primary key.
but after executing the interface foreign key is not being created in the database.
Can anyone solve my problem for creating foreign key in fact table?
thanks
Gourisankar
Edited by: user10220907 on Oct 15, 2008 9:31 PM

Hi
My target Dimension:T_Comapany where Comp_SKEY is a Surrogate key which is mapped to a sequence.
My Fact Table :T_Fact_Sales where Company_Key is a column
My requirement is to map the T_Comapany.Comp_SKEY(Surrogate Key) to T_Fact_Sales.Company_Key(Foreign Key)
There are some other measures which i am mapping them in interface.
Can anyone explain the procedure how to map Surrogate KEY of a dimension table to fact table???
Thanks in advance
regards
Gourisankar
Edited by: user10220907 on Oct 29, 2008 10:06 PM

Similar Messages

  • Create target table using ODI model

    Hi all,
    I am new to ODI. I am trying export RDBMS table to RDBMS table from source to target.
    whether we need to create target table structure in trg schema or we can create using obi trg model by selecting new datastore.
    In owb while loading target tables are created and data will be loaded.
    Pls help me regarding this.
    thanks in advance.

    Hi
    You can create it in both ways.if you create datastore by using ODI you must select create target table option in flow while loading to target.

  • Dimension which belongs to only one of the several fact tables

    Hi,
    I'm newbie in BI. I have good knowledge of DW and Administration (OCP).
    Firstly could you give me, please some link expalining aspects of creating "Business Model And Mapping" better than SE Tutoarial.
    Now how my problems looks like :
    I have several fact tables and dimensions.
    But not all dimensions are shared among all facts.
    So when i try to put in Answers measurements from all facts it's ok - results are retrieved.
    But when i try to add to report some Dimensions attributes which belongs to only one of the facts all facts measurements are gone except measurements for fact table to which dimension attribute is linked to.
    I think i know what is the reason but i don't know how to simply solve it :
    Below is session trace excerpt only with facts measurements :
    RqList
    Liczba Transakcji:[DAggr(Fakty - Transakcje (ZSFK).Liczba Transakcji by [ Słownik - Daty.Nr Miesiąca, Słownik - Daty.Miesiąc Rozliczenia, Słownik - Outlety.Outlet Numer (MID), Słownik - Outlety.Outlet Nazwa, Słownik - Terminale.Nr Terminala, Słownik - Daty.Rok Rozliczenia] )] as c7 GB,
    Kwota Opłaty Netto:[DAggr(Fakty - Opłaty za Terminale (CBD).Kwota Opłaty Netto by [ Słownik - Daty.Nr Miesiąca, Słownik - Daty.Miesiąc Rozliczenia, Słownik - Outlety.Outlet Numer (MID), Słownik - Outlety.Outlet Nazwa, Słownik - Terminale.Nr Terminala, Słownik - Daty.Rok Rozliczenia] )] as c11 GB,
    Below iis session trace excerpt with facts measurements and added dimension attribute:
    RqList
    Liczba Transakcji:[DAggr(Fakty - Transakcje (ZSFK).Liczba Transakcji by [ Słownik - Rodzaje Walut.KOD_WALUTY, Słownik - Daty.Nr Miesiąca, Słownik - Daty.Miesiąc Rozliczenia, Słownik - Outlety.Outlet Numer (MID), Słownik - Outlety.Outlet Nazwa, Słownik - Terminale.Nr Terminala, Słownik - Daty.Rok Rozliczenia] )] as c7 GB,
    Kwota Opłaty Netto:[DAggr(Fakty - Opłaty za Terminale (CBD).Kwota Opłaty Netto by [ Słownik - Rodzaje Walut.KOD_WALUTY, Słownik - Daty.Nr Miesiąca, Słownik - Daty.Miesiąc Rozliczenia, Słownik - Outlety.Outlet Numer (MID), Słownik - Outlety.Outlet Nazwa, Słownik - Terminale.Nr Terminala, Słownik - Daty.Rok Rozliczenia] )] as c12 GB,
    Second plan is the plan when report retrieves only results for one fact table and null's for others
    Problem is with attribute : "Słownik - Rodzaje Walut.KOD_WALUTY" which is from dimension which belongs only to one fact table.
    So other fact table are not linked to this dimension and therefore this plan cannot retrieve results for them.
    It is obvious that some of the facts cannot share some dimensions with others but i would like to join them on other common attribute
    and my question is how ?
    Thanks's in advance Arkadiusz Masny
    Edited by: Arkadiusz Masny on Dec 10, 2009 6:49 AM

    It's normal behavior. How would fact measure know the value for accurate "non-fact" dimension
    Workaround:
    First solution is:
    Add into logical source of each fact (in logical layer) tables to which belongs dimension attribute and join dimenstion to that fact.
    Second you may:
    Create fact table which join all needed dimensions with some useless fact ( i.e. count). Next you have to set option "Implicit Fact Column" in presentation catalog to use this fact table.
    I can explain it to you in Polish by mail or phone
    You bring me a next topic for my blog (in Polish) http://obiee.pl so I'll write sth about such behavior :)
    Regards

  • PL/SQL- Problem in creating a partitioned fact table using select as syntax

    Hi All,
    I am trying to create a clone(mdccma.fact_pax_bkng_t) of existing fact table (mdccma.fact_pax_bkng) using dynamic pl/sql. However, pl/sql anonymous block errors out with following error:
    SQL> Connected.
    SQL> SQL> DECLARE
    ERROR at line 1:
    ORA-00911: invalid character
    ORA-06512: at "SYS.DBMS_SYS_SQL", line 1608
    ORA-06512: at "SYS.DBMS_SQL", line 33
    ORA-06512: at line 50
    Here is pl/sql block:
    -- CREATING FPB_T
    DECLARE
    v_owner VARCHAR2(32) := 'MDCCMA';
    v_table_original VARCHAR2(32) := 'FACT_PAX_BKNG';
    v_table VARCHAR2(32) := 'FACT_PAX_BKNG_T';
    v_tblspc VARCHAR2(32) := v_owner||'_DATA';
    CURSOR c_parts IS SELECT TABLESPACE_NAME, PARTITION_NAME,HIGH_VALUE, ROW_NUMBER() OVER (ORDER BY PARTITION_NAME) AS ROWNUMBER
    FROM USER_TAB_PARTITIONS
    WHERE TABLE_NAME = v_table_original
    ORDER BY PARTITION_NAME;
    v_cmd CLOB := EMPTY_CLOB();
    v_cmd3 varchar2(300) := 'CREATE TABLE ' ||v_owner||'.'||v_table||' TABLESPACE '||v_tblspc
    ||' NOLOGGING PARTITION BY RANGE'||'(' ||'SNAPSHOT_DTM '||')' ||'(';
    v_part VARCHAR2(32);
    v_tblspc_name VARCHAR2(32);
    v_row number;
    v_value LONG;
    v_tmp varchar2(20000);
    v_cur INTEGER;
    v_ret NUMBER;
    v_sql DBMS_SQL.VARCHAR2S;
    v_upperbound NUMBER;
    BEGIN
    v_cmd := v_cmd3;
    OPEN c_parts;
    FETCH c_parts INTO v_tblspc_name, v_part,v_value, v_row;
    WHILE c_parts%FOUND
    LOOP
    IF (v_row = 1) THEN
    v_tmp := ' PARTITION '||v_part||' VALUES LESS THAN ' ||'('|| v_value||')'||' NOLOGGING TABLESPACE '||v_tblspc_name;
    ELSE
    v_tmp := ', PARTITION '||v_part||' VALUES LESS THAN ' ||'('|| v_value||')'||' NOLOGGING TABLESPACE '||v_tblspc_name;
    END IF;
    v_cmd := v_cmd || v_tmp;
    -- DBMS_OUTPUT.PUT_LINE(v_cmd);
    FETCH c_parts INTO v_tblspc_name, v_part,v_value, v_row;
    END LOOP;
    -- DBMS_OUTPUT.PUT_LINE('Length:'||DBMS_LOB.GETLENGTH(v_cmd));
    v_cmd := v_cmd||')'||' AS SELECT ' || '*'||' FROM ' || v_owner||'.'|| v_table_original ||' WHERE '||'1'||'='||'2'||';';
    v_upperbound := CEIL(DBMS_LOB.GETLENGTH(v_cmd)/256);
    FOR i IN 1..v_upperbound
    LOOP
    v_sql(i) := DBMS_LOB.SUBSTR(v_cmd
    ,256 -- amount
    ,((i-1)*256)+1 -- offset
    END LOOP;
    v_cur := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(v_cur, v_sql, 1, v_upperbound, FALSE, DBMS_SQL.NATIVE);
    v_ret := DBMS_SQL.EXECUTE(v_cur);
    CLOSE c_parts;
    DBMS_OUTPUT.PUT_LINE(v_cmd);
    -- EXECUTE IMMEDIATE v_cmd ;
    END;
    The above pl/sql creates a DDL for partitioned fact table(new) based on an existing fact table and get executes through CLOB.
    Please look into the issue and let me know any changes or modifications/suggestions that are required to fix the issue. Any help is appreciated.
    Thank You,
    Sudheer

    Think this is your problem:
    v_cmd := v_cmd||')'||' AS SELECT ' || '*'||' FROM ' || v_owner||'.'|| v_table_original ||' WHERE '||'1'||'='||'2'||';';Remove the SQL terminator ';' ... dynamic SQL doesn't require it, try this instead:
    v_cmd := v_cmd||')'||' AS SELECT ' || '*'||' FROM ' || v_owner||'.'|| v_table_original ||' WHERE '||'1'||'='||'2';Thanks
    Paul

  • How to create a ROLAP Cube that has two fact tables.

    I want to know if it is possible to create a ROLAP Cube with two fact tables.
    Suppose that I have these two star schemas:
    The first star schema has only a measure and a time dimension. The time dimension has three levels (Year -> Month -> Day)
    The second star schema has the same measure of the first schema and a time dimension. In this schema the time dimension has only two levels (Year -> Month). The values of the measure of this schema come from the first schema, this is, the value of the measure for a defined year and month results of the sum of all fact values of the first schema, that have the same year and month.
    I want to know if is possible to create a ROLAP cube that can get the information of the two star schemas, according to the level that the user are consulting.
    For example, if the user consults the cube with "OracleBI Spreadsheet Add-In", and if the user is consulting the first two levels (Year and Month), then the ROLAP cube would get the information of the second star schema.
    But if the user does a drill down in a month to get information of the days, then the ROLAP cube would get the information of the first star schema.
    Is it possible to do this?
    Regards,
    Rui Torres

    I'm not exactly sure what you want to do. Sorry if I get this wrong.
    You have two fact tables, one with data values at the day, month and year levels and a second fact table with data values at just the month and year levels. If this is the case, in the CWM2 APIs or OWB Paris, you would create a view that joins the two tables together and then map this view to the ROLAP cube.
    For CWM2 details, please refer to the Oracle OLAP Reference.

  • Creating Time Dimension from date columns in fact tables.

    I remember watching a demo from a BI Tool a couple years ago, wich I swear was OBIEE, and the presentator stated it was possible to create a Time Dimension in the admin tool, based on a date column in other table.
    Can you guys tell me if there's such functionality in OBIEE?
    If so, how could I achieve that?!
    Thanks in advance!
    Marcos

    hi,
    You are trying to make Fact table as Dim table ???
    Fact table has some dim columns??
    We can do this by making a fact table as dim table ,create a dim hierarchy on that table
    Year level :Extract(year from fact_date_column)
    Month and year  level:CAST (Extract(month from fact_date_column) As CHAR(5) ) || CAST (Extract(yearfrom fact_date_column) As CHAR(5) )
    Like this
    But,be careful while doing this make sure that all joins and content levels are good
    As per my knowledge this is not a good way,Experts can add some words lets see!!!!!! :-)
    thanks,
    saichand.v

  • How to create unique key column in ROLAP fact table?

    Hi all,
    Is there a way to create a single column primary key (or unique index) on my ROLAP cube (and fact tables) in OWB? if so, what I should do in my mappings?
    Thanks!
    - Andrew

    Have you all conformed dimensions between the two facts?

  • How to create logical fact table in BMM layer ?

    Hello,
    I have 3 Dimension table - 2 are in one schema and last is another schema. Using this 3 dimension tables, I need to create a logical fact table.
    So, my question is whether we can create this fact table by joining these 3 dimension table which are in 2 different schema s ?
    Thanks

    Fiaz,
    you are correct. We can use tables from different subject area to create a report. However, my question was related to rpd design. Sorry, I was not very clear about the queries earlier.
    Here is the whole scenario in the physical layer of the rpd
    Table name      Databse name      Connection pool name      Schema name
    AV          AV_PXRPAM     AVAILABILITY          CRMODDEV
    OUTAGE          AV_PXRPAM     AVAILABILITY          CRMODDEV
    COMPANY          PXRPAM          PXRPAM_POOL          CRMODDEV
    AV and OUTAGE have the joins already. I want to make a join between COMPANY with OUTAGE. And then I want to include a column from each of above tables to the logical fact table in the BMM layer. then I want to do a star schema with the logical fact table to the above 3 tables in the BMM layer.
    Thanks

  • Unable to Create Fact and Dimension tables from the Tools menu in EIS conso

    Hi All,
    In the EIS console, I am unable to create the fact table and the dimension tables to produce my OLAP model from the TOOLS menu whereas I am able to create them by dragging from the left panel where the tables are displayed. I am geeting the below error message:
    "An exception occured while retrieving OLAP model metadata. Please verify you are connected to the catalog and try again"
    Any help appreciated.
    Thanks,
    Raja

    I have fact and dimension tables in one server and i moved those stuff to another server.If I do that what happen to essbase and about totale EPM System.I want to know how to do this and what I can expect?
    Please reply

  • How and when to create a fact table

    hi every1,
    I am new to oracle and specially to Data Warehousing. I am using OWB 11g on windows XP.
    I have created the dimensional for a database, now i am in the implementation phase.
    i have the following questions.
    1. I don't know how and when to create a fact table. I have already created the dimensions (ROLAP).
    2. Do i need to create a mapping for a Cube. if yes, then how to load them from 4 different dimensions. how will be the join condition, they don't match?
    3. I will also try for aggregation, do i need to use MOLAP for the dimensions or ROLAP works?
    Please, give a quick reply.
    regards
    RF

    You should ask your question here:
    Warehouse Builder
    where it is on topic.

  • Trying to create a fact table,error:unable to extend temp segement

    Using Oracle 10.2g
    SQL>
    create materialized view facts_table
    (     s_id
    ,     g_id
    ,     sb_id
    ,     sc_id
    ,     y_id)
    refresh with rowid
    as      select s.s_id
    ,     g.g_id
    ,     sb.sb_id
    ,     sc.sc_id
    ,     y.academicyear
    from      student s
    ,     grade g
    ,     subject sb
    ,     school sc
    ,     comqdhb.teachinggroup y;
    ERROR at line 3:
    ORA-01652: unable to extend temp segment by 1024 in tablespace POSTGRADSI am creating the fact table as materialized view because its specified for us.
    I am trying to create a fact table from the dimension tables and its giving this error
    what is the mistake kindly help.
    Also when creating the fact table do all the columns need to be foreign keys compulsorily.
    Edited by: Trooper on Jan 10, 2009 5:25 AM
    Edited by: Trooper on Jan 10, 2009 6:37 AM

    Well basically what your saying is absolutely right
    I realized what i am doing right now is stupendous blunder.
    Basically my aim is there are 5 dimensional tables that are created
    Student->s_id primary key,upn(unique pupil no),name
    Grade->g_id primary key,grade,exam_level,values
    Subject->sb_id primary key,subjectid,subname
    School->sc_id primary key,schoolno,school_name
    year->y_id primary key,year(like 2008)
    s_id,g_id,sb_id,sc_id,y_id are sequences
    select * from student;
    S_ID UPN FNAME COMMONNAME GENDER DOB
    ==============================
    9062 1027 MELISSA ANNE       f  13-OCT-81
    9000 rows selected
    select * from grade;
          G_ID GRADE      E_LEVEL         VALUE
            73 A          a                 120
            74 B          a                 100
            75 C          a                  80
            76 D          a                  60
            77 E          a                  40
            78 F          a                  20
            79 U          a                   0
            80 X          a                   0
    18 rows selectedThese are basically the dimensional views
    Now according to the specification given, need to create a fact table as facts_table which contains all the dim tables primary keys as foreign keys in it.
    The problem is when i say,I am going to consider a smaller example than the actual no of dimension tables 5 lets say there are 2 dim tables student,grade with s_id,g_id as p key.
    create materialized view facts_table(s_id,g_id)
    as
    select  s.s_id,g.g_id
    from   (select distinct s_id from student)s
    ,         (select distinct g_id from grade)gThis results in massive duplication as there is no join between the two tables.But basically there are no common things between the two tables to join,how to solve it?
    Consider it when i do it for 5 tables the amount of duplication being involved, thats why there is not enough tablespace.
    I was hoping if there is no other way then create a fact table with just one column initially
    create materialized view facts_table(s_id)
    as
    select s_id
    from student;then
    alter materialized view facts_table add column g_id number;Then populate this g_id column by fetching all the g_id values from the grade table using some sort of loop even though we should not use pl/sql i dont know if this works?
    Any suggestions.
    Edited by: Trooper on Jan 10, 2009 6:38 AM

  • What is the best practice for creating primary key on fact table?

    what is the best practice for primary key on fact table?
    1. Using composite key
    2. Create a surrogate key
    3. No primary key
    In document, i can only find "From a modeling standpoint, the primary key of the fact table is usually a composite key that is made up of all of its foreign keys."
    http://download.oracle.com/docs/cd/E11882_01/server.112/e16579/logical.htm#i1006423
    I also found a relevant thread states that primary key on fact table is necessary.
    Primary Key on Fact Table.
    But, if no business requires the uniqueness of the records and there is no materilized view, do we still need primary key? is there any other bad affect if there is no primary key on fact table? and any benifits from not creating primary key?

    Well, natural combination of dimensions connected to the fact would be a natural primary key and it would be composite.
    Having an artificial PK might simplify things a bit.
    Having no PK leads to a major mess. Fact should represent a business transaction, or some general event. If you're loading data you want to be able to identify the records that are processed. Also without PK if you forget to make an unique key the access to this fact table will be slow. Plus, having no PK will mean that if you want to used different tools, like Data Modeller in Jbuilder or OWB insert / update functionality it won't function, since there's no PK. Defining a PK for every table is a good practice. Not defining PK is asking for a load of problems, from performance to functionality and data quality.
    Edited by: Cortanamo on 16.12.2010 07:12

  • Create Target Table Automatically with ODI

    Hi,
    We can reverse engineer the source table Schema from the source Database, does ODI support creating the target schema based on the source schema on the Target Database automatically? is there any better way rather than creating manually on the target DB? Thanks in advance!

    If you are setting the staging area different from target then at IKM level choose CREATE TARGET TABLE to YES.
    ODI will create the target table for you. In ODI we call this type of interface as Yellow Interface.

  • Merging Multiple fact tables and creating a BIA target

    Hi Folks
    We are  using Dataservices with BIA.
    We want to merge mutliple fact table and create a sinvglc cube on BIA.
    when we tried to do that we get a error message that we cannot merge multiple fact tables.
    any pointers ?
    Poonam

    You could have the cubes individually on the BIA and then have a multiprovider which you can use..?
    or create separate universes on the cubes and then merge the universes in BO and then you could hit the BIA for the same..?

  • Add Audit Columns to the Dimension and Fact tables (Created & modified date Time)

    Hi All,
    I am new to SSIS , I have to Add Audit Columns to the Dimension and Fact tables (Created & modified date Time) of the package.
    Please let me know the best and easy way through which I can implement the same.
    If possible suggest some real time example or link where I can find the same
    Regards,
    Vipin jha
    Thankx & regards, Vipin jha MCP

    You can simply use ALTER TABLE ADD.. syntax to add the columns if the tables already exist.
    You can generate a single script for all tables using INFORMATION_SCHEMA.TABLES view
    You can make then of NOT NULL type and set the default value to GETDATE()
    In addition you can also have a Audit Trail trigger for UPDATE to make sure Modified date gets updated correctly on each update if not passed explicitly.
    Please Mark This As Answer if it solved your issue
    Please Mark This As Helpful if it helps to solve your issue
    Visakh
    My MSDN Page
    My Personal Blog
    My Facebook Page

Maybe you are looking for

  • DB2 error in file db2nodes.cfg on HPUX cluster instalation

    I am installing ECC6 SR3 ABAP + DB2 V9.1 in cluster environment on HPUX IA64 + ServiceGuard. I am with the following problem, DB2 software does not function in second node. Overview: node1: host1 node2: host2 virtual host: vthostci virtual host: vtho

  • For GR material Docc is not posted to backend

    Hi, I have a problem when try to do the GR. We have a PO for 2 line items. User has done the Invoice for these two line items for full Qun but with lesser amount than the PO. After that user have done confirmation for one line item. But this confirma

  • Web.show_document jre+ie problem

    dear all, i'm trying to call reports from forms, on when_button_pressed trigger, and it works fine when the report is called from JRE applet (I'm using jre instead Jinitiator) through Firefox. But, when i call my form with Internet explorer, and clic

  • Viewing tables in sql plus

    hai friends., i created a java database pgm using jdbc:odbc connectivity, that creates a table in the database and i inserted some records in that table. how can i view those table and records in the sql plus. what commands are used to view those tab

  • Ecatt error in production environment only

    Hi, I have created one E-CATT to upload booking for the course. This E-CATT is working fine in development and Quality environment. However, in production system its giving error 'E-CATT error ATT377 control data is obsolete, rerecord (VERBS - Name: