Data warehouse, time dimension

Dear folks,
My boss asked me an interesting question, but I couldn't answer, because I'm not an Oracle expert, I'd rather describe myself as Cognos developoer.
We have a ROLAP data warehouse, and there is a time dimension table, the primary key column has type number. He asked me, why is it worth having a number primary key, and not having the date itself as primary key, because Oracle converts dates to numbers too... So what do you think, what's the difference, wich is the better option?
Thanks you in advance, and sorry for my bad English.

Hi,
I can do it, but this would be usefull only to create "time dimension" table. But also the "sales" fact table needs to be altered (thus, the "time" column will not contain the value of the time, but the ID of the corresponding time in the "time dimension" table).
I know that on DW this procedure is done automatically by the ETL process.
My question is that does the repository has any tools similar to this?
Thank you.

Similar Messages

  • Date and Time dimensions

    After reading the following article, I have decided to use SSAS dimension wizard for generating our Date dimension, which creates a DATETIME PK.
    http://www.made2mentor.com/2011/05/date-vs-integer-datatypes-as-primary-key-for-date-dimensions/ 
    I have also created a separate Time dimension as granularity of an hour is required.
    The Time dimension is very simple and only contains a surrogate key (INTEGER) and actual time in hours (VARCHAR).
    DimTime(TimeKey, TimeInHours)
    Our Fact table will now have a link to both the Date and Time dimension using the PK's.
    Our analysis is required by hour, day, week, month and year.
    My query is; Will this current structure cause any problems when creating MDX scripts to analyse our data (i.e. drilldown and rollup queries) Hour - Day - Week - Month - Year

    Hi Darren,
    According to your description, there a day and hour granularity in your fact table, so you want to a hierarchy like Hour - Day - Week - Month - Year, right?
    In your scenario, you created a time table that only contains a surrogate key (INTEGER) and actual time in hours (VARCHAR). We cannot create a Hour - Day - Week - Month - Year hierarchy without ant relationship between date table and time table. As per my understanding,
    you need create a foreigner key in time table, and join those table in the data source view, then you can create such a hierarchy. Here are some links about create time dimension, please see:
    http://www.ssas-info.com/analysis-services-articles/59-time-dimension/1224-date-and-time-dimensions-template
    http://www.codeproject.com/Articles/25852/Creating-Time-Dimension-in-Microsoft-Analysis-Serv
    Regards,
    Charlie Liao
    TechNet Community Support

  • Updating master data for time dimensions from front end

    Hi Experts,
    I am sure this must be handled in a very straight forward way. Just want to know the best practice here. We are working on a copy of appset and want to completely revamp the time dimension papers as per client's fiscal year which is april to march every year.
    When we have deleted all the existing memebers from the time dimension master data from BPC front end and replaced with new memebers, the task is getting completed successfully.
    But when I check back in BI for the master data, it has not replaced all the existing members. How best to handle this?
    The transaction data is deleted from all the application cubes. Are there any checks to be performed?
    Thanks,
    Santosh

    Closing the thread as I could not replicate the problem. The problem is resolved.
    Thanks,
    Santosh

  • Display all dates between date range (Time Dimension left outer join Fact)

    All,
    I have done some searching around this issue but within all the posts regarding date variables, date prompts and date filtering I haven't seen one exactly answering my issue (maybe they are and I just dont have my head around it correctly yet).
    My report requirement is to allow a user to select a start day and an end day. The report should show all activity between those two days - AND display 0/null on days where there is no activity. That second part is where I am getting hung up.
    The tables in question are:
    TimeDim
    EventFact
    CustomerDim
    My BMM is setup as follows:
    TimeDim left outer join EventFact
    CustomerDim inner join EventFact
    If I run a report selecting DAY from TimeDim and a measure1 from EventFact with day range 1/1/2010 - 12/31/2010 .. I get a record for every day and it looks perfect because of the left outer join between TimeDim and CustomerDim.
    But .. if I add in a field from CustomerDim, select TimeDim.DAY, CustomerDim.CUSTNAME, EventFact.MEASURE1, OBIEE only returns records for the days that have EventFact records.
    This is due to the fact that the TimeDim is still outer joined into EventFact but adding in CustomerDim makes OBIEE setup an inner join between those tables which then causes only data to be returned where EventFact data exists.
    There is a way around this in this simple case and that is to define the relationship between CustomerDim and EventFact as an outer join as well. This will give the desired effect (but an outer join between these two tables is not the true relationship) and as I add additional dimensions and add additional logical sources to a single dimension in the BMM it gets complicated and messy.
    Ive also messed with setting the driving table in the relationship, etc.. but it has not given the desired effect.
    Has anyone ever encountered the need to force display all dates within a specfied range with a fact table that may not have an entry for every date?
    Thanks in advance.
    K
    Edited by: user_K on Apr 27, 2010 11:32 AM

    It worked!!!* Even my time drill downs and date based filtering still work!
    That is awesome. Never would have thought of that intuitively.
    Now, just need a little help understanding how it works. When I run my report and check the logs I can see that two queries are issued:
    Query 1: Joins the fact table to all the associated dimensions. I even changed all the relationships to inner joins (which is what they truly are). And calculates the original measure. If I copy and paste this query into sql developer it runs fine but only returns those rows that joined to the time dimension - which is what was happening before. It is correct but I wanted a record for every time dimension record.
    Query 2: Looks like the following:
    select sum(0)
    from timedim
    where date between <dateprompt1> and <dateprompt2>
    group by month *<--* this is the time dimension level specified in Query 1, so it knows to aggregate to the month level as was done in query 1
    Final Question: So what is OBIEE doing ultimately, does it issue these two requests and then perform a full outer join or something to bring them together? I couldn't see anywhere in the log a complete query that I could just run to see a similar result that I was getting in Answers.
    Thanks for all the help .. Id give more points if I could.
    K

  • Disaggregate Periodic Data to Weekly Data (Modeling Time Dimension)

    Hi,
         We are using BPC MS Version 7.0. Our users plan at period level and I need to disaggregate periodic data to weekly data by looking up weeks from Time Dimension.
    Suppose if 2009.Jan  has 4 weeks I need the following result
    Periodic Data
    2009.Jan Acct1 1000$
    Weekly Data
    2009.Jan Wk1 Acct1 250$
    2009.Jan Wk2 Acct1 250$
    2009.Jan Wk3 Acct1 250$
    2009.Jan Wk4 Acct1 250$
    Can we model Time Dimension with two hiearchies to achieves this?
    Which is best way to dissaggrate? (Stored Proc or SSIS Pacakge or Script Logic) ?
    Thanks
    Raj

    An easy way to achieve this feature is to have the time dimension be weekly and do the spread on the input schedules before sending. 
    There would be two EVDREs (one refresh only of monthly data and the other send only of weekly data).  The data range of the monthly EVDRE would be input and where the user enters data.  The data range of the weekly EVDRE would be formulas (pointing to the monthly data and doing the correct division based on number of weeks in a month).  The user is inputting monthly data, but the schedule is sending the weekly values.
    The allocation will work as well, but I would suggest to create a weekly input node under each month to capture the monthly value and then spread to the weekly members.
    JAN
    |---WK Input
    |--- WK1
    |--- WK2
    |--- WK3
    |--- WK4

  • Date time dimension solution

    I'd like to have a date and time dimension where i can drill down to hours and quarters. What i don't want is one large dimension ( too many rows :-). Getting a date and a time dimension linked from the fact table is another solution, but i don't know if i can drill down with this solution.
    My solution is creating a datetime dimension that is clustered with a date dimension and a time key and time table. What are the downgrades when i implement this? Probably creating a view wherein i join the cluster? And can i drill and create a single dimension using this implementation?

    I suspect that your chief problem is a forum mismatch
    ?

  • Essbase vs. Relational Data Warehouse (Which one is the fact table in DW)?

    Guys, thanks in advance for your feedback but below is a simple question i am trying to get feedback on. I am trying to compare an Essbase cube to Relational Data Warehouse containing the same set of information:
    Essbase Dimensions
    Time, Account, Product, Scenario (making it easy)
    Relational Data Warehouse
    Time (dim), Account (dim), Product (dim), Scenario (Fact table)
    OR
    Time (dim), Product (dim), Scenario (dim), Account (Fact Table)
    Which of the relational lines is correct? Is Account the fact table? or Scenario the fact table? Account will contain your usual P&L accounts. Scenario will contain your usual Actual, Budget and Forecast scenarios.
    Thanks,

    I am so not a DW guy, it's amazing, but I've never let little more than a brush with a product stop me from posting...
    Wouldn't all of your dimensions need to be in your fact table? How else would you join from the fact table to the dimensions?
    In either layout, wouldn't you have the keys for Product, Time, Scenario, Acount, and then data in the fact table?
    Or are you talking about the last dimension in your layouts be the columns? If that were the case (and I don't know that it is), I would guess that Scenario changes less, so it would be in columns, although I can definitely see that not being efficient as you are likely to pull all or some of the Accounts for a given time, product and scenario versus all of the scenarios for a given time, product, and account.
    I'm really curious about this as I am just the consumer of star schemas, never (thankfully, and obviously, given the above insane ramblings) the designer of them.
    Regards,
    Cameron Lackpour

  • Time Dimension and database 8.1.7.3

    Hi,
    I imported owb_bp project that is located in: <OWB install directory>\owb\misc\time directory into my OWB. Then i copied the standard time dimension and mapping from that project to my project. I changed the necesary things(removed day level, did reconcile inbound on a dimension in a mapping with "match by bound name" strategy) in the dimension and mapping and when i tried to deploy the mapping i got an error:
    VLD-3268: A mapping can be deployed only if the database version is Oracle 9.2 or higher.
    Is it true that you need Oracle 9.2 or higher for deploying this kind of time dimension. If that is so, how can i create a time dimension that is going to work with Oracle 8.1.7.3
    Thx

    Thanks for your answer Igor.
    The problem is that we cant upgrade our database to 9.2, becouse our customers dont use it, so we are stuck with 8.1.7.3, which by the looks of things doesnt support a lot of things in OWB 9.04.
    So I would really appreciate it if someone could give me some pointers as to how to generate data for time dimension, thats going to work on database 8.1.7.3.
    Thanks you all for your time.

  • Error While Loding Time Dimension

    Hello
    I have a requirement in which i need to load the data into Time dimension so i mapped the data from Time dimension which Oracle Creates
    While deploying i am getting an Error which says there is an error in Time Dimension Package which is created by oracle and
    Can anyone tell me where should i go to rectify the error
    Thanks
    Sriks

    Did the mapping validate ok?
    If validation was ok, locate the package on the DB (same name as mapping) and compile it, this should give you more information on what is causing the error e.g. table does not exist etc.
    Si

  • Create time dimension table in repository without data warehouse

    Hi,
    I want to implement only BI repository solution in my customer (not datawarehousing). Is it possible to transform the data by repository tools, so that the times columns in fact tables are categorized by the "time dimension" table?
    To be more explanatory:
    The "Sales" table has the "time of sale" column. It contains the timestamp when the sale was performed. I have imported this table in "physical layer" of the repository. Now I want to create a new "time dimension" table, something like:
    CREATE TABLE dimension_time (
    Day_Key INT NOT NULL PRIMARY KEY,
    Day_Timestamp DATETIME NOT NULL,
    Day_Name NVARCHAR(32) NOT NULL,
    Day_Text NVARCHAR(32) NOT NULL,
    INSERT INTO dimension_time VALUES (20110101, {d '2011-01-01'}, '1/1', 'January 1', 'Saturday', 0, 6, 1, 1, 185, 1, 201052, 'W52', 'Week 52', 52, 201101, '01', 'January', 1, 7, 1004, 'Winter', 'Winter', 20111, 'Q1', '1st Quarter', 1, 20103, 'Q3', '3rd Quarter', 3, 20111, 'S1', '1st Semester', 1, 20102, 'S2', '2nd Semester', 2, 2011, '2011', '2011', 2010, '10/11', '2010/2011', 0);
    INSERT INTO dimension_time VALUES (20110102, {d '2011-01-02'}, '2/1', 'January 2', 'Sunday', 0, 7, 2, 2, 186, 2, 201052, 'W52', 'Week 52', 52, 201101, '01', 'January', 1, 7, 1004, 'Winter', 'Winter', 20111, 'Q1', '1st Quarter', 1, 20103, 'Q3', '3rd Quarter', 3, 20111, 'S1', '1st Semester', 1, 20102, 'S2', '2nd Semester', 2, 2011, '2011', '2011', 2010, '10/11', '2010/2011', 0);
    and after to add a new column in "sales" fact table for "time dimension ID" and through the repository populate this column based on the "time of sale" column and the corresponding "time dimension ID".
    I know that the ETL process might perform it, but I do not want to go for Data Warehousing (it is not real - time, needs more resources, etc).
    Is it possible to perform such action only on repository?
    Thank you.

    Hi,
    I can do it, but this would be usefull only to create "time dimension" table. But also the "sales" fact table needs to be altered (thus, the "time" column will not contain the value of the time, but the ID of the corresponding time in the "time dimension" table).
    I know that on DW this procedure is done automatically by the ETL process.
    My question is that does the repository has any tools similar to this?
    Thank you.

  • 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

  • Creating Time dimension in BW data model. - like seen in logical data model

    Hello all,
    I have been struggling with this thing and I am looking for some help from anyone on this forum.
    We are trying to create a logical data model of our bw system. We are going live next month with Student module for universities. We have multiple Infocubes and DSO and since there is so much crossing over in between them most of the reporting is done on infosets.
    One of the thing we were thinking; is it possible to create something like a common time dimension table for every infoprovider. Basically when we are providing the reports to the end user can we give them a drop down menu which gives a time frame for reporting rather than selecting.
    Example: Like can we create something which looks in the drop down like current month data, last months data, three months ago, four months ago, five months ago, one year ago, two years ago. Can we make like these data slices in our cube and deliver it to the end user?
    We have in our cube a few date infoobjects, like receipt date, decision date, cancellation date and like wise.
    Please let me know if any one has done any similar thing, it will be very helpful.
    Thank you so much in advance.

    if you add your common time dimension to your data model, first identify for each infoprovider the time against which 'current month' and other frames should be applied and map them to your dimension.
    just a question... are you not using time dimension in cubes ? ideally this should be your time dimension llinking all.
    when you use time dimension which uses 'current month' , 'current year' , you will have to address their historisation as well. (because current month now will not be so current after 2 months).
    so in data load procedure every day these values need to change (meaning drop and reload).
    and routines to populate these values based on reporting date.
    Edited by: hemant vyas on May 6, 2009 1:56 PM

  • Setting date ranges when Time dimension includes Period instead of Month

    I hope I am missing something simple here - we are on OBIEE 10g, and I have a Time dimension defined as follows:
    Year > Quarter > Period > Week > Day
    A "period" is not equivalent to a calendar month - a period can include either 4 or 5 weeks, and always starts on a Sunday. Fiscal years start on the first Sunday in July.
    I need to create a graph that shows Total Sales for the previous 13 periods (not including the current period). This needs to be a rolling 13 periods based on the current period.
    Since this is Period and not Month, I am unable to use the Month(CURRENT_DATE) functionality. Do I need to have repository variables defined for the current period? Is there another way to calculate what the current Period in my Time dimension is in a filter SQL?
    So I want to do something like "Where period between [current_period - 14] and [current_period -1] as the filter for Period.
    Thanks in advance for any assistance.
    Rhonda

    Sorry about that...
    Periods are 1-12 (numeric).
    Period 4 of FY 2012 for example has a begin date of 10/02/2011 and end date of 11/05/2011.
    Right now we do not have unique combos created (like 4/2012, 5/2012, etc) so to get a unique value I have to specify both a year and period.
    So on my dashboard today I will need to create a graph that covers FY2011 periods 6-12 and FY2012 periods 1-6 (translates to 12/5/2010 - 12/31/2011).
    I haven't created repository variables before, but as the Period parameter will be used often I guess I will find out how.
    Thanks in advance for the help.
    Rhonda

  • Foreign keys in SCD2 dimensions and fact tables in data warehouse

    Hello.
    I have datawarehouse in snowflake schema. All dimensions are SCD2, the columns are like that:
    ID (PK) SID NAME ... START_DATE END_DATE IS_ACTUAL
    1 1 XXX 01.01.2000 01.01.2002 0
    2 1 YYX 02.01.2002 01.01.2004 1
    3 2 SYX 02.01.2002 1
    4 3 AYX 02.01.2002 01.01.2004 0
    5 3 YYZ 02.01.2004 1
    On this table there are relations from other dimension and fact table.
    Need I create foreign keys for relation?
    And if I do, on what columns? SID (serial ID) is not unique. If I create on ID, I have to get SID and actual row in any query.

    >
    I have datawarehouse in snowflake schema. All dimensions are SCD2, the columns are like that:
    ID (PK) SID NAME ... START_DATE END_DATE IS_ACTUAL
    1 1 XXX 01.01.2000 01.01.2002 0
    2 1 YYX 02.01.2002 01.01.2004 1
    3 2 SYX 02.01.2002 1
    4 3 AYX 02.01.2002 01.01.2004 0
    5 3 YYZ 02.01.2004 1
    On this table there are relations from other dimension and fact table.
    Need I create foreign keys for relation?
    >
    Are you still designing your system? Why did you choose NOT to use a Star schema? Star schema's are simpler and have some performance benefits over snowflakes. Although there may be some data redundancy that is usually not an issue for data warehouse systems since any DML is usually well-managed and normalization is often sacrificed for better performance.
    Only YOU can determine what foreign keys you need. Generally you will create foreign keys between any child table and its parent table and those need to be created on a primary key or unique key value.
    >
    And if I do, on what columns? SID (serial ID) is not unique. If I create on ID, I have to get SID and actual row in any query.
    >
    I have no idea what that means. There isn't any way to tell from just the DDL for one dimension table that you provided.
    It is not clear if you are saying that your fact table will have a direct relationship to the star-flake dimension tables or only link to them through the top-level dimensions.
    Some types of snowflakes do nothing more than normalize a dimension table to eliminate redundancy. For those types the dimension table is, in a sense, a 'mini' fact table and the other normalized tables become its children. The fact table only has a relation to the main dimension table; any data needed from the dimensions 'child' tables is obtained by joining them to their 'parent'.
    Other snowflake types have the main fact table having relations to one or more of the dimensions 'child' tables. That complicates the maintenance of the fact table since any change to the dimension 'child' table impacts the fact table also. It is not recommended to use that type of snowflake.
    See the 'Snowflake Schemas' section of the Data Warehousing Guide
    http://docs.oracle.com/cd/B28359_01/server.111/b28313/schemas.htm
    >
    Snowflake Schemas
    The snowflake schema is a more complex data warehouse model than a star schema, and is a type of star schema. It is called a snowflake schema because the diagram of the schema resembles a snowflake.
    Snowflake schemas normalize dimensions to eliminate redundancy. That is, the dimension data has been grouped into multiple tables instead of one large table. For example, a product dimension table in a star schema might be normalized into a products table, a product_category table, and a product_manufacturer table in a snowflake schema. While this saves space, it increases the number of dimension tables and requires more foreign key joins. The result is more complex queries and reduced query performance. Figure 19-3 presents a graphical representation of a snowflake schema.

  • Modelling Time Dimension with Fact Table containing Start Date and End Date

    Hi Gurus,
    I have a time dimension with Year till Date. I have a fact table which consists of Start Date, End Date, Person ID, Department ID.
    How do i design Time dimension with fact table the below scenario
    In the dashboard i have start Month and End month as prompts.
    In the report i need to display Count(Person ID) > Start Date and < End Date along the trend.
    For instance, i have selected Jan-2009 as start date and Apr-2009 as End Date, then i need to display Count(Person ID) of Jan-2009, Feb2009, Mar-2009 andApr-2009.
    I Can not connect Time dimension with only Start Date or only with End Date to get the trend along the months.
    Please advice on the issue which i am having.

    Hi,
    Thanks for the response, Infact i tried using Complex join in physical layer. I have considered Time table joined with Fact table, and used >= and took and alias of the Time table and joined fact table using <=. When coming to BMM, i am not knowing how do i design this as if i merge the both the time dimensiona and its alias into single table, values will not be correct and if i make them as seperate columns. i can not show the trend as both are different columns.
    Can you please let know where i am going wrong.
    Thanks

Maybe you are looking for

  • Filtering by attributes in Smart view on Cloud

    Dear all, We are working on the Planning and Budgeting Cloud Services and we have a question regarding the filtering by attributes in smart view. We tried to create a report filtering by attribute but this option is not available in the Smart view Me

  • Wifi on ipad 2 is extreme slow

    Hi, I have 4G network available and i am using AT&T Mobile Hotspot as a wireless router, Everything is perfect such as my laptop, Android phone, but when it comes to IPAD, it is extremely slow. Even to open google it takes about 1-2 minutes, i cant d

  • Importing miniDV files losslessly

    Hi, I have an old Sony TCR-TRV11 Camcorder that uses miniDV cassettes for recording video. I have recently imported all of them thorugh firewire 800 via iMovie '11 as .dv files into the iMovie Events folder. Is there a way to convert those .dv files

  • Xa connection refresh error

    I am using wls 6.1 sp2 with many patches. I have configured the connection pool for XA with oracle jdbc 2.0 drivers ( OCI). When the connection pool is configured, The connections are created but every so frequently wls tries to refresh the connectio

  • Configuration Profile Code-Signing Certificates

    Today, I learned that the Code-Signing Certificate used for signing Device Configuration Profiles is _different_ (and much more expensive) than the SSL Certificate used by other Lion Server services. I understand that these certificates follow a trus