동적 계산이 계산 순서를 변경하는 방법

동적 계산은 뱃치 계산 성능을 최적화하고 Essbase가 값을 계산하는 순서를 변경합니다. 희소 치수가 먼저 계산됩니다. 비대칭 데이터 세트에서 또는 두 패스 멤버에서 동적 계산을 사용할 때는 주의해야 합니다.

동적으로 계산된 데이터 값을 사용하면 Essbase에서 값을 계산하는 순서가 변경되며 큐브 관리 방법에 영향을 줄 수 있습니다.

동적 계산용 계산 순서

동적 계산을 사용하는 경우 Essbase는 희소 차원의 값을 먼저 계산한 다음 밀집으로 계산합니다. 밀집 값은 계정, 시간, 시계열, 기타 밀집 차원 및 마지막으로 속성 순서로 계산됩니다.

Essbase는 데이터 값을 동적으로 계산할 때 뱃치 데이터베이스 계산 순서와 다른 순서로 데이터를 계산합니다.

뱃치 계산 중 Essbase는 다음 순서로 데이터베이스를 계산합니다.

  1. 계정으로 태그 지정된 차원

  2. 차원 태그 시간

  3. 기타 밀집 차원(데이터베이스 아웃라인에 나타나는 순서대로)

  4. 기타 희소 차원(데이터베이스 아웃라인에 나타나는 순서대로)

  5. 두 패스 계산

블록 스토리지 데이터베이스 계산 순서를 참조하십시오.

동적으로 계산된 값의 경우 검색 시 Essbase는 다음 순서로 데이터베이스를 계산하여 값을 계산합니다.

  1. 희소 차원

    • 시간으로 태그 지정된 차원이 희소하고 데이터베이스 아웃라인이 시계열 데이터를 사용하는 경우 Essbase는 시간 차원에서 희소 계산을 기반으로 합니다.

    • 그렇지 않은 경우 Essbase는 일반적으로 뱃치 계산에 사용하는 차원에 대한 계산을 기반으로 합니다.

  2. 밀집 치수

    1. 차원 태그가 계정으로 지정됨(밀도가 있는 경우)

    2. 밀집인 경우 시간으로 태그 지정된 차원

    3. 시계열 계산됩니다.

    4. 남은 밀집 차원

    5. 두 패스 계산

    6. 속성

데이터 검색에서 속성 멤버를 사용하는 경우 계산 순서의 마지막 단계는 속성 합계입니다. 속성 계산은 질의에 지정된 속성 멤버와 일치하는 데이터 블록에 대해 즉시 집계를 수행합니다. 질의에 두 패스 계산 멤버가 포함된 경우 속성 계산은 모든 집계된 값이 수집된 후 두 패스 계산 멤버 공식을 적용합니다. 이 두 패스 계산은 실제 데이터 블록의 값이 아닌 속성 계산의 데이터 값을 사용합니다.

쿼리에 속성 멤버를 사용하면 Essbase가 동적 계산에서 시간 균형 멤버의 값을 무시합니다. 속성을 사용하지 않는 검색을 수행하는 동안 Time Balance 멤버의 값이 계산에 적용됩니다. 속성 멤버의 사용 및 비사용 간의 계산 프로시저 차이는 동적으로 계산된 상위 레벨 시간 멤버에 대해 서로 다른 결과를 생성합니다.

속성을 사용하지 않는 검색 중 동적으로 계산된 이러한 멤버는 마지막 단계에서 계산되므로 시간 누계 기능을 제대로 적용합니다. 그러나 속성을 사용하는 검색 중 속성 합산이 적용된 마지막 단계입니다. 계산 순서의 차이는 동적으로 계산되는 상위 레벨 시간 멤버에 대해 예측 가능한 두 가지 다른 결과를 생성합니다.

2패스 멤버를 동적으로 계산하기 위한 계산 순서

