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

Similar Messages

  • Time dimension population

    Hi
    I am taking "clndr" as source and populate time dimension table.Time dimension table ( granularity is an hourly basis) will be populated with date with 24 intervals and based on the cln_dt whether it falls in weekened or holiday ,If falls in weekened or holiday , populate 'Y' Else 'N' .Please see the below example
    clndr(source table)
    cln_dt cldr_day busday cldr_yr
    1/05/2006 monday y 2005
    2/5/2006 Tuesday y 2005
    Expected data
    ==========
    Time_dim(Target table)
    Time_dt interval holidy ind
    1/05/2006 0 N
    1/05/2006 1 N
    1/05/2006 2 N
    1/05/2006 3 N
    1/05/2006 23 N
    2/5/2006 0 N
    2/5/2006 1 N
    2/5/2006 23 N
    Thanksinadvance
    MR

    Try this, Modified Dnikiforov's solution:
    SQL> ed
    Wrote file afiedt.buf
      1  select date#, hour, decode(busday,'Fri','Y','Sat','Y','Sun','Y','N') flag
      2  from ( select to_date('06-MAY-06') date#, to_char(to_date(
      3  '06-MAY-06'),'Dy') busday from dual
      4  union all
      5  select to_date('07-MAY-06') date#, to_char(to_date(
      6  '07-MAY-06'),'Dy') from dual
      7  union all
      8  select to_date('08-MAY-06') date#, to_char(to_date(
      9  '08-MAY-06'),'Dy') from dual ) calendar,
    10  (select rownum-1 hour from dict where rownum <=24) hours
    11* order by 1,2
    SQL> /
    DATE#        HOUR F
    06-MAY-06       0 Y
    06-MAY-06       1 Y
    06-MAY-06       2 Y
    06-MAY-06       3 Y
    06-MAY-06       4 Y
    06-MAY-06       5 Y
    06-MAY-06       6 Y
    06-MAY-06       7 Y
    06-MAY-06       8 Y
    06-MAY-06       9 Y
    06-MAY-06      10 Y
    06-MAY-06      11 Y
    06-MAY-06      12 Y
    06-MAY-06      13 Y
    06-MAY-06      14 Y
    06-MAY-06      15 Y
    06-MAY-06      16 Y
    06-MAY-06      17 Y
    06-MAY-06      18 Y
    06-MAY-06      19 Y
    06-MAY-06      20 Y
    06-MAY-06      21 Y
    06-MAY-06      22 Y
    06-MAY-06      23 Y
    07-MAY-06       0 Y
    07-MAY-06       1 Y
    07-MAY-06       2 Y
    07-MAY-06       3 Y
    07-MAY-06       4 Y
    07-MAY-06       5 Y
    07-MAY-06       6 Y
    07-MAY-06       7 Y
    07-MAY-06       8 Y
    07-MAY-06       9 Y
    07-MAY-06      10 Y
    07-MAY-06      11 Y
    07-MAY-06      12 Y
    07-MAY-06      13 Y
    07-MAY-06      14 Y
    07-MAY-06      15 Y
    07-MAY-06      16 Y
    07-MAY-06      17 Y
    07-MAY-06      18 Y
    07-MAY-06      19 Y
    07-MAY-06      20 Y
    07-MAY-06      21 Y
    07-MAY-06      22 Y
    07-MAY-06      23 Y
    08-MAY-06       0 N
    08-MAY-06       1 N
    08-MAY-06       2 N
    08-MAY-06       3 N
    08-MAY-06       4 N
    08-MAY-06       5 N
    08-MAY-06       6 N
    08-MAY-06       7 N
    08-MAY-06       8 N
    08-MAY-06       9 N
    08-MAY-06      10 N
    08-MAY-06      11 N
    08-MAY-06      12 N
    08-MAY-06      13 N
    08-MAY-06      14 N
    08-MAY-06      15 N
    08-MAY-06      16 N
    08-MAY-06      17 N
    08-MAY-06      18 N
    08-MAY-06      19 N
    08-MAY-06      20 N
    08-MAY-06      21 N
    08-MAY-06      22 N
    08-MAY-06      23 N
    72 rows selected.

  • Slicer Time Dimension Issue with Cube Functions

    Hi,
    Hoping someone can help me figure out right approach here.
    Summary:
    Using Excel 2013 connected to a SSAS cube as data source, and cube functions with slicers to create a dashboard.
    Have following time dimension slicers; Fiscal Year, Fiscal Quarter, Fiscal Month, Fiscal Week & Date, that are used to slice data based on user selection, along
    with a sales measure.
    Below is example of Slicer name and CubeMember function for each:
    Slicer_Fiscal_Year: 
    =CUBEMEMBER("Cube","[Date].[Fiscal Year].&[2015]")
    Slicer_Fiscal_Quarter: 
    =CUBEMEMBER("Cube","[Date].[Fiscal Quarter].[All]")
    Slicer_Fiscal_Month: 
    =CUBEMEMBER("Cube","[Date].[Fiscal Month].&[201408]")
    Slicer_Fiscal_Week: 
    =CUBEMEMBER("Cube","[Date].[Fiscal Week].&[201509]")
    Slicer_Date: 
    =CUBEMEMBER("Cube","[Date].[Date].[All]")
    Problem:
    What I am trying to do is to build a table with cube functions that takes the lowest grain of the slicer time dimension selected, shows the current member, plus
    the prior 7 so I can have an 8 period trending view table that I will build a chart from. In the above example that would mean that it would look at Slicer_Fiscal_Week since that is lowest grain that has an attribute other than All, and then show me the prior
    7 periods. In this case 201509 means Week 9, so I would want to show in table Week 9 back to Week 2. But if Slicer_Fiscal_Week was set to All, along with Slicer_Date, then Fiscal Month would be lowest grain, so I would want to show Fiscal Months from August
    (201408) back to January 2014. I know how to use CubeRankedMember to pull the value from what is selected in the slicer, the problem is figuring out how to pass the lowest grain time dimension so that I can use lag or some other MDX function to get the previous
    periods.
    Any help on this would be greatly appreciated.
    <object height="1" id="plugin0" style=";z-index:1000;" type="application/x-dgnria" width="1"><param name="tabId" value="{28593A5C-70C0-4593-9764-80C76B51795C}"
    /></object>

    Hello,
    Thank you for your question.
    I am trying to involve someone familiar with this topic to further look at this issue.
    George Zhao
    TechNet Community Support
    It's recommended to download and install
    Configuration Analyzer Tool (OffCAT), which is developed by Microsoft Support teams. Once the tool is installed, you can run it at any time to scan for hundreds of known issues in Office
    programs.

  • Month Sort Order Problem in Time Dimension(Essbase with Obiee)?

    Hi All,
    I am facing issue with month order in answers.
    First I created BSO cube using Essbase Studio. When i exposed cube in answers, months were sorted in alphabetical order. So i used RANK function with evaluate to arrange month members in proper order. But if i use RANK function it pulls all missing records and it is effecting performance.
    Then i created Time dimension(dimension loading) in essbase from FLAT file,initially it was coming in proper order. But after some time again it sorted in alphabetical order!!!
    I have seen in internate few people saying they didn't face this problem. I
    Please advice...
    Essbase: 11.1.1.3
    OBIEE: 10.1.3.4.1
    RS

    Hi user10300020,
    That's a fairly common problem with months that happens regardless of database source.
    In the logical layer of OBIEE you can specify the sort order on the month name column. Just double click on the month name column and look for the option to set sort order based on a different column. I typically sort the month name based on the month number.
    Give that a shot and tell me if it works.
    -Joe

  • Problem with Time Dimension generating

    Hello, everybody.
    I have a problem with Time Dimension generating with the help of the Standard Wizard.
    1. I choose Dimensions -> New -> Using Time Wizard
    2. Set Name as "Time"
    3. On the next screen I choose ROLAP: Relational Storage
    4. On the next screen set Start year: 2003, Number of years: 3
    5. On the next screen choose all levels of the Normal Hierarchy
    On the 6-th step Wizard complete 60% of job and hang up doing nothing (buttons "Cancel" and "Help" is active).
    chapter "Create REL_TIME Dimension Using the TIME Dimension Wizard", step 1-6 of tutorial =(
    http://www.oracle.com/technology/obe/11gr1_owb/owb11g_update_getting_started_intro/lesson3/less3_relational.htm
    My system characteristics:
    Builder client 11.1.0.7.0, warehouse at local computer.
    can anybody give me any advice about this problem? =(
    thanks in advance.

    Had this issue been solved please?
    I have just come across the exact same problem and this post is the only one i managed to find which describes exactly what is happening to me.
    Thanks

  • Time Dimension Consistency Error in RSRV - Need Help

    Hello,
    I am having a problem when I run RSRV on our 0ECCS_C01 cube.  We have extended the time characteristics to include posting period (0FISCPER3).  The only problems RSRV finds is when 0FISCPER is period 0 and 0FISCPER3 is 0.  For some reason, these are being flagged as inconsistent.  I think this is causing negative performance on our queries because I feel partitioning may not be getting used from some research I've done due to this inconsistency.
    Here are the errors I am getting from RSRV:
    1.  Record with the DIMID 410 contains non-fitting time characteristics
    Message no. RSCV053
    Diagnosis
    The data record of the time dimension table with the described DIMID contains values for time characteristics that do not fit together.
    2.  This DIMID is used by 9860 records of the fact tables
    3.  No master data found for characteristic of test described subsequently
    Message no. RSCV083
    Diagnosis
    No master record exists for a characteristic used in the time dimension. The characteristic is one of the characteristics described in the following message with one of the SIDs named there or it is the fiscal year variant that was derived from one of the characteristics.
    4.  Time characteristic 0FISCPER value 132000000 does not fit with time char 0FISCPER3 val 0
    Message no. RSCV054
    Diagnosis
    The described values of the specified time characteristics do not fit together.
    How exactly can I get these time characteristics to "fit" properly?  Will it require a data reload?

    hi,
    did u get answer to ur problem.
    thanks.
    Raju

  • OBI 10g merge 2 time dimensions on the same table/graph in analysis

    Hi,
    My problem is: I have 2 different analyses (working fine) (using OBI 10g), they both use a different time dimension:
    time_dim_1 | fact1
    time_dim_2 | fact2
    I want to merge them to have something like the following:
    time_dim | fact1 | fact2
    What I managed to get so far is something like this:
    time_dim1 | time_dim2 | fact1 | fact2 (with, if we suppose there are 12 rows in time_dim1 and time_dim2, 12*12 = 144 rows instead of just 12)
    Here is some more explanations about how I set my repository:
    My fact table "issues" is made of the following columns:
    issue_id, issue_type, issue_create_date, issue_end_date
    I also have a table "calendar" with year, quarter, month and full_gregorian_date.
    In the physical layer I created 2 aliases for the "calendar" table to join with the fact table using "issue_create_date" and "issue_end_date".
    In the business model I created the 2 related time dimensions.
    Everything is working fine so far, I was able to get 2 different analyses :
    - time dimension (joined with "issue_CREATE_date") | count of issues (with aggregation rule "count" on issue_id)
    to see how many new issues are CREATED through time (are there more issues created or less)
    - time dimension (joined with "issue_END_date") | count of issues (with aggregation rule "count" on issue_id)
    to see how many new issues are ENDED through time (when are more issues ended)
    What I want is a third analysis like this:
    - time dimension | count of created issues | count for ended issues
    Thanks for your help.
    Florence

    did you set the content level as well?

  • Additional custom level on Time dimension ?

    Hi,
    I´m very new to OWB, so I don't know if what I want to do is even possible at all.
    I created a time dimension using the "Time Dimension Wizard", selecting all possible levels (year, quarter, month, day), but I also need to have one extra level: semester. You see, we need that level for our reports.
    I tried to open the mappings that were generated automatically but Oh, boy! does that look complicated!!! Some operators call time functions but when looking them up, they're in packages that come wrapped, so basically I have no clue as to how the data is being generated by Oracle.
    Do you know of any way to accomplish this? Basically have a time dimension with the levels:
    Year -> Semester -> Quarter -> Month -> Day
    Any help would be very much appreciated.
    Rgds,
    --Oswaldo Santos
    [osantos]

    Hi JP,
    Thanks for the tip.
    I created a new "time" dimension manually. I basically made a copy of the attributes and levels of a normal time dimension, plus the new fields for "semester". I also defined the corresponding fields for "END DATE" and "TIME SPAN".
    Now, I can populate this dimension, based on a script that someone else posted in this forum. I'm not sure, though, that Oracle OLAP will recognize this as a "time" dimension, will it? I mean, OWB adds some extra fields for a time dimension created with the wizard (like "level type"). Will this affect the performance or behavior of my cubes? Or, can I say that this is as real a time dimension as one created with the wizard in OWB?
    Again, thanks a lot for your support.
    Regards,
    --osvaldo santos.
    [osantos]

  • OWB 10.2 - How are you handling time dimensions?

    Hi all,
    I am struggling with what should be a simple thing to do. I want to create a time dimension and then have many "roles" or aliases for the time dimensioin WITH UNIQUE COLUMN NAMES across all of the roles.
    When the time dimensions are deployed to Discoverer, I want every one of them to have unique names and the column names within the time dimension have a unique prefix so that report users know which date column is from which table or dimension.
    Here's what I've done and failed at:
    1. Use the time dimension wizard - I can create any number of dimensions and corresponding tables BUT all of them have the same column names and I would have to manually change each and every one of them to get unique names (which may not even be possible with the wizard). Also, because I require ISO weeks, I can't really use the wizard at all.
    2. Manually create a time dimension (that supports ISO weeks) and create multiple "roles" for it:
    Thanks to a bug, I cannot exceed 4 roles without OWB crashing. Even with those 4 roles, when deployed to Discoverer, every attribute within the item folders has the same name. When I drag them to a report, there is no way to tell one from another. Is there some way I could do this without having to manually rename hundreds of columns?
    3. I wrote an elaborate SQLPlus script to copy and prefix dimensions and tables from a base dimension and table. When I then import the Dimension to OWB, the metadata for business identifier and surrogate identifier is not there and any cubes using those dimensions do not work with these attributes missing. I can't find a way to cleanly reverse engineer these into OWB.
    I have a cube with 12 dates - each of which should be a foreign key to a date dimension.
    How can I have all of these be uniquely named with uniquely named columns?
    How can I make it easy for my reporting users to select dates onto their reports?
    I hope I am missing an obvious solution, because so far, I cannot see where Oracle Warehouse Builder supports such a basic data warehousing concept.

    Well, since I'm the only one obsessed with time dimensions I guess, here is my ugly workaround:
    1. I create a base time dimension in OWB which I named 'ATLAS_TIME_DIM'
    2. I run the OMB script below which clones the dimension and table and renames the columns and attributes with a user supplied suffix. The end result is I get a full copy of the time dimension metadata with uniquely named columns.
    You then have to deploy the objects, and with SQLPlus, ensure that the table gets its data copied from your original table. Hope it helps someone until we have better Time dimension support from OWB.
    OMBCONNECT repos/password@SERVERNAME:1521:sidname
    # Prompt for new Dimension name and prefix
    puts -nonewline "Please enter name for new Dimension: "
    gets stdin newDim
    puts -nonewline "Enter Prefix for Dimension table columns: "
    gets stdin dimPrefix
    # Change into ATLAS_DW module in project ATLAS_DW
    OMBCC 'ATLAS_DW'
    OMBCC 'ATLAS_DW'
    # Copy the ATLAS_TIME_DIM to this dimension
    OMBCOPY DIMENSION 'ATLAS_TIME_DIM' TO '$newDim'
    # Set the business name
    OMBALTER DIMENSION '$newDim' \
    SET PROPERTIES (BUSINESS_NAME) VALUES ('$newDim')
    # Unbind the dimension from original table
    OMBALTER DIMENSION '$newDim' \
    DELETE BINDING
    # Bind to new table
    OMBALTER DIMENSION '$newDim' \
    IMPLEMENTED BY SYSTEM STAR
    # Add a prefix to all of the Dimension attributes
    set attrList [OMBRETRIEVE DIMENSION '$newDim' GET DIMENSION_ATTRIBUTES]
    foreach attrName $attrList {
    OMBALTER DIMENSION '$newDim' \
    MODIFY DIMENSION_ATTRIBUTE '$attrName' RENAME TO '$dimPrefix\_$attrName'
    # Add a prefix to all level attributes of the Dimension
    set levelList [OMBRETRIEVE DIMENSION '$newDim' GET LEVELS]
    foreach levelName $levelList {
    set levelAttrList [OMBRETRIEVE DIMENSION '$newDim' \
                            LEVEL '$levelName' GET LEVEL_ATTRIBUTES]
    foreach levelAttr $levelAttrList {
    OMBALTER DIMENSION '$newDim' MODIFY \
    LEVEL_ATTRIBUTE '$levelAttr' OF LEVEL '$levelName' \
    SET PROPERTIES (BUSINESS_NAME) VALUES ('$dimPrefix\_$levelAttr')
    OMBALTER DIMENSION '$newDim' MODIFY \
    LEVEL_ATTRIBUTE '$levelAttr' OF LEVEL '$levelName' \
    RENAME TO '$dimPrefix\_$levelAttr'
    # Add a prefix to all of the table columns except DIMENSION_KEY
    set columnList [OMBRETRIEVE TABLE '$newDim' GET COLUMNS]
    foreach colName $columnList {
    if { $colName == "DIMENSION_KEY" } {
    puts "$colName"
    } else {
    OMBALTER TABLE '$newDim' \
    MODIFY COLUMN '$colName' SET PROPERTIES (BUSINESS_NAME) VALUES ('$dimPrefix\_$colName')
    OMBALTER TABLE '$newDim' \
    MODIFY COLUMN '$colName' RENAME TO '$dimPrefix\_$colName'
    puts "$dimPrefix\_$colName"
    OMBSAVE
    OMBDISCONNECT
    Message was edited by:
    mike_fls

  • 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??

  • Time dimension with Hourly base time periods

    Hi all
    I need to analyze data at Hour, Day, Month, and Year levels. The data in the fact and dimension tables are at the 'Hour' level with DATE datatype, such as:
    02-SEP-10 10:00:00 AM
    02-SEP-10 11:00:00 AM
    To use Time-Series type calculations, I understand that I have to create an OLAP dimension of type 'TIME' (and not 'USER') and map it to the populated relational time dimension table.
    1) Can I have the primary key for 'Hour' level as the actual base level value of datatype DATE (eg. 02-SEP-10 10:00:00 AM) ?
    2) For the END_DATE and TIME_SPAN attributes at the 'Hour' level, what should I use?
    The documentation is only available for minimum 'Day' level hierarchies, which allows setting END_DATE and TIME_SPAN to the actual 'Day' value and 1, respectively.
    3) For the END_DATE and TIME_SPAN attributes at the 'Month' level, do I need to supply the last-date-of-each-month and number-of-days-in-that-month, respectively?
    Please bear in mind that I am relatively new to Oracle OLAP. Any assistance will be appreciated.
    Cheers.

    Thank you Szilard and Adnan for the very prompt and informative responses.
    I managed to follow the advice on the oracleolap.blogspot link and created a time dimension with members at Hour level loaded into the dimension in character format: TO_CHAR(hour_id, 'DD-MON-YYYY HH24')
    The problem now is the maintenance (loading) of the dimension is taking an abnormally large amount of time (over 1 hour) as opposed to when the members were being loaded in DATE format (5 minutes). The mapping table only as 10,000 entries.
    Why is these such a big difference? Is it normal? Is there a way to speed up the maintenance time?
    FYI, I have not created any indexes on any of the attributes.
    My platform is:
    11.1.0.7.0 DB
    11.1.0.7.0B Client

  • Time Dimension with Hourly base level

    Hi all
    I need to analyze data at Hour, Day, Month, and Year levels. The data in the fact and dimension tables are at the 'Hour' level with DATE datatype, such as:
    02-SEP-10 10:00:00 AM
    02-SEP-10 11:00:00 AM
    To use Time-Series type calculations, I understand that I have to create an OLAP dimension of type 'TIME' (and not 'USER') and map it to the populated relational time dimension table. My questions are:
    1) Can I have the primary key for 'Hour' level as the actual base level value of datatype DATE (eg. 02-SEP-10 10:00:00 AM) ?
    2) For the END_DATE and TIME_SPAN attributes at the 'Hour' level, what should I use?
    The documentation is only available for minimum 'Day' level hierarchies, which allows setting END_DATE and TIME_SPAN to the actual 'Day' value and 1, respectively.
    3) For the END_DATE and TIME_SPAN attributes at the 'Month' level, do I need to supply the last-date-of-each-month and number-of-days-in-that-month, respectively?
    Please bear in mind that I am relatively new to Oracle OLAP. Any assistance will be appreciated.
    Cheers.

    Thank you Szilard and Adnan for the very prompt and informative responses.
    I managed to follow the advice on the oracleolap.blogspot link and created a time dimension with members at Hour level loaded into the dimension in character format: TO_CHAR(hour_id, 'DD-MON-YYYY HH24')
    The problem now is the maintenance (loading) of the dimension is taking an abnormally large amount of time (over 1 hour) as opposed to when the members were being loaded in DATE format (5 minutes). The mapping table only as 10,000 entries.
    Why is these such a big difference? Is it normal? Is there a way to speed up the maintenance time?
    FYI, I have not created any indexes on any of the attributes.
    My platform is:
    11.1.0.7.0 DB
    11.1.0.7.0B Client

  • Odi-Creating time Dimension

    hi,
    i want to create a time dimension using odi.
    How do i create the below table.
    CREATE TABLE Dim_Time(
    Timekey INT IDENTITY(1,1),
    Day CHAR(2),
    Month VARCHAR(9),
    Quarter CHAR(1),
    Year CHAR(4),
    Week CHAR(2),
    FullDate DATETIME,
    Thank You.

    You can use an Excel file as a source that contains 1 columns with 1 date by row
    then you map the other columns thanks to date function in ODI

  • Getting error while deploying a cube with time dimension

    Hi,
    I created a time dimension using WB with Cal yr and day heirarchy. Designed a cube using both and tried to deploy it. I got the following error.
    Appreciate your help..
    Name
    Type
    Status
    Log
    TIME_CUB1
    Cube
    Success
    VLD-0001: Validation completed successfully.
    TIME_CUB1
    Description : Runtime User : OWB_REP_OWNER Started : 2006-12-13 15:37:17.0
    Name
    Action
    Status
    Log
    TIME_CUB1
    Create
    Error
    ORA-06510: PL/SQL: unhandled user-defined exception
    ORA-06512: at "OLAPSYS.CWM2_OLAP_CUBE", line 394
    ORA-06512: at line 5

    Hi,
    I'm having problems to deploy this cube (this was the origin of my problem), when I change it to "Deploy Data Object Only", It don't generate code and the cube is not created. This is what I get:
    -- Product : Oracle Warehouse Builder
    -- Generator Version : 11.1.0.6.0
    -- Created Date : Wed May 12 08:41:59 CST 2010
    -- Modified Date : Wed May 12 08:41:59 CST 2010
    -- Created By : edennis
    -- Modified By : edennis
    -- Generated Object Type : TABLE
    -- Generated Object Name : FACT_TMP_SALDOS
    -- Comments :
    -- Copyright © 2000, 2007, Oracle. All rights reserved.
    WHENEVER SQLERROR EXIT FAILURE;
    Ideas?
    Thanks for your help!

  • Hyperion Planning- Account dimension - Sort Order Issue with ODI 11.1.1.5

    Hello Experts,
    First of all, I thank you everybody in this forum for posting their valuable suggestions.
    I am facing a strange issue with ODI (Version 11.1.1.5) while loading metadata to Planning ACCOUNT dimension (Version 11.1.2.x). I am using a Oracle view to load metadata to this dimension. I have defined the sort order in the view and enabled SORT_ORDER_BY_INPUT. For the fresh load to the dimension, everything is working fine. But, when I move a member from one parent to another parent, and define it as the top member of new parent, it is missing its sort order.
    But it is working fine if you define it as the second, third...or last member under new parent. I have tried all the possible ways by flipping all the properties but unable to fix it.
    Please help me here to resolve this issue.
    Your help is greatly appreciated!!
    Thanks
    Edited by: user11965311 on Sep 20, 2011 7:07 PM

    To be honest I think you are best logging it with Oracle because it sounds like you are doing everything correctly so it could be a bug.
    Have you tested this on any previous versions of ODI or is it a new installation?
    If it does get logged with Oracle please keep me informed of the outcome as I would be interested to hear.
    Cheers
    John
    http://john-goodwin.blogspot.com/

Maybe you are looking for