Ragged Hierarchy
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?
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 -
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 -
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.
DanHi. 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 -
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 -
Skipped and ragged level hierarchy in OBIEE11g
Hi
I tried creating aboth skipped and ragged hierarchy in OBIEE 10g
It works fine without error
SO I have doubt why they have introduced this concept in OBIEE 11g, Is there any more feture about this
Please help me@Abdul : can you please let us know how you have implemented skip level hierarchy in 10g..
actually we need to implement it ,didn't find anything in google search ...
thanks In advance -
Parent Child Hierarchy Issue in OBIEE 11g
Hi All,
I am in OBIEE 11G v6. I have a sales fact table where the grain is one sale. So I have one row for every sale done.
Now I have a ragged employee hierarchy like this with David at the root node.
David >>Richard>>Sean
David >>James
Also, I have a role dimension which gives me what role each employee has performed on a sale. Only one employee can be associated with one sale. This is the way Roles have been asssigned
David = Manager
Richard = Off1
Sean = Off2
James = Off2
Both Sean and James can have same Roles. Now I have created a parent child hierarchy for my employee dimension and the closure table. Defined the member key, ancestor key relationship in the parent child setting etc.
Now in the report when I pull the parent child hierarchy and the sales_amount in the report, it comes out perfect with all the ragged hierarchy resolved. But the issue comes when I try to limit the report on Role = Off2. It gives me an error saying " The layout of this view combined with the data, selection , drills resulted in no data. Undo drill and view prompt values". Basically what i want is to be able to select any role type and then my hierarchy should be adjusted to show me that data. Like when I select Off2, I want to see David at the Top level and Sean and James under him because they are both Off 2 and David is their manager.
Is that possbile? Also, am I getting this error because when I select Off2 though it gets Sean and James but since David is not Off2, I don't get the data?
I hope I was able to explain the issue, any help on this would be greatly appreciated.
Thanks
RonnySo basically this means that if I build a parent child hierarchy on table A having the stucture like
--David (Manager)
-----James (Off1)
--------Bill (Off2)
and in my sales fact table for let's say today, I have only rows for Bill (Off2) because he is the only officer who did the sales today. Now when I will join my fact table to parent child hierarchy table A I will NOT get any data ? because there is no James who is the parent of Bill. So obiee need to have parent pulled off in the data (ANCESTOR) to be able to roll up the child.(IS_LEAF = 1)
I testes this and if my data only contains only rows for Bill (or I limit on ROLE = Off2) then it won't show the hierarchy. The query which OBIEE fires is to look for either ANCESTOR_KEY = NULL OR (DISTANCE = 1 AND ANCESTOR KEY IN (Bill). Therefore it doesn't I am wondering then what is the use of builiding the parent child hierarchy when we need to pull in all the ancestors (like in this case James for bill and David for james) because in real scenarios there can be cases wherein we would want to filter the data based on other dimensions to which the parent child hierarchy joins ? -
Data loaded all level in a hierarchy and need to aggregate
I am relatively new to Essbase and I am having problems with the aggregation of cube.
Cube outline
Compute_Date (dense)
20101010 ~
20101011 ~
20101012 ~
Scenario (dense)
S1 ~
S2 ~
S3 ~
S4 ~
Portfolio (sparse)
F1 +
F11 +
F111 +
F112 +
F113 +
F12 +
F121 +
F122 +
F13 +
F131 +
F132 +
Instrument (sparse)
I1 +
I2 +
I3 +
I4 +
I5 +
Accounts (dense)
AGGPNL ~
PNL ~
Porfolio is a ragged hierarchy
Scenario is a flat hierrachy
Instrument is a flat hierarchy
PNL values are loaded for instruments at different points in the portfolio hierarchy.
Then want to aggregate the PNL values up the portfolio hierarchy into AGGPNL, which is not working the loaded PNL values should remain unchanged.
Have tried defining the following formula on AGGPNL, but this is not working.
IF (@ISLEV (folio,0))
pnl;
ELSE
pnl + @SUMRANGE("pnl",@RELATIVE(@CURRMBR("portfolio"),@CURGEN("portfolio")+1));
ENDIF;
using a calc script
AGG (instrument);
AGGPNL;
Having searched for a solution I have seen that essbase does implicit sharing when a parent has a single child. This I can disable but this is not the sole cause of my issues I think.The children of F11 are aggregated, but the value which is already present at F11 is over wriiten and the value in F11 is ignored in the aggregation.^^^That's the way Essbase works.
How about something like this:
F1 +
===F11 +
======F111 +
======F112 +
======F113 +
======F11A +
===F12 +
======F121 +
======F122 +
===F13 +
======F131 +
======F132 +
Value it like this:
F111 = 1
F112 = 2
F113 = 3
F11A = 4
Then F11 = 1 + 2 + 3 + 4 = 10.
Loading at upper levels is something I try to avoid whenever possible. The technique used above is incredibly common, practically universal as it allows the group level value to get loaded as well as detail and agg up correctly. Yes, you can load to upper level members, but you have hit upon why it isn't all that frequently done.
NB -- What you are doing is only possible in BSO cubes. ASO cube data must be at level 0.
Regards,
Cameron Lackpour -
Error when drill down with essbase hierarchy
Hi ,
I am displaying one bar chart with, one Ragged hierarchy dimension "Region" ( structure : total region - > India , US -> India south , US south -> chennai , California) and "revenue" (measure) .
Sometime's the drill down is happening smoothly (region - > sub region - > city) but sometimes its throwing below error :
Error Codes: OAMP2OPY:QIKSHNQU
DXE compiler error. Coordinate in target list must match to*coordinate in group by list. Source name:*
GroupbyAndCoorTableCompiler::run. XML: <sawxd:expr*xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"**xmlns:sawxd="com.siebel.analytics.web/expressiondxe/v1.1"**xmlns:sawq="com.siebel.analytics.web/querydxe/v1.1"**xsi:type="sawq:groupbyField" refCoorID="5"/>*
FYI , I have a product prompt attached with this graph . i.e , when user selects "total product" and drilling down its
working perfectly but when selects "network products" its throwing the mentioned error .
OBIEE version used : 11.1.1.6.2 (Build 120604.0813 BP1 64-bit)
essbase version used : 11.1.2.1
Thanks
sayakI have created one report using Essbase cubes in OBIEE11G and when I am archiving the same report at one local server and unarchiving it at some other server then at the other server I am facing this error.
Any replies will indeed be helpful.
Maybe you are looking for
-
The question says it all!
-
How to transfer contact list from iphone 4 to 4s
Appreciate advice about transfering the contact list from iphone 4 to Iphone 4s.
-
Explanation of MB01 and generation of Goods Recipt
Hello Experts, This is my first exposure to BDC , i am totally clueless, and in need of some urgent help. Can someone be kind enough to explain, How TC:MB01 works in a BDC program where Goods recipts are generated based on the Purchase O
-
Hi I need a series number for iWork's.
Hi I need a series number for iworks I try to save and print things out but it says i must have this number and it says it will be send by e-mail.
-
Dear all, we have requirement to find out OSB Service Processing time. can you please suggest how we can get this information using OSB Console or if ther are any JMX Api available to get this data. requirement is: to know the actual execution time i