동적 계산Essbase가 값을 계산하는 순서를 변경합니다. 두 패스 멤버와 함께 동적 계산을 사용할 때는 주의해야 합니다. 대신 해결 순서와 함께 하이브리드 모드를 사용하는 것이 좋습니다.

2단계로 태그 지정된 멤버에 대한 데이터 값을 동적으로 계산할 때 Essbase가 필요한 계산 결과를 생성하도록 하려면 다음 정보를 고려하십시오(2단계 계산 참조).

주:

하이브리드 모드 큐브에 2단계 계산을 사용하지 마십시오. 해결 순서만 사용합니다.

여러 동적 계산 밀집 차원 멤버에 두 패스로 태그가 지정된 경우 Essbase는 첫 번째 패스에서 동적 계산을 수행한 다음 이 순서로 두 패스 멤버를 계산합니다.

  1. 계정 차원의 두 패스 멤버(있는 경우)

  2. 시간 차원의 두 패스 멤버(있는 경우)

  3. 차원이 아웃라인에 표시되는 순서대로 나머지 밀집 차원의 2단계 멤버

예를 들어, Sample.Basic 데이터베이스에서 다음을 가정합니다.

  • 밀집 측정 단위 차원(계정으로 태그 지정된 차원)의 마진%는 동적 계산 및 2단계로 태그가 지정됩니다.

  • 밀집 시나리오 차원의 차이에는 동적 계산 및 2단계로 태그가 지정됩니다.

Essbase는 먼저 계정 차원 멤버를 계산합니다. 따라서 Essbase는 측정항목 차원에서 마진%를 계산한 다음 시나리오 차원에서 차이를 계산합니다.

시나리오가 희소 차원인 경우 Essbase는 동적 계산에 대한 정규 계산 순서에 따라 먼저 차이를 계산합니다. 그런 다음 Essbase가 마진율을 계산합니다. 동적 계산용 계산 순서를 참조하십시오.

Essbase는 차이 공식이 아닌 마진 %의 공식을 사용하여 마진 % -> 차이를 계산해야 하므로 이 계산 순서는 필요한 결과를 생성하지 않습니다. 시나리오를 밀집 차원으로 만들어 이 문제를 방지할 수 있습니다. Essbase가 여전히 마진%를 먼저 계산하기 때문에 측정항목 차원(계정 차원)이 희소인 경우에는 이 문제가 발생하지 않습니다.

비대칭 데이터에 대한 계산 순서

Essbase 동적 계산은 비대칭 데이터 세트와 함께 사용하기에 적합하지 않을 수 있습니다. 사용 사례에 대해 이 항목의 예를 검토합니다.

동적 계산의 계산 순서가 뱃치 계산의 순서와 다르기 때문에 일부 큐브 아웃라인에서는 특정 멤버를 동적 계산으로 태그 지정할 경우 다른 계산 결과를 얻을 수 있습니다. 이러한 차이는 Essbase가 비대칭 데이터를 동적으로 계산할 때 발생합니다.

대칭 데이터 계산은 계산되는 차원에 관계없이 동일한 결과를 생성합니다.

아래 대칭 예제의 데이터 세트를 사용하여 Qtr1-> Profit 계산은 시간 태그가 지정된 차원을 따라 계산하든 계정 태그가 지정된 차원을 따라 계산하든 동일한 결과를 생성합니다. 시간 차원을 따라 계산하여 1월, 2월 및 3월의 값을 추가합니다.

50+100+150=300 

계정 차원을 따라 계산하여 분기 1 -> 분기 1의 매출원가 -> 판매:

600–300=300 

표 21-1 대칭 계산 예

시간 -> 계정 1월 Feb 3월 Qtr1

영업

100

200

300

600

COGS

50

100

150

300

수익(판매 – COGS)

50

100

150

300

비대칭 데이터 계산은 여러 차원을 따라 다르게 계산됩니다.

아래 비대칭 예제의 데이터 세트를 사용하면 시장 차원을 따라 계산할 때 East -> Sales에 대한 계산이 올바른 결과를 생성하지만 계정 차원을 따라 계산할 때 잘못된 결과가 생성됩니다. Market 차원을 따라 계산하여 뉴욕, 플로리다 및 코네티컷의 값을 추가하면 올바른 결과가 생성됩니다.

