![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
#3
| |||
| |||
|
|
Hi Giri, As I understand, you want to store the information in the data warehouse. The data in the fact table changes often and you want to update the cube in time. You may try to use Real-Time cubes in your data warehouse. Real-time OLAP resolves this issue by enabling ROLAP dimensions and partitions to automatically refresh themselves when data in their underlying dimension or fact tables changes. When working in concert with SQL Server 2000 as the relational data source, Analysis Services can periodically poll the data source for notifications about updates to dimension or fact tables associated with specific ROLAP dimensions or partitions enabled for real-time updates. If the Analysis server finds that a change to a dimension or fact table has occurred, it can respond to the notifications by flushing the Analysis server cache and automatically reprocessing the associated ROLAP dimensions or partitions. For more information regarding Real-Time Cubes, please refer to the following article: Real-Time Cubes http://msdn.microsoft.com/library/de...us/olapdmad/ag cubevarieties_0o4z.asp Best wishes, Michael Shao Microsoft Online Partner Support Get Secure! - www.microsoft.com/security This posting is provided "as is" with no warranties and confers no rights. |
#4
| |||
| |||
|
#5
| |||
| |||
|
|
Hi Giri, If I understand your post correctly, you want to know how to store facts that change over time so that those facts can be employed for time series analysis and/or snapshot analysis. I'll preface my comments by saying that what data are stored and how those data points are stored is largely dependent on the business question being posed. Obviously, there is value in knowing the size of a population in a specific geographic area at any given point in time. Likewise, there is value in understanding changes in the size of the population from one distinct time period to another. In order to examine changes in population size over time, it's necessary to store the population values for each distinct time period. The distinct values can then be used to calculate a number of different values. For instance, if we have the following dimension table: TimeID PopTime 1 2003-01-01 2 2003-02-01 3 2003-03-01 4 2003-04-01 5 2003-05-01 With the following fact table TimeID AreaID PopulationSize 1 1 1500 1 2 15000 2 1 3000 2 2 13500 3 1 4500 3 2 12000 4 1 6000 4 2 12500 5 1 7900 5 2 15000 We can build a cube using the PopulationSize column as a data point for each point in time and geographic area. We can then use a calculated member similar to the one below to display changes in the data over time. [Measures].[PopulationSize]- IIF(IsGeneration([Time].Currentmember,0), ParallelPeriod([Time].[Day]), IIF(IsGeneration([Time].Currentmember,1), ParallelPeriod([Time].[Month]), IIF(IsGeneration([Time].Currentmember,2), ParallelPeriod([Time].[Quarter]), IIF(IsGeneration([Time].CurrentMember,3), ParallelPeriod([Time].[Year]),0)))) In this particular MDX expression, we're checking for the generation of the time dimension level, then subtracting the value for the ParallelPeriod, to calculate the difference between the two time periods. Regards, John Desch, MCDBA, MCSD Microsoft SQL Analysis Services Support This posting is provided "AS IS", with no warranties, and confers no rights. |
#6
| |||
| |||
|
![]() |
| Thread Tools | |
| Display Modes | |
| |