2011-10-22 1 views
0

현재 양방향 솔루션을 설정 중이며 큐브 및 해당 계층을 정의하는 데 어려움이 있습니다.OLAP에서 동적 계층을 설정하는 방법

스키마 정의의 일부는 다음과 같습니다

<Dimension foreignKey="user" highCardinality="false" name="user"> 
    <Hierarchy name="user" hasAll="true" allMemberName="all" primaryKey="ID"> 
    <Table name="user" /> 
    <Level name="timezone" column="timezone"/> 
    <Level name="locale" column="locale"/> 
    <Level name="gender" column="gender"/> 
    </Level> 
    </Hierarchy> 
</Dimension> 

지금 내가 직접 성 수준에 액세스하려는.

SELECT 
{[user].[gender].Members} ON COLUMNS, 
{[Measures].[Fact Count]} ON ROWS 
FROM [cube] 

결과는 [user].[zone3].[de_DE].[male] = 10, [user].[zone1].[en_US].[male] = 30과 같습니다. 나는 성별에 합계를 원합니다 : [user].[male] = 20[user].[female] = 30.

요약하면 레벨의 유연한 순서가 필요합니다. 이것이 가능한가? 나는 평행 계층이 있다는 것을 알고 있지만 모든 가능한 순서에 대해 하나를 만들 수는 없다. ...

또한 레벨 대신 속성에 모든 속성을 넣으려고했지만 단순한 총 남성/여성의 수를 계산할 수 없었다. 사용자.

그리고 모든 일이 동적 BI 툴의 일부가 될 것이기 때문에 그것은 아주 간단합니다 ...

+0

BI 도구를 작성 하시겠습니까? 또는 BI 도구에 사용/가져 오기 할 데이터를 구성하거나 설정하고 있습니까? – Yahia

+0

BI 도구로 무엇을 고려합니까? 나는 olap 큐브에 몬 드리 안 (mondrian)을 사용합니다. – gapvision

+0

내 잘못 - 처음에는 '몬 드리 안'을 처음 보지 못했습니다 ... 죄송합니다, 제가 많이 도울 수는 없지만 ... 잘하면 다른 누군가가 할 수 있습니다 ... – Yahia

답변

1

당신은 당신이 원하는에 대한 잘못된 기능을 사용하고 있습니다.

멤버 MDX 함수는 Level의 모든 값이 아닌 MDX에 대한 제약 조건을 포함하는 모든 멤버를 가져옵니다. 레벨의 모든 값을 원합니다.

어린이 MDX 기능을 사용해야합니다. 연관된 레벨의 모든 값 (또는 하위)을 취합니다. 이 시도 : 요약

SELECT {[user].[gender].children} ON COLUMNS, 
    {[Measures].[Fact Count]} ON ROWS 
FROM [cube] 

을, 나는 수준의 유연한 주문이 필요합니다. 이것이 가능한가? 평행 계층이 있다는 것을 알고 있지만 모든 가능한 순서에 대해 하나를 만들 수는 없습니다 ...

하나의 계층 만 포함하는 계층을 만듭니다. 나는 그것이 정말로 강하다는 것, 추천 될 것이고 융통성을 잃지 않는 그들의 계층 구조에 아무 것도 없다는 것을 안다. 이렇게하면 드릴 다운 및 롤업 (계층 구조 사용)과 같은 데이터 큐브의 잘못된 OLAP 작업이 방지됩니다. 다음과 같이하십시오 :

<Dimension foreignKey="user" highCardinality="false" name="user"> 
    <Hierarchy name="TIMEZONE" hasAll="true" allMemberName="all" primaryKey="ID"> 
    <Table name="user" /> 
    <Level name="timezone" column="timezone"/> 
    </Hierarchy> 
    <Hierarchy name="LOCALE" hasAll="true" allMemberName="all" primaryKey="ID"> 
    <Table name="user" /> 
    <Level name="locale" column="locale"/> 
    </Hierarchy> 
    <Hierarchy name="GENDER" hasAll="true" allMemberName="all" primaryKey="ID"> 
    <Table name="user" /> 
    <Level name="gender" column="gender"/> 
    </Hierarchy> 
</Dimension> 

희망 도움말.