Populating the time dimension in ODI

I need to populate my time dimension in ODI> I read a solution in this forum suggesting to create a time table/view in the source schema, reverse it in ODI and then use it as source to populate the time dimension. Is there another way to do this? One way I thought of was to use the ORDERDATE field in my ORDER table (my source table in Oracle) and map it to my time dimension in SQL Server via an interface. But I also have DUEDATE, SHIPDATE and PAYDATE fields in my ORDERS table and this approach would mean that I have to map them through separate interfaces to the time dimension as well. I have created a procedure in the source schema(Oracle) and want to use it in ODI to populate the time dimension. But I amnt sure if that is possible in ODI. Could anyone help me with this please?
Regards,
Neel

Hi Neelab,
Sorry for my delay to reply you, I had no time the lasts days...
To get the four distinct key from your time dimension, just add four instance of dimension table at interface each one joined with one of the columns.
I believe that you load your time dimension from some other table than PRJ_TBL_TRANSACTION because you have the HolidayType column in your time dimension...
A view is one possible solution to load the time table but depends how the performance of the query is.
A way to do it at ODI is:
- Create 4 interfaces, one for each column, to load 1 singe table with 1 single date column, don't worry about duplicated value at this time, than you can just use the "IKM Control Append" that has more performance but check the "Distinct" box (flow tab) at each interface
- Create a last interface from this temp table as source, to the time dimension target table. Now you will use the "IKM Incremental Update" and do choose the "Update" option to "NO". Check the "Distinct" box.
As this table will have no more than 6.200 records from the last 20 years it will be a small table where you shouldn't have performance problems.
These are some of possible solutions but I would like to add other "way to think".
By the table that you show here you have a simple time table with no special feature, for that, let me suggest you other way.
- in the current way you will join but didn't get the record that "fail" from the join once they will be exclude if a date do not exist at time dimension
My suggestion:
- Load the dimension time table from your source table
- as PK in time dimension table, use the ''Julian Day"
- At ODI target fact table (datastore), create a 4 reference constraints (one by column) to the time dimension
- at interface do not use the dimension as source and transform the 4 date to Julian and let the 4 constraints take care if they exists or not at dimension table.
OR
- Look for the minimum "possible" date at your company
- populate your time dimension with every each day since then until a future date (Dec 31, for instance)
- create a process to populate the future date that will be execute in a interval that you decide (once a year, once a month, as you wish) dependent on how further the date is populated
- use the "Julian date" as PK
- At interface just transform any date to "Julian Date" it will be at dimension time once it is naturally unique
You could substitute the Julian date for "YYYYMMDD" that is a unique value too.
I presented you 2 way to consider be considered, each one could be used based on how important is for the business know if a date was loaded or not.
Someone can question that has the dates loaded from source against has all dates previous loaded could help to find errors from days that wasn’t loaded but it has a failure. As there are 4 dates source columns (and we are talking just about one source table until now) if a date loaded math a date when the load failure there is no value in use the time dimension date to analyze this possibility.
I defend the full time dimension load.
Make sense and/or help you??