50 + 100 + 100 = 250

계정 차원을 따라 계산하여 East -> Price 값에 East -> UnitsSold 값을 곱하면 잘못된 결과가 생성됩니다.

15 * 50 = 750

표 21-2 비대칭 계산 예

시장 -> 계정 뉴욕 플로리다 코네티컷 동쪽

판매 단위

10

20

20

50

가격

5

5

5

15

판매(가격 * 판매 단위)

50

100

100

250

다음 개요에서 East는 희소 차원이고 Accounts는 밀집 차원입니다.


이 이미지는 East가 희소 차원이고 Accounts가 밀집 차원인 아웃라인을 보여줍니다.

East 및 Sales에 동적 계산 태그가 지정된 경우 Essbase는 East 및 Sales에 동적 계산 태그가 지정되지 않은 경우와 다른 결과를 계산합니다.

East 및 Sales가 동적 계산 멤버가 아닌 경우 Essbase는 다음 차원을 계산하여 올바른 결과를 생성합니다.

  1. 밀집 계정 차원 - 뉴욕, 플로리다 및 코네티컷에 대한 단위 판매, 가격 및 판매 값을 계산합니다.

  2. Sparse East 차원—뉴욕, 플로리다 및 코네티컷에 대한 UnitsSold, Price 및 Sales에 대해 계산된 값을 집계하여 East에 대한 Sales 값을 가져옵니다.

East 및 Sales가 동적 계산 멤버인 경우 Essbase는 다음 차원을 계산하여 잘못된 결과를 생성합니다.

  1. Sparse East 차원—뉴욕, 플로리다 및 코네티컷에 대한 UnitsSold, Price 및 Sales의 값을 집계하여 East에 대한 값을 구합니다.

  2. East -> Sales 값 - East 데이터 블록에서 집계된 값을 가져오고 이러한 값으로 공식 계산을 수행하여 Sales에 대한 값을 가져옵니다.

이 문제를 방지하고 필요한 결과를 얻으려면 영업 멤버에 동적 계산 태그를 지정하지 마십시오.

하이브리드 모드의 해결 순서

Essbase의 해결 순서는 하이브리드 모드에서 동적 계산이 실행되는 순서를 결정합니다. 해결 순서를 사용자정의하거나 고성능 및 종속성 분석에 최적화된 기본값을 수락할 수 있습니다.

해결 순서 개념은, 계산 스크립트에서 동적 멤버 공식 또는 동적 종속성으로 시작되든 관계없이 동적 계산 실행에 적용됩니다. 다차원 질의에서 셀을 평가할 때 필요한 계산 우선순위를 나타내는 해결 순서가 지정되지 않으면 계산을 해결해야 하는 순서가 모호할 수 있습니다.

차원 또는 멤버에 대한 해결 순서를 설정하거나 기본 Essbase 해결 순서를 사용할 수 있습니다. 설정할 수 있는 최소 해결 순서는 0이고 최대값은 127입니다. 해결 순서가 높을수록 멤버가 나중에 계산됩니다. 예를 들어, 해결 순서가 1인 멤버는 해결 순서가 2인 멤버보다 먼저 해결됩니다.

하이브리드 모드가 사용으로 설정된 경우 기본 해결 순서(계산 순서라고도 함)는 블록 스토리지 데이터베이스의 순서와 가까이 일치합니다.

차원/멤버 유형 기본 해결 순서 값
저장된 멤버 0
희소 차원 멤버 10
밀집 계정 차원 멤버 30
밀집 시간 차원 멤버 40
밀집 정규 차원 멤버 50
속성 차원 멤버 90
2단계 동적 멤버 100
MDX 계산된 멤버 또는 명명된 집합(MDX에 정의됨) 120

