Ragged hierarchy design
Hi.
I'm trying to design the implementation of a department dimension that has a ragged hierarchy and I'm seeking advice on how to do this.
I'd like to start a dialog on the community's experience and best demonstrated practices on how to do this.
Has anyone done this successfully? If so, what did you learn in the process and what did you do to ensure success.
Thanks.
Dan
Hi. Sorry for the long delay...Got pulled in another direction...
So, I'm revisiting ragged hierarchies. I understand pushing down/replicating the levels. Some more back story. I used the OWB Create dimension expert to generate the dimension, mapping, etc for me and it worked well. However, it does not push down the levels. For example, I have a leaf at level 5, but need it to be pushed down into levels 6 - 8.
Has anyone out there done this sort of work in OWB before, if so, can you offer advice, tips, tricks, diagrams, code, anything? I'm simply stuck at this point.
Thanks for your time.
Dan
Similar Messages
-
Failed validation as a non-ragged hierarchy
After I define a TIME dimension and try to Maintain Dimension (Loading data at first time), it encounters error as below:
An error has occurred on the server
Error class: Express Failure
Server error descriptions:
INI: Error creating a definition manager, Generic at TxsOqConnection::generic<BuildProcess>
INI: XOQ-01714: "TIME_TEST_HA.TIME_TEST_HA" failed validation as a non-ragged hierarchy, Generic at TxsOqStdFormCommand::execute
at oracle.olapi.data.source.DataProvider.callGeneric(Unknown Source)
at oracle.olapi.data.source.DataProvider.callGeneric(Unknown Source)
at oracle.olapi.data.source.DataProvider.executeBuild(Unknown Source)
at oracle.olap.awm.wizard.awbuild.UBuildWizardHelper$1.construct(Unknown Source)
at oracle.olap.awm.ui.SwingWorker$2.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Here is the data from related table TIME_TEST:
SELECT * FROM TIME_TEST;
YEAR QUARTER MONTH DAY
2008 4 11 5
2008 1 2 6
2008 4 10 7
2009 1 1 1
2009 1 1 5
Any help will be appreciate!
Thanks,
SatineHi Stuart,
My OLAP version is 11.1.0.7, upgrading from 11.1.0.6.
Here is the XML file for the dimension.
<!DOCTYPE Metadata [
<!ENTITY % BIND_VALUES PUBLIC "OLAP BIND VALUES" "OLAP METADATA">
%BIND_VALUES;
]>
<Metadata
Version="1.1">
<TimeDimension
Name="DAD"
ETViewName="DAD_VIEW"
ETKeyColumnName="DIM_KEY"
ETLevelColumnName="LEVEL_NAME"
ETDimensionOrderColumnName="DIM_ORDER"
ETHierarchyOrderColumnName="HIER_ORDER">
<Hierarchy>
<LevelHierarchy
IsSkipLevel="False"
IsRagged="False"
Name="SAD"
ETParentColumnName="PARENT"
ETDepthColumnName="DEPTH"
ETViewName="DAD_SAD_VIEW">
<HierarchyLevel
DimensionLevel="YEAR">
<HierarchyLevelMap
KeyExpression="TEST_TEST."YEAR""
Query="TEST_TEST">
<AttributeMap
Name="DAD_YEAR_ID"
Expression="TEST_TEST."YEAR"">
<Attribute
Name="DAD_YEAR_ID"/>
</AttributeMap>
<AttributeMap
Name="END_DATE"
Expression="TO_DATE('2009-10-10', 'yyyy-mm-dd')">
<Attribute
Name="END_DATE"/>
</AttributeMap>
<AttributeMap
Name="TIME_SPAN"
Expression="200">
<Attribute
Name="TIME_SPAN"/>
</AttributeMap>
<AttributeMap
Name="YEAR_END_DATE"
Expression="TO_DATE('2009-10-10', 'yyyy-mm-dd')">
<Attribute
Name="YEAR_END_DATE"/>
</AttributeMap>
<AttributeMap
Name="YEAR_TIME_SPAN"
Expression="200">
<Attribute
Name="YEAR_TIME_SPAN"/>
</AttributeMap>
</HierarchyLevelMap>
</HierarchyLevel>
<HierarchyLevel
DimensionLevel="QUARTER">
<HierarchyLevelMap
KeyExpression="TEST_TEST."QUARTER""
Query="TEST_TEST">
<AttributeMap
Name="DAD_QUARTER_ID"
Expression="TEST_TEST."QUARTER"">
<Attribute
Name="DAD_QUARTER_ID"/>
</AttributeMap>
<AttributeMap
Name="END_DATE"
Expression="TO_DATE('2009-10-10', 'yyyy-mm-dd')">
<Attribute
Name="END_DATE"/>
</AttributeMap>
<AttributeMap
Name="QUARTER_END_DATE"
Expression="TO_DATE('2009-10-10', 'yyyy-mm-dd')">
<Attribute
Name="QUARTER_END_DATE"/>
</AttributeMap>
<AttributeMap
Name="QUARTER_TIME_SPAN"
Expression="200">
<Attribute
Name="QUARTER_TIME_SPAN"/>
</AttributeMap>
<AttributeMap
Name="TIME_SPAN"
Expression="200">
<Attribute
Name="TIME_SPAN"/>
</AttributeMap>
</HierarchyLevelMap>
</HierarchyLevel>
<HierarchyLevel
DimensionLevel="MONTH">
<HierarchyLevelMap
KeyExpression="TEST_TEST."MONTH""
Query="TEST_TEST">
<AttributeMap
Name="DAD_MONTH_ID"
Expression="TEST_TEST."MONTH"">
<Attribute
Name="DAD_MONTH_ID"/>
</AttributeMap>
<AttributeMap
Name="END_DATE"
Expression="TO_DATE('2009-10-10', 'yyyy-mm-dd')">
<Attribute
Name="END_DATE"/>
</AttributeMap>
<AttributeMap
Name="MONTH_END_DATE"
Expression="TO_DATE('2009-10-10', 'yyyy-mm-dd')">
<Attribute
Name="MONTH_END_DATE"/>
</AttributeMap>
<AttributeMap
Name="MONTH_TIME_SPAN"
Expression="200">
<Attribute
Name="MONTH_TIME_SPAN"/>
</AttributeMap>
<AttributeMap
Name="TIME_SPAN"
Expression="200">
<Attribute
Name="TIME_SPAN"/>
</AttributeMap>
</HierarchyLevelMap>
</HierarchyLevel>
<Description
Type="Description"
Language="ENGLISH"
Value="Sad">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Sad">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Sad">
</Description>
</LevelHierarchy>
</Hierarchy>
<DimensionLevel
Name="YEAR"
ETKeyColumnName="YEAR">
<Description
Type="Description"
Language="ENGLISH"
Value="Year">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Year">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Year">
</Description>
<UniqueKeyAttribute
Name="DAD_YEAR_ID"/>
<VisibleAttribute
Name="YEAR_END_DATE"/>
<VisibleAttribute
Name="YEAR_TIME_SPAN"/>
<VisibleAttribute
Name="YEAR_LONG_DESCRIPTION"/>
<VisibleAttribute
Name="YEAR_SHORT_DESCRIPTION"/>
</DimensionLevel>
<DimensionLevel
Name="QUARTER"
ETKeyColumnName="QUARTER">
<Description
Type="Description"
Language="ENGLISH"
Value="Quarter">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Quarter">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Quarter">
</Description>
<UniqueKeyAttribute
Name="DAD_QUARTER_ID"/>
<VisibleAttribute
Name="QUARTER_END_DATE"/>
<VisibleAttribute
Name="QUARTER_TIME_SPAN"/>
<VisibleAttribute
Name="QUARTER_LONG_DESCRIPTION"/>
<VisibleAttribute
Name="QUARTER_SHORT_DESCRIPTION"/>
</DimensionLevel>
<DimensionLevel
Name="MONTH"
ETKeyColumnName="MONTH">
<Description
Type="Description"
Language="ENGLISH"
Value="Month">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Month">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Month">
</Description>
<UniqueKeyAttribute
Name="DAD_MONTH_ID"/>
<VisibleAttribute
Name="MONTH_END_DATE"/>
<VisibleAttribute
Name="MONTH_TIME_SPAN"/>
<VisibleAttribute
Name="MONTH_LONG_DESCRIPTION"/>
<VisibleAttribute
Name="MONTH_SHORT_DESCRIPTION"/>
</DimensionLevel>
<Attribute>
<BaseAttribute
SQLDataType="DATE"
ETAttributeColumnName="END_DATE"
IsMultiLingual="False"
PopulateLineage="False"
IsVisibleForAll="True"
Name="END_DATE">
<Classification
Value="STAR"/>
<Description
Type="Description"
Language="ENGLISH"
Value="End Date">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="End Date">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="End Date">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="NUMBER"
ETAttributeColumnName="TIME_SPAN"
IsMultiLingual="False"
PopulateLineage="False"
IsVisibleForAll="True"
Name="TIME_SPAN">
<Classification
Value="STAR"/>
<Description
Type="Description"
Language="ENGLISH"
Value="Time Span">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Time Span">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Time Span">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="VARCHAR2(60)"
ETAttributeColumnName="LONG_DESCRIPTION"
IsMultiLingual="False"
PopulateLineage="False"
IsVisibleForAll="True"
Name="LONG_DESCRIPTION">
<Classification
Value="STAR"/>
<Description
Type="Description"
Language="ENGLISH"
Value="Long Description">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Long Description">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Long Description">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="VARCHAR2(60)"
ETAttributeColumnName="SHORT_DESCRIPTION"
IsMultiLingual="False"
PopulateLineage="False"
IsVisibleForAll="True"
Name="SHORT_DESCRIPTION">
<Classification
Value="STAR"/>
<Description
Type="Description"
Language="ENGLISH"
Value="Short Description">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Short Description">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Short Description">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="DATE"
ETAttributeColumnName="YEAR_END_DATE"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="END_DATE"
IsVisibleForAll="False"
Name="YEAR_END_DATE">
<Description
Type="Description"
Language="ENGLISH"
Value="Year End Date">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Year End Date">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Year End Date">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="NUMBER"
ETAttributeColumnName="YEAR_TIME_SPAN"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="TIME_SPAN"
IsVisibleForAll="False"
Name="YEAR_TIME_SPAN">
<Description
Type="Description"
Language="ENGLISH"
Value="Year Time Span">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Year Time Span">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Year Time Span">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="VARCHAR2(60)"
ETAttributeColumnName="YEAR_LONG_DESCRIPTION"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="LONG_DESCRIPTION"
IsVisibleForAll="False"
Name="YEAR_LONG_DESCRIPTION">
<Description
Type="Description"
Language="ENGLISH"
Value="Year Long Description">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Year Long Description">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Year Long Description">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="VARCHAR2(60)"
ETAttributeColumnName="YEAR_SHORT_DESCRIPTION"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="SHORT_DESCRIPTION"
IsVisibleForAll="False"
Name="YEAR_SHORT_DESCRIPTION">
<Description
Type="Description"
Language="ENGLISH"
Value="Year Short Description">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Year Short Description">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Year Short Description">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="DATE"
ETAttributeColumnName="QUARTER_END_DATE"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="END_DATE"
IsVisibleForAll="False"
Name="QUARTER_END_DATE">
<Description
Type="Description"
Language="ENGLISH"
Value="Quarter End Date">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Quarter End Date">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Quarter End Date">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="NUMBER"
ETAttributeColumnName="QUARTER_TIME_SPAN"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="TIME_SPAN"
IsVisibleForAll="False"
Name="QUARTER_TIME_SPAN">
<Description
Type="Description"
Language="ENGLISH"
Value="Quarter Time Span">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Quarter Time Span">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Quarter Time Span">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="VARCHAR2(60)"
ETAttributeColumnName="QUARTER_LONG_DESCRIPTION"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="LONG_DESCRIPTION"
IsVisibleForAll="False"
Name="QUARTER_LONG_DESCRIPTION">
<Description
Type="Description"
Language="ENGLISH"
Value="Quarter Long Description">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Quarter Long Description">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Quarter Long Description">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="VARCHAR2(60)"
ETAttributeColumnName="QUARTER_SHORT_DESCRIPTIO"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="SHORT_DESCRIPTION"
IsVisibleForAll="False"
Name="QUARTER_SHORT_DESCRIPTION">
<Description
Type="Description"
Language="ENGLISH"
Value="Quarter Short Description">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Quarter Short Description">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Quarter Short Description">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="DATE"
ETAttributeColumnName="MONTH_END_DATE"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="END_DATE"
IsVisibleForAll="False"
Name="MONTH_END_DATE">
<Description
Type="Description"
Language="ENGLISH"
Value="Month End Date">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Month End Date">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Month End Date">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="NUMBER"
ETAttributeColumnName="MONTH_TIME_SPAN"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="TIME_SPAN"
IsVisibleForAll="False"
Name="MONTH_TIME_SPAN">
<Description
Type="Description"
Language="ENGLISH"
Value="Month Time Span">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Month Time Span">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Month Time Span">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="VARCHAR2(60)"
ETAttributeColumnName="MONTH_LONG_DESCRIPTION"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="LONG_DESCRIPTION"
IsVisibleForAll="False"
Name="MONTH_LONG_DESCRIPTION">
<Description
Type="Description"
Language="ENGLISH"
Value="Month Long Description">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Month Long Description">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Month Long Description">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="VARCHAR2(60)"
ETAttributeColumnName="MONTH_SHORT_DESCRIPTION"
IsMultiLingual="False"
PopulateLineage="True"
AttributeGroupName="SHORT_DESCRIPTION"
IsVisibleForAll="False"
Name="MONTH_SHORT_DESCRIPTION">
<Description
Type="Description"
Language="ENGLISH"
Value="Month Short Description">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Month Short Description">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Month Short Description">
</Description>
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="VARCHAR2(8)"
ETAttributeColumnName="DAD_YEAR_ID"
IsMultiLingual="False"
PopulateLineage="False"
IsVisibleForAll="False"
Name="DAD_YEAR_ID">
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="VARCHAR2(8)"
ETAttributeColumnName="DAD_QUARTER_ID"
IsMultiLingual="False"
PopulateLineage="False"
IsVisibleForAll="False"
Name="DAD_QUARTER_ID">
</BaseAttribute>
</Attribute>
<Attribute>
<BaseAttribute
SQLDataType="VARCHAR2(6)"
ETAttributeColumnName="DAD_MONTH_ID"
IsMultiLingual="False"
PopulateLineage="False"
IsVisibleForAll="False"
Name="DAD_MONTH_ID">
</BaseAttribute>
</Attribute>
<Organization>
<AWPrimaryDimensionOrganization
MVOption="NONE"
HierarchyConsistencyRule="STAR_CONSISTENT"
AddUniqueKeyPrefix="True">
<MVCreationOptions
RefreshOn="DEMAND"
RefreshType="COMPLETE"
EnableRewriteMV="False"
UsingConstraintsClause="ENFORCED">
</MVCreationOptions>
<AttributeOrganization
CreateIndex="False"
Attribute="END_DATE">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="TIME_SPAN">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="LONG_DESCRIPTION">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="SHORT_DESCRIPTION">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="YEAR_END_DATE">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="YEAR_TIME_SPAN">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="YEAR_LONG_DESCRIPTION">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="YEAR_SHORT_DESCRIPTION">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="QUARTER_END_DATE">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="QUARTER_TIME_SPAN">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="QUARTER_LONG_DESCRIPTION">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="QUARTER_SHORT_DESCRIPTION">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="MONTH_END_DATE">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="MONTH_TIME_SPAN">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="MONTH_LONG_DESCRIPTION">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="MONTH_SHORT_DESCRIPTION">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="DAD_YEAR_ID">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="DAD_QUARTER_ID">
</AttributeOrganization>
<AttributeOrganization
CreateIndex="False"
Attribute="DAD_MONTH_ID">
</AttributeOrganization>
<AW
Name="&AW_NAME;"/>
<DefaultBuild>
<![CDATA[BUILD SPEC SYS_DEFAULT
LOAD,
COMPILE
)]]>
</DefaultBuild>
</AWPrimaryDimensionOrganization>
</Organization>
<Description
Type="Description"
Language="ENGLISH"
Value="Dad">
</Description>
<Description
Type="LongDescription"
Language="ENGLISH"
Value="Dad">
</Description>
<Description
Type="ShortDescription"
Language="ENGLISH"
Value="Dad">
</Description>
<TimeSpanAttribute
Name="TIME_SPAN"/>
<EndDateAttribute
Name="END_DATE"/>
<DefaultHierarchy
Name="SAD"/>
<ValueDescriptionAttribute
Name="LONG_DESCRIPTION"/>
<ShortValueDescriptionAttribute
Name="SHORT_DESCRIPTION"/>
</TimeDimension>
</Metadata>
You may want to have a test to change IsRagged="False" to IsRagged="True", then it woks well but the result is very stange.
And I find if the hierarchy is only with levels: YEAR and Quarter, then you can maintain it, but, for sure, the YEAR2009,QUARTER1 will overwrite YEAR2008,QUARTER1. If defining the hierarchy with levels:YEAR,QUARTER,MONTH, then you can't maintain it. On my opinion, it may because the data in third level MONTH can't identified the right routine to the higher level QUARTER.
Thanks,
Satine -
Ragged Hierarchy and Skip Level Hierarchy
Hi all,
I am confused with ragged and skip level hierarchy, as i read some documents related to obiee 11g.
Will you please explain with an example the difference between ragged hierarchy and skip level hierarchy and also when to use these hierarchies?
regards
chandra kanth.Chandra Kanth,
Hope this helps you
http://blogs.simba.com/.a/6a00e3932f172e88340133f4d758b5970b-800wi
Thanks,
Saichand.v -
Can Oracle OLAP (9.2 or higher) handle a ragged hierarchy?
eg: custom ownership chart
**\C100\
**\C100\C101\
**\C100\C101\102\
**\C100\C101\103\
**\C100\C101\103\104
**\C100\C101\103\104\105\106\107
**\C200\C201
**\C300\C301
**\C300\C301\C302
In other words, where a dimension may not have the same number of levels in its hierarchy? I guess more of a PC hierarchy than a LEVEL hierarcy?Do you have a link to more info/examples of this?
I have a fact table with UNIT, ACCOUNT and TIME dimensions
UNIT, ACCOUNT are each P.C hierarchies that I had to turn into LVLs for dimensions like so.
LVL1 LVL2 LVL3 LVL4 LVL5
CBC 261
CBC BC
CBC BC NBA
CBC BC NBA 240
CBC BC MAD
CBC BC MAD 241
CBC BC MAD BLDGS
CBC BC MAD BLDGS 231
CBC BC MAD BLDGS 232
CBC BC MAD BLDGS 233
Accounts are done the same way
I created hierarchies
LVL1->LVL2->LVL3->LVL4->LVL5 etc for ACCOUNT and UNIT
I want to pre-aggregate at the lowest level for each dimension.
How does AW do it if some records at LVL5 are NULL? -
I'm trying to create ragged hierarchy with no success. I need to hide the middle level (level 3) and I put the same code and name to the level 3 as in Level 2 (which is higher). But I keep seen all the levels. I'm using "OnlyChildWithParentName"
option and I'm connected with MDX Compatibility=2 (I don't know how to set this property in the other way) .
Do you have a solution to my problem?Hi Tatyanaa,
According to your description, you are trying to create ragged hierarchy with no success, right?
Generally, if we want to turn a user hierarchy into a ragged hierarchy (perhaps to avoid using a parent child hierarchy) we need to use the HideMemberIf property on the user hierarchy. Here is a blog which describe Ragged Hierarchies, HideMemberIf and MDX Compatibility,
please see:
http://cwebbbi.wordpress.com/2009/11/11/ragged-hierarchies-hidememberif-and-mdx-compatibility/
Regards,
Charlie Liao
TechNet Community Support -
Building hierarchy trees (ragged hierarchy) in OBIEE
We want to build a hierarchy tree to drill into the different levels of our organization. (ragged hierarchy) In OBIEE Answers or like product is there a way to expand down the page in a tree format? I am looking for what others have done to display that UI drill down similar to how the Windows registry/file system expands. Building filters across the page will not work for us. Any thoughts would be greatly appreciated. Thanks.
Edited by: jonloring on Jun 30, 2009 12:40 PMI did read it and was helpful, but I am trying to solve a UI formating problem. All the BI products seem to go across the page with filtering, not down the page in a tree format.
-
Query rewrite complains about ragged hierarchy when it does not exist
Hi -
I have a customer dimension with only one level. The lowest level of detai.
When I enable the query rewrite I get an error (see below) about ragged or skipped level hierarchy in my customer dimension. I am trying to figure out what the issue is so I created a one level customer hierarchy (lowest level) and I still get the error.
I do not understand how I can have a skipped/ragged hierarchy when my dimension is at the lowest level.
I am using the lastest versions of AWM and 11G.
Thanks in advance for any help you can provide,
Frank
Invalid Metadata Objects:
Invalid Object "MYTEST.CUST_SALES": "XOQ-01957: The cube has REWRITE MVs and also contains either a ragged or skip-level hierarchy. The hierarchy is "MYTEST.CUST_DIM.STANDARD"."
Edited by: bmwrider on Oct 16, 2009 9:01 AMHi there,
See this:- Error when trying to enable cube MV query rewrite
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 -
Ragged hierarchy does not aggregate
Hi,
I have a dimension with ragged hierarchy of three levels:
level 1-> level 2 -> level 3
Some of the level 2 data do not have children (level 3). I mapped the dimension to cube with both level 2 and level 3 as required. Data is loaded into the cube but not those level 2 that have children.
Any suggestions are appreciated.
JuneI see two possible cases here.
(1) The source data may be loaded for the level 2 members without children, but the subsequent SOLVE step gets rid of them again.
(2) The source data is not loaded for the level 2 members in the first place.
You say that there are no rejected records, so problem (2) doesn't seem likely. But you can check that easily enough using the following script. This will clear the cube and load the leaf data, but will not aggregate. Obviously you should change "my_cube" to the name of your cube and set the parallelism appropriately based on your system and the amount of data you have.
exec dbms_cube.build('my_cube using (clear, load)', add_dimensions=>false, parallelism=>2)If there is still no data for the level 2 members after this, then you are having problem number (2). If the data is there, then it is problem (1). I will hold off from giving possible causes of (1) and (2) until we know which it is. -
Ragged Hierarchy - aggregation problem
I build dimension with Ragged Hierarchy as posted in [|http://oracleolap.blogspot.com/2008/01/olap-workshop-4-managing-different.html]
in "*Skip, Ragged and Ragged-Skip Level Hiearchies*" section.
I use scott schema for test
_1- build dimension emp with 4 levels using this data_
==> these data come from relation between EMPNO and MGR columns of EMP table
LVL1_CODE, LVL1_DESC, LVL2_CODE, LVL2_DESC, LVL3_CODE, LVL3_DESC, LVL4_CODE, LVL4_DESC
7839, KING
7839, KING , 7566, JONES
7839, KING, 7566, JONES, 7788, SCOTT
7839, KING, 7566, JONES, 7788, SCOTT, 7876, ADAMS
7839, KING, 7566, JONES, 7902, FORD
7839, KING , 7566, JONES, 7902, FORD, 7369, SMITH
7839, KING , 7698, BLAKE
7839, KING , 7698, BLAKE, 7499, ALLEN
7839, KING , 7698, BLAKE, 7521, WARD
7839, KING , 7698, BLAKE, 7654, MARTIN
7839, KING , 7698, BLAKE, 7844, TURNER
7839, KING , 7698, BLAKE, 7900, JAMES
7839, KING , 7782, CLARK
7839, KING , 7782, CLARK, 7934 MILLER
_2- build cube salary cube using this data_
EMPNO SAL
7369 800
7499 1600
7521 1250
7566 2975
7654 1250
7698 2850
7782 2450
7788 3000
7839 5000
7844 1500
7876 1100
7900 950
7902 3000
7934 1300
The total sum of salary on the top of hierarchy "KING" is 9,750$ and the correct value must be 29,025$.
I Notice that, in any node in hierachy that has childern the value of salary sum is the summation of its chiildern only without its value.
so what is the problem??EMPNO SAL
7369 800
7499 1600
7521 1250
7566 2975
7654 1250
7698 2850
7782 2450
7788 3000
7839 5000
7844 1500
7876 1100
7900 950
7902 3000
7934 1300I can see the above data and looks like you are loading some values at higher level i.e. for emp no 7566. In DWH you will be loading data at leaf level and OLAP engine does aggregation(solve) and store data at higher level. What you are seeing is correct as any node's value is equal to the sum of values of its children.
Thanks,
Brijesh -
Ragged Hierarchy Snowflake Displays Dimension Key as Descriptor
Hello All -
I am having an issue with OWB 10gR2 and any help would be appreciated.
I have created a Product Dimension using the "ROLAP" - "Manual" storage method which I've modeled as a snowflake to support our ragged hierarchy.
I can create, validate, and view the data in the dimension and it is correct ... but the only level of my three levels (All Products, Products, Sub Products) to display the descriptor is the Sub Products level. The other two levels display the Surrogate ID - regardless of what settings I change.
I know this might sound trivial but it does make a huge difference when you're working with a large number of product hierarchies or demonstrating to non-technical superiors.
Thanks in advance for any assistance!I took a look at this thread, but I think you have a different issue than mine. My Snowflake dimension isn't implemented as MANUAL. I use the Snowflake option and it isn't a "ragged" hierarchy.
In reality I do, but I "force" the levels to the maximum number. This lets me attach all facts at the base level and have a single grain. For example if I had a mix of 2 level and 3 level hierarchies, I repeat level 2 into level 3 for the 2 level items.
I rarely use the data viewer, but I did see that if I use it on the table objects, I see my short descriptors. If I use it on the dimension objects it doesn't work - probably because I only implement relational objects. -
Hi
I have a parent child ragged hisrarchy. I want to build level wise dimension to be able to report using crystal .
The PC table I have is like
Child Parent
A11 A1
A12 A1
A111 A11
A112 A11
A113 A11
A121 A12
A122 A12
A1121 A112
A1221 A122
A1222 A122
I want to solve this as a level based hierarchy using universe like:
LEV1 LEV2 LEV3 LEV4
A1 A12 A122 A1222
A1 A12 A122 A1221
A1 A11 A112 A1121
A1 A12 A122
A1 A12 A121
A1 A11 A113
A1 A11 A112
A1 A11 A111
A1 A12
A1 A11
Can somebody please put some light on this how can I achieve this?
Thanks
AtulHi Atul,
You can use a Derived Table that flatten the hierarchy.
Here is a sample based on the example you provided, you just have to replace "child", "parent" and "myTable" strings by the corrseponding column and table names:
SELECT DISTINCT
Z.child,
A.parent_1,
A.child_1,
A.parent_2,
A.child_2,
A.parent_3,
A.child_3,
Z.parent AS parent_4,
Z.child AS child_4
FROM myTable Z,
SELECT DISTINCT
A.parent_1,
A.child_1,
A.parent_2,
A.child_2,
Z.parent AS parent_3,
Z.child AS child_3
FROM myTable Z,
SELECT DISTINCT
A.parent_1,
A.child_1,
Z.parent AS parent_2,
Z.child AS child_2
FROM myTable Z,
SELECT DISTINCT
parent AS parent_1,
child AS child_1
FROM myTable
WHERE parent = 0 OR parent IS NULL
) A
WHERE A.child_1 = Z.parent
) A
WHERE A.child_2 = Z.parent
) A
WHERE A.child_3 = Z.parent
UNION
SELECT DISTINCT
A.child_3 AS child,
A.parent_1,
A.child_1,
A.parent_2,
A.child_2,
A.parent_3,
A.child_3,
NULL AS parent_4,
NULL AS child_4
FROM myTable Z,
SELECT DISTINCT
A.parent_1,
A.child_1,
A.parent_2,
A.child_2,
Z.parent AS parent_3,
Z.child AS child_3
FROM myTable Z,
SELECT DISTINCT
A.parent_1,
A.child_1,
Z.parent AS parent_2,
Z.child AS child_2
FROM myTable Z,
SELECT DISTINCT
parent AS parent_1,
child AS child_1
FROM myTable
WHERE parent = 0 OR parent IS NULL
) A
WHERE A.child_1 = Z.parent
) A
WHERE A.child_2 = Z.parent
) A
WHERE A.child_3 NOT IN (SELECT parent FROM myTable)
UNION
SELECT DISTINCT
A.child_2 AS child,
A.parent_1,
A.child_1,
A.parent_2,
A.child_2,
NULL AS parent_3,
NULL AS child_3,
NULL AS parent_4,
NULL AS child_4
FROM myTable Z,
SELECT DISTINCT
A.parent_1,
A.child_1,
Z.parent AS parent_2,
Z.child AS child_2
FROM myTable Z,
SELECT DISTINCT
parent AS parent_1,
child AS child_1
FROM myTable
WHERE parent = 0 OR parent IS NULL
) A
WHERE A.child_1 = Z.parent
) A
WHERE A.child_2 NOT IN (SELECT parent FROM myTable)
UNION
SELECT DISTINCT
A.child_1 AS child,
A.parent_1,
A.child_1,
NULL AS parent_2,
NULL AS child_2,
NULL AS parent_3,
NULL AS child_3,
NULL AS parent_4,
NULL AS child_4
FROM myTable Z,
SELECT DISTINCT
parent AS parent_1,
child AS child_1
FROM myTable
WHERE parent = 0 OR parent IS NULL
) A
WHERE A.child_1 NOT IN (SELECT parent FROM myTable)
Regards,
Didier -
Essbase Accounts Hierarchy -- Design Help
Hi All,Iam designing a P&L Cube & a Balance sheet Cube.I have a specific problem---Please read below1. In JDE, Account number is the combination of the BU , Object Account & Sub Account.Seems the unique number of accounts (with Account Numbers) are 1.5 million.Upto (Level 6 in JDE) , Accounts are standard across the Companies or business unitsOne company has several business units.Building hierarchy till level 6(level 6 means level 6 in JDE) may not be a problem in Essbase.The real challenge is after level 6,level 7 level 8 level 9 accounts are there & these are not standard for all business units. They differ for each business unit.For example,Bank Account ( suppose at level 6) for a BU 41100000 , BU 41000000 , BU 40000000Bankone (level 7 ) for the 4110000053 bank (level 7 ) for the 41100000Firstunion ( level 7) for 41000000FleetBank (level 7) for 41000000FleetBank (level 7) for 40000000So in this case how to achieve uniqueness vis-a-vis Essbase.Answer is : Account number which is the combination of the BU , object account & Sub accountBut what worries me is if we have 20,000 (suppose) Business units & we have level 7 accounts on an average 10 per BU, then which means we have to build 20,000 * 10 which is equivalent to 200,000.... if we think of level 8 , same logic continues....so when we build hierarchy.... for 1.5 million unique records we might end up having atleast 500,000 stored members, I think.My solution to this was not to go to level of detail after 6th level in JDE.What is your opinion?Did anyone come across such a situation. The Business people want to see the level of detail till level 9 of JDE & report also on that...What is the solution for this kind of problem??Notes : Levels in JDE are equivalent to generations in Essbase
I do something similar with JDE. I use short account id's in some cases to create uniqueness. I also have member names consisting of the full three tier account structure. My app is a read/write budgeting/forecasting application. Not sure what you are trying to do with your app. You can e-mail me if you havent't aleady figured out your [email protected]
-
Essbase Accounts Hierarchy--- Design Issue
Hi All,Iam designing a P&L Cube & a Balance sheet Cube.I have a specific problem---Please read below1. In JDE, Account number is the combination of the BU , Object Account & Sub Account.Seems the unique number of accounts (with Account Numbers) are 1.5 million.Upto (Level 6 in JDE) , Accounts are standard across the Companies or business unitsOne company has several business units.Building hierarchy till level 6(level 6 means level 6 in JDE) may not be a problem in Essbase.The real challenge is after level 6,level 7 level 8 level 9 accounts are there & these are not standard for all business units. They differ for each business unit.For example,Bank Account ( suppose at level 6) for a BU 41100000 , BU 41000000 , BU 40000000Bankone (level 7 ) for the 4110000053 bank (level 7 ) for the 41100000Firstunion ( level 7) for 41000000FleetBank (level 7) for 41000000FleetBank (level 7) for 40000000So in this case how to achieve uniqueness vis-a-vis Essbase.Answer is : Account number which is the combination of the BU , object account & Sub accountBut what worries me is if we have 20,000 (suppose) Business units & we have level 7 accounts on an average 10 per BU, then which means we have to build 20,000 * 10 which is equivalent to 200,000.... if we think of level 8 , same logic continues....so when we build hierarchy.... for 1.5 million unique records we might end up having atleast 500,000 stored members, I think.My solution to this was not to go to level of detail after 6th level in JDE.What is your opinion?Did anyone come across such a situation. The Business people want to see the level of detail till level 9 of JDE & report also on that...What is the solution for this kind of problem??Notes : Levels in JDE are equivalent to generations in Essbase
I do something similar with JDE. I use short account id's in some cases to create uniqueness. I also have member names consisting of the full three tier account structure. My app is a read/write budgeting/forecasting application. Not sure what you are trying to do with your app. You can e-mail me if you havent't aleady figured out your [email protected]
-
Accounts Hierarchy--Design Issue
Hi All,Iam designing a P&L Cube & a Balance sheet Cube.I have a specific problem---Please read below1. In JDE, Account number is the combination of the BU , Object Account & Sub Account.Seems the unique number of accounts (with Account Numbers) are 1.5 million.Upto (Level 6 in JDE) , Accounts are standard across the Companies or business unitsOne company has several business units.Building hierarchy till level 6(level 6 means level 6 in JDE) may not be a problem in Essbase.The real challenge is after level 6,level 7 level 8 level 9 accounts are there & these are not standard for all business units. They differ for each business unit.For example,Bank Account ( suppose at level 6) for a BU 41100000 , BU 41000000 , BU 40000000Bankone (level 7 ) for the 4110000053 bank (level 7 ) for the 41100000Firstunion ( level 7) for 41000000FleetBank (level 7) for 41000000FleetBank (level 7) for 40000000So in this case how to achieve uniqueness vis-a-vis Essbase.Answer is : Account number which is the combination of the BU , object account & Sub accountBut what worries me is if we have 20,000 (suppose) Business units & we have level 7 accounts on an average 10 per BU, then which means we have to build 20,000 * 10 which is equivalent to 200,000.... if we think of level 8 , same logic continues....so when we build hierarchy.... for 1.5 million unique records we might end up having atleast 500,000 stored members, I think.My solution to this was not to go to level of detail after 6th level in JDE.What is your opinion?Did anyone come across such a situation. The Business people want to see the level of detail till level 9 of JDE & report also on that...What is the solution for this kind of problem??Notes : Levels in JDE are equivalent to generations in Essbase
even though it might become a very sparsely populated cube, and I don't know if your business requirements would allow it, can you split the Accounts dimension across three dimensions: BU , Object Account & Sub Account?Or if you are using EIS to build the cube, to use Hybrid analysis to store levels in the hieracrhy relationally?
-
Hi
I am designing an SCCM 2012 environment at the moment.
We have 7 locations. 2 are data centers and have excellent links between them. our main office is well connected to the DCs 100MB link.
All other offices have between 50 and 200 users. All of these offices have at least 10MB links to the main office and the 2 x DCs.
I was thinking of deploying CAS and Primary Site servers in 1 DC. Installing SQL 2008 R2 there also to support this. Then in secondary DC installing Secondary Site Server.
For all offices with users I am planning to implement distribution points.
My main concern is that we have an 8th location that is a partner company that has a separate forest with no trust. How can I configure that so that we can control what can be deployed but that the local staff can administer the deployments etc??
Also how will SQL work for me in this regard in the szecondary location - I know SQL Express will be used, but will Express support a large SCCM database?
Thanks in advance!So basically I should install a primary site in our main location and then DPs and SUPs in all other locations (aprt from the remote untrusted forest)??
Correct.
Also what do I need to consider for DR if the main site that holds the primary site server is lost?
DR in ConfigMgr (like most other products) is backup and restore. Are you actually asking about HA and/or site resiliency?
If I do go with secondary sites, how large does the SCCM DB grow to, with 5-6K clients connected? Im just thinking will SQL Express be able to support this?
Secondary sites do not store client information so the DB doesn't grow very large at all.
Jason | http://blog.configmgrftw.com
Maybe you are looking for
-
Mouse will not scroll with FireFox but works with Explorer
The only time my BlueTooth mouse has problems scrolling is with FireFox.
-
Gap_y setting ignored, conky placed incorrectly
I have a weird problem with my Conky in Openbox. It seems to be drawn in the correct place initially, but then it snaps to the top of the screen, dragging bits of the wallpaper with it. Here is my .conkyrc: # Use Xft? use_xft yes xftfont Bitstream Ve
-
Hi Greetings I need to develop a Z report for calculating the consumption for a given period. Can you please suggest me the list of movement types to be considered for calculating the stock consumption for the given period. Gobinathan G
-
4.0EA3 Large cache file in roaming profile
I tried running 4.0 EA3 on my Windows 7 64-bit PC with the 64-bit JDK. I then immediately got a warning about my roaming profile exceeding the maximum space allocated. We have 60 MB allocated and I was using 30 MB or less prior to running EA3. It app
-
Validation also needs to know if row is checked.
I have a tabular form. It displays a list of product names, and there is a flag as to whether the name is primary or not. Each chemical needs to have exactly one primary name. So I want a validation that will give an error if the user tries to delete