Similar Messages

  • Populating the Time Dimension

    Ok, the Oracle Enterprise Manager was kind enough to automatically create the often used Time dimension for me. It even created the associated look up table for me.
    Question:
    Is there a facility/function/feature that populates the weeks - month - year levels in this new lookup table or do I have to do it "by hand"?
    Thanks for your time.
    GGA

    Reposted.

  • How to build the time dimension in Essbase with Fiscal Year (July thru Jun)

    Hi,
    In a recent project i have a situation where i need the time dimension to have some thing like this Fiscal Year (July - June) using BSO need to achieve DTS (YTD and QTD) functionality also.
    And also my reports should also be able to drill through and needs comparison years(Prev Year Vs Current Year), months(Prev Year Vs Current Year) and Qtrs(Prev Year Vs Current Year).
    How can i achieve this using BSO?.

    Hi there,
    This forum is for Oracle OLAP. The Essbase forum can be found here:- Essbase
    Thanks,
    Stuart Bunby
    OLAP Blog: http://oracleOLAP.blogspot.com
    OLAP Wiki: http://wiki.oracle.com/page/Oracle+OLAP+Option
    OLAP on OTN: http://www.oracle.com/technology/products/bi/olap/index.html
    DW on OTN : http://www.oracle.com/technology/products/bi/db/11g/index.html

  • How to build dynamic time series for the time dimension

    I am planning to build dynamic time series using rule file instead of manually.Please let me know if there is any property need to assign to enable DTS property for TIME dimension.
    Edited by: 844104 on Mar 14, 2011 3:37 AM

    In the load rule in the dimension build settings you would need to go to the tab dimension definition, choose the time dimension and right click on it. Select Edit properties. If you have not done so, set the dimension to be the time dimension. Then go to the generations/levels tab and set the generation names you need. For example if you want YTD, you would set the generation name to Year, if you want QTD set it to Quarter. You would set the number to the generation number that coorisponds to the generation. The DBAG has the list of names for all of the DTS members.

  • Time Dimension, i don´t bind the fact dimension and the time dimension

    Well i don´t know why my fact table don´t bind with the time dimension, i create a time table in the data base and change the key to int32 for example year(date)*10000+month(date)*100+day(date),  and create to similar in the fact table, and
    this attributes binding, when i process the dimension all result without problems, after i process the cube and all result without problems, but when i try to deployment the browser, the measures in all years are equals, please help me

    Hi franciscofelipe,
    According to your description, you find the measures shows all same value for all years of time dimension. Right?
    In this scenario, since your change the key of your time table into an integer, when pulling this dimension out in Browser, the measure will only regards those members as numeric value instead of date so that is will show an aggregate value. Even
    all the members are displayed properly in your dimension. So please change the attribute type into appropriate date type.
    If you have any question, please feel free to ask.
    Regards,
    Simon Hou
    TechNet Community Support

  • 10g -  Most detailed table in the time dimension table source is not unique

    hi, experts,
    I cannot find any solution from google. please help
    ERRORS:
    BUSINESS MODEL ERP:
    [38093] Most detailed table in the time dimension table source 'ERP_YEAR_MONTH' is not unique.

    Hi Forreging,
    the time key is incorrectly specified at the lowest level. In the 'ERP_YEAR_MONTH' table, have you correctly specified the primary key for the table?
    For example, if the lowest level of granularity is MONTH, then the appropriate key is probably a combination of YEAR and MONTH (not simply MONTH).
    Hope this helps,
    Justin

  • Where can I get the TIME dimension example files?

    Where can I get / download the following files for creating this time dimension?
    They are only in OWB R1.
    [OWB Home]\owb\misc\time\readme.txt
    [OWB Home]\owb\misc\time\owb_bp_time.mdl
    and
    [OWB Home]\owb\misc\time\owb_time_seq.sql
    [OWB Home]\owb\misc\time\owb_time.sql
    Thanks for help.

    Hi,
    Not sure if this answers the question, but in 10.2 you don't need these files any longer. Simply create the time dimension and it will load data for you (it acts as a data generator).
    JP

  • Modifying the time Dimension in OWB10G R2

    Hello,
    I've used the time-dimension wizard in OWB10G R2, but I am encountering some problems. Let me explain:
    When you start with the wizard, it gives you the choice of a normal hierarchy based on year and/or quarter and/or month and/or day OR a week hierarchy, based on week and day. But I need a time dimension based on year, month, week and day. So I created a normal hierarchy time-dimension based on year, month and day and tried to alter it, by adding a week as an attribute (and level etc.).
    So far no luck. I can't change the dimension, once it is created. Same for the other way around: create a weekbased hierarchy and ad month and year to it as attributes.
    And now my question: Am I overlooking something? Or is it just a case of bad luck and do I have to build the time dimension myself by hand (not that much of a work, but still a pity of the wizard)? Or is there an other way around to fix this problem?
    Regards,
    Ingmar

    Ingmar,
    I just read your post and I am trying to accomplish the same thing with the time dimension - can you help me or direct me to another post that can?
    After I create the time dimension with the wizard, I go back in via the Object Editor and I see the check box on the Levels tab and I have checked the Calendar_Week and all the attributes pop up, so far so good, then I navigate next to the Hieararchies tab and I don't see that the Level for Calendar_Week has been added?
    How to I get a time dimension that has a single hierarchy that roles up as follows:
    day ----> week ----> month -----> quarter ----->year
    thx
    monalisa

  • Oracle 11gR2 use the time dimension wizard---the cube didn't show any information!

    I created a Time Dimension with the Time dimension wizard  , a category dimension, and a rel_expense cube in OWB 。what I do is following the oracle 11g r1's turtoial
      The rel_expense cube has two forigen keys, one is refrence the category dimension's dimension_key(primary key in the category dimension), and the other one  refrence the time dimension's start_day_date(bussniess key in the time dimension).  
    The result I get is  the rel_expense_tab had datas, but the rel_expense cube had nothing.
    .I delete the category dimension , it is the same result(cube rel_expense had nothing).
    But if I  only delete the  time dimension,    it is ok(both of them had datas)!!!
    So I think is the time dimension's problem ,because the 11g r2's time dimension wizard didnt' generate the dimension_key for time. Is the forigen key(time dimension) i refrenced in the cube is error,so if it is, what should I do?
    SEEK FOR YOU HELP!!!!!
    ps:my mother language isn't English ,so it has many erros in the passage

    can anybody help me? the measures in my cube were round to integer, i doubt it came from time dimension. did anyone encounts such a senario

  • Locking Periods using the Second Hierarchy in the Time Dimension

    Hi,
    They are not usiing work status for this...
    I am at a client, and they used the second hierarchy in the time dimension to lock periods.  If they left the second hierarchy blank, no data can be written to it.  To open the open the period, they code the Second Heirarchy with CONS_OPEN.  Just wondering if anyone has information on this? 
    It was working fine, then we needed to run a transport to move BPC to a new machine, and it stopped working.  Not sure if anyone has done it this way before?
    Thanks,
    Chandra

    Dear Kacper,
    the way I understood, there are two separate questions in this post, namely:
    I'm using a shared resource in multiple actors, and the code accessing the resource can take quite some time to execute. How can can I ensure this does not mess up the timing of one or all accessors?
    I'm using a shared resource in multiple actors, and the code accessing the resource can generate errors if I try to access it from multiple places. How can I ensure synchronization between all accessors?
    As for the first question, the optimal solution to separate the resource prone to timing issues in a different thread/actor. Put anything that is not strictly timed (file access, network comunication) in a separate loop. For each actor, you will get queue references to communicate with, so instead of logging the measurements in the actors where they are made, just queue them up for a different loop to process.
    For the second part, the same logic still applies. Ideally, every singular resource should be handled by its own thread and nowhere else, so if anything else needs data from/to said resource, it can send a request to the dedicated thread or actor.
    If, for some reason, this is not sufficient, you have to handle synchronization in some other way. There are a lot of techniques here, for example:
    Create a named semaphore or lock as a part of the class. Have class functions use the semaphore before accessing the resource.
    Use actor messages. Have a "resource in use" or "resource released" messages sent to all users whenever obtaining or releasing said resource.
    Have a separate actor handle all resources, awarding them to threads needing them. This method also allows setting priorities between requests.
    These are just a few examples, there are many other options.
    Please let me know if this was helpful. 
    Kind regards:
    Andrew Valko
    National Instruments Hungary

  • Aggregation mode along one dimension (product) different than along the time dimension

    Dear All,
    In IBP S&OP, Is it possible that the aggregation mode along one dimension (product) could be different than along the time dimension?
    For a demo, a customer has an input at the product family level (vehicle production) which we just “copy” for disaggregation purposes, to the product level (parts), see attached. So for aggregation we used average.
    However, time-wise, we need to sum it up.
    Thanks for your insight and help.
    Kind Regards,
    Omar

    Hi Omar,
    Yes it is possible.
    1. Create a new planning level (say PERPRODCUST1) which will be a copy of PERPRODCUST (you base planning level).
    2. In the PER section of PERPRODCUST1, do NOT mark any period attribute as root. In other words, the roots for this PL will only be PRDID and CUSTID.
    3. Now your KF calculations will be:
    VEHICLEPRODUCTION@PERPRODCUST1 = SUM(VEHICLEPRODUCTION@PERPRODCUST)
    VEHICLEPRODUCTION@REQUEST = AVG(VEHICLEPRODUCTION@PERPRODCUST1)
    Since your KF is editable, it is worth mentioning that, following the above steps has trade-offs. Since your KF is editable, you will have issues with disaggregation when you enter the values at an aggregated level of both time and other attributes. My recommendation (for your configuration) is that this will work fine as long you enter the values at the root level of you time attribute.
    Hope this helps,
    Chendur

  • Is it possible to add an all time member to the time dimension

    We are on BPC 7.  Our time dimension has the normal Year, Quarter, Month rollup. 
    Is it possible to add an "All_time" member to the time dimension that would have all years rolling up to it or are our only choices Year, Halfyear, Quarter, Month, Week, or Day?

    TOTAL is not a valid selection for LEVEL.  Did you create this "TOTAL" manually some how?  I have seen "TOTAL" as a period but never a level.  Do you have a dimension file that you can get to work with this example in APPSHELL that you could share?
    According to the BPC Admin documentation it only comes with YEAR, HALFYEAR, QUARTER, MONTH, WEEK, DAY as valid options.  How do you get the TOTAL member added as a valid option for the LEVEL property:
    BPC Documentation Reference below:
    LEVEL
    Time can be a year, quarter, month, week or day. As described above, the PARENTH1 property is used to define the aggregation of the time periods.
    The LEVEL property is also very important in defining your time periods. You must have the correct Level (Year, quarter, month, etc.) for each member. You must follow the chronological format throughout the Time dimension. The correct format is:
    ·        YEAR
    ·        HALFYEAR
    ·        QUARTER
    ·        MONTH
    ·        WEEK
    ·        DAY

  • URGENT: What happend if I define the Time Dimension like a user dimension?

    I define the Time Dimension like a user Dimension because in the time I don't need the quarter, so can I access my metadata from OLAP tools (BI Beans)?
    PLEASE HELP.

    Magini,
    You can define time dimension as user dimension. It will work well. I have been defining time dimension as user dimension.
    For simple arithmetic calculations and aggregations, there will be no problem.
    However you will not be able to do time specific calculations.
    I am using SUM as aggegation and Division, Ratio, Addition in calculated measures.
    Hope this helps.
    Subash

  • Counting values back in time with a split in the Time dimension

    Hi there,
    I would like to calculate how many sales months we had during the past half year. For every month in the past 6 months where there is sales > 0 this should be counted. On the account Sales Months I would like to see the result.
    Lets say I had sales in 01 + 02 +03 + 05 but not on 04 and 06, the value on 07->Sales Months should be 4.
    The seperated Years dimension makes it hard to calculate this for the first 6 months because the formula has to look back a year and the Months dimension is tagged as Time so I cannot use @PRIOR.
    Maybe you guys have some great idea!
    Regards,
    Thijs
    {color:#0000ff}Essbase version 7.1.6
    3 dimensions
    Years
    - 1999
    - 2000
    - 2001
    Months
    - 01
    - 02
    - 03
    - 04
    - 05
    - 06
    - 07
    - 08
    - 09
    - 10
    - 11
    - 12
    Accounts
    - Sales
    - Sales months{color}

    1. shutdown and backup your database (!!!).
    2. start in umount mode
    3. rman target sys/manager@EON1 catalog rman/rman@rman
    4. at the RMAN prompt perform a point in time restore/recover, e.q.:
    restore database until time "to_date('19.01.2009 13:00:00','DD.MM.YYYY HH24:MI:SS')";
    recover database until time "to_date('19.01.2009 13:00:00','DD.MM.YYYY HH24:MI:SS')";

  • Time Dimension Population with ODI 11.1.1.5

    Hi All,
    I am planning to build a time/Date dimension to use with the HR Fact tables (sourced from Oracle HRMS).
    Customer would like to supply start and end dates (01-JAN-05 TO 31-DEC-11) and i should be able to generate and load the time data between these dates.
    Down the line, if the customer to append the Time Dimension for future data, he should be able to specify the new start and end dates (01-JAN-12 To 31-DEC-15), i should be able to incrementally load the new time data, instead of truncating and regenerating all the time data.
    Any ideas on implementing this requirements using ‘Oracle Data Integrator 11.1.1.5’?
    Thanks in advance
    Regards,
    Venkat

    This is what I did recently,
    Download the 'SQL_as_source' knowledge module from the Oracle ODI Blog here : http://blogs.oracle.com/warehousebuilder/entry/odi_11g_simple_flexible_powerful
    Used a temporary interface with the following simple query :
    with row_generator as (
    SELECT to_date('01011980','ddmmyyyy') + LEVEL - 1 DT
    FROM sys.dual
    CONNECT BY LEVEL <=
    /* End Date in here -> */ to_number(to_date('31122030','ddmmyyyy') -
    /* Start Date in here -> */ to_date('01011980','ddmmyyyy')) +1 )
    SELECT DISTINCT
    'YEAR' as TIME_LEVEL,
    NULL as YEAR_MONTH,
    NULL as YEAR_QTR,
    to_char(DT,'YYYY') as YEAR
    from row_generator
    UNION
    SELECT DISTINCT
    'QUARTER',
    NULL,
    to_char(DT,'YYYY')||' / '||to_char(DT,'Q'),
    to_char(DT,'YYYY') from row_generator
    UNION
    SELECT DISTINCT
    'MONTH',
    to_char(DT,'YYYY')||' / '||to_char(DT,'MM'),
    to_char(DT,'YYYY')||' / '||to_char(DT,'Q'),
    to_char(DT,'YYYY')from row_generator
    order by 1,2,3,4
    As you can see in the above code, it would be possible to pass in ODI variables as the start and end dates , you could either allow the user to type these in at run time or read them from a control table.
    Use the temporary interface as the source data for your Time dimension interface (you might want to add more Time Attributes - Mine was very simple) , then use an IKM Incremental update approach (Im using IKM Oracle Incremental update (Merge)).
    Hope this helps
    Rgrds
    Alastair
    p.s - my time dimension is loading multiple levels (Years, Quarters, Months) into the same table - the SQL contains a row for each day though so easily adapted to report days.
    Edited by: PeakIndicators_Alastair on Jan 24, 2012 12:05 PM

Maybe you are looking for

  • How to hide columns in SSRS Reports

    I have allocation list which has various columns and weekly allocation text columns like Week1Allocation,Week2Allocation,Week3Allocation --Week51Allocation. I generating a report in which I am showing resource and there allocation in below form Resou

  • Essbase Studio and Drill Through

    I have created a ASO application in essbase studio through text data source and succesfuly deployed it to essbase server but in smartview and spreadsheet add in drill through reports are not reflecting. Standard SQL is also not generating while creat

  • Icon for Drag&Drop

    hello, does anybody known or has anybody a special icon for Drag&Drop (something like copy or delete icons) ? thank yuo very much for each answer! regards, Joana

  • [Solved] Dropped tcp_wrappers | can't connect to httpd

    In order to allow others to connect i used echo "httpd : ALL : ALLOW" >> /etc/hosts.allow After droppting of tcp_wrappers no one can connect to my machine. I do not use any firewalls. How can I make it available? Last edited by Doctor Drive (2011-08-

  • Can my macbook's Ram work on a minimac?

    Hi I was wondering if the ram that came with my black macbook be used to upgrade a minimac? Thanks