요컨대, 하이브리드 모드의 기본 해결 순서는 저장된 멤버가 계산된 후 동적 계산 멤버가 계산되고, 희소 차원이 계산된 후 아웃라인에 나타나는 순서대로(위에서 아래로) 밀집 차원이 계산됩니다.

지정된 해결 순서가 없는 동적 멤버(공식이 있든 없든)는 2단계 태그가 지정되지 않는 한, 차원의 해결 순서를 상속합니다.

2단계 계산은 블록 스토리지 모드에서 정확한 값을 구하려면 두 번 계산해야 하는 공식을 가진 멤버에게 적용할 수 있는 설정입니다.

주:

하이브리드 모드 큐브에 2단계 계산을 사용하지 마십시오. 해결 순서만 사용합니다.

하이브리드 모드에는 2단계를 적용할 수 없으며, 2단계 태그가 지정된 멤버는 속성 뒤에 마지막으로 계산됩니다. 하이브리드 모드에서 기본 해결 순서가 사용자 요구사항을 충족하지 않으면 2단계 대신 사용자정의 해결 순서를 구현해야 합니다.

하이브리드 모드의 기본 해결 순서는 다음 시나리오에 최적화되어 있습니다.

  • 동적 멤버 공식이 아웃라인 순서 나중에 오는 멤버를 참조하는 순방향 참조. 하이브리드 모드에는 아웃라인 순서 종속성이 없습니다.

  • 아웃라인 순서에 기반한 하위 값의 집계는 동등한 공식을 사용한 집계와 더 가까이 일치합니다.

  • 희소 공식 안의 종속성으로 동적 밀집 멤버. 하이브리드 모드에서 희소 공식이 밀집 동적 멤버를 참조하는 경우 희소 차원이 먼저 계산되므로 참조가 무시됩니다. 이를 변경하려면 희소 차원의 해결 순서가 밀집 차원의 해결 순서보다 높게(보다 나중에 계산되도록) 지정합니다.

해결 순서 사용자정의

하이브리드 모드에서 동적 계산의 동작을 조정해야 하는 경우, 차원 및 멤버의 해결 순서를 사용자정의하면 아웃라인을 크게 변경하지 않고도 이를 성취할 수 있습니다.

사용자정의 해결 순서를 구현하면 기본 해결 순서가 대체됩니다. 멤버나 차원의 해결 순서가 같으면 아웃라인에 나타나는 순서대로(위에서 아래로) 충돌을 해결합니다.

특정 멤버의 해결 순서를 사용자정의하지 않는 한, 최상위 차원 멤버의 해결 순서가 차원의 모든 동적 멤버에 적용됩니다.

해결 순서를 변경하려면 Essbase 웹 인터페이스에서 아웃라인 편집기를 사용하거나 Smart View를 사용하십시오(선택한 POV의 해결 순서 변경 참조).

설정할 수 있는 최소 해결 순서는 0이고 최대값은 127입니다. 해결 순서가 높을수록 멤버가 나중에 계산됩니다.

해결 순서의 사용 사례를 살펴보려면 애플리케이션 워크북의 갤러리(Essbase의 파일 카탈로그에서 찾을 수 있음)에서 기술 섹션의 해결 순서 템플리트를 참조하십시오.

비-하이브리드 모드의 해결 순서에 대한 참고사항

집계 스토리지 큐브에서

  • 해결 순서는 모든 차원에 대해 0으로 설정됩니다.

  • 다음을 제외한 집계는 아웃라인 순서대로 실행됩니다.

    • 저장된 계층 멤버가 첫번째로 처리됩니다.
    • 동적 계층 멤버가 그 다음 처리됩니다.

비-하이브리드 블록 스토리지 큐브에서 기본 해결 순서는 다음과 같습니다.

  • 밀집 전에 희소

  • 시간 전에 계정

  • 마지막으로 속성

주:

계정 멤버의 해결 순서가 시간 멤버의 해결 순서보다 큰 값으로 수동 설정된 경우, 동적 시계열 멤버 뒤에 계정이 평가됩니다.