셀 계산 순서
Essbase에서 각 데이터 블록 내의 셀을 계산하는 순서는 데이터베이스를 구성한 방법에 따라 달라집니다.
각 데이터 블록에는 희소 차원 멤버의 고유한 조합에 대한 모든 밀집 차원 멤버 값이 포함됩니다. 각 데이터 값은 데이터 블록의 셀에 포함됩니다.
데이터베이스를 구성한 방법에 따라 각 블록 내에서 밀집 차원 멤버의 계산 순서와 희소 차원 멤버를 나타내는 블록의 계산 순서가 결정됩니다.
다음 예제를 참조하십시오.
셀 계산 순서: 예제 1
이 예제에서 가장 간단한 경우는 다음과 같습니다.
-
차원에 시간 또는 계정 태그가 없습니다.
-
#MISSING 값 통합 설정이 켜져 있습니다.
-
시장과 연도는 밀집 차원입니다.
Essbase는 데이터베이스 아웃라인에서 정의된 순서대로 밀집 차원을 계산합니다. Year 차원이 Market 차원 앞에 있는 데이터베이스 아웃라인에 위치하며 먼저 계산된다고 가정합니다.
다음 그리드는 슬라이스(데이터 블록에 있는 셀의 하위 세트)를 보여줍니다. 그리드에서 슬라이스 셀의 계산 순서는 숫자 1 - 6으로 표시됩니다.
표 19-3 계산 순서 예 1: 입력 셀 및 계산된 셀
| 연간 시장 | 뉴욕 | 매사추세츠주 | 동쪽 |
|---|---|---|---|
| 1월 | 112345 | 68754 | 3 |
| Feb | 135788 | 75643 | 4 |
| 3월 | 112234 | 93456 | 5 |
| Qtr1 | 1 | 2 | 6 |
데이터 값이 다음 입력 셀에 로드되었습니다.
-
얀 -> 뉴욕
-
2월 -> 뉴욕
-
Mar -> 뉴욕
-
Jan -> 매사추세츠
-
Feb -> 매사추세츠
-
Mar -> 매사추세츠
Essbase는 다음 순서로 셀을 계산합니다.
-
Qtr1 -> 뉴욕
-
Qtr1 -> 매사추세츠
-
Jan -> 동부
-
2월 -> 동부
-
Mar -> 동부
-
Qtr1 -> 동부
Qtr1 -> East에는 여러 통합 경로가 있습니다. 시장 또는 연도에 통합할 수 있습니다. 시장에 통합되면 Qtr1 -> 뉴욕 및 Qtr1 -> 매사추세츠의 통합입니다. 연도에 통합되면 1월 -> 동부, 2월 -> 동부 및 3월 -> 동부가 통합됩니다.
Essbase는 Qtr1 -> East에 여러 통합 경로가 있음을 알고 있습니다. 따라서 Qtr1에 대한 값을 통합하여 Qtr1 -> East를 한 번만 계산하고 아래와 같이 마지막으로 계산된 차원(이 예에서는 시장 차원)의 통합 경로를 사용합니다.
표 19-4 계산 순서 예 1: 결과
| 연간 시장 | 뉴욕 | 매사추세츠주 | 동쪽 |
|---|---|---|---|
| 1월 | 112345 | 68754 | 181,099 |
| Feb | 135788 | 75643 | 211,431 |
| 3월 | 112234 | 93456 | 205,690 |
| Qtr1 | 360,367 | 237,853 | 598,220 |
계산 순서에 따라 Qtr1에 멤버 공식을 배치하면 Essbase는 Qtr1 -> East를 계산할 때 이를 무시합니다. 멤버 공식을 East에 배치하면 Essbase가 Qtr1 -> East along Market을 통합할 때 공식이 계산됩니다.
필요한 경우 계산 스크립트를 사용하여 선택한 순서대로 차원을 계산할 수 있습니다.
셀 계산 순서: 예제 2
이 예에서는 다음 조건에 해당합니다.
-
차원에 시간 또는 계정 태그가 없습니다.
-
#MISSING 값 통합 설정이 해제되어 있습니다(기본값).
-
시장과 연도는 밀집 차원입니다.
Essbase는 데이터베이스 아웃라인에서 정의된 순서대로 밀집 차원을 계산합니다. Year 차원이 Market 차원 앞에 있는 데이터베이스 아웃라인에 위치하며 먼저 계산된다고 가정합니다.
다음 그리드는 슬라이스(데이터 블록에 있는 셀의 하위 세트)를 보여줍니다. 그리드에서 슬라이스 셀의 계산 순서는 숫자 1 - 7로 표시됩니다.
표 19-5 계산 순서 예 2: 입력 셀 및 계산된 셀
| 연간 시장 | 뉴욕 | 매사추세츠주 | 동쪽 |
|---|---|---|---|
| 1월 | 112345 | 68754 | 4 |
| Feb | 135788 | 75643 | 5 |
| 3월 | 112234 | 93456 | 6 |
| Qtr1 | 1 | 2 | 3/7 |
데이터 값이 다음 입력 셀에 로드되었습니다.
-
얀 -> 뉴욕
-
2월 -> 뉴욕
-
Mar -> 뉴욕
-
Jan -> 매사추세츠
-
Feb -> 매사추세츠
-
Mar -> 매사추세츠
Essbase는 1월, 2월, 3월의 뉴욕, 매사추세츠, 동부 및 동부 셀에 대한 Qtr1 셀을 계산합니다.
-
Qtr1 -> 뉴욕
-
Qtr1 -> 매사추세츠
-
Qtr1 -> 동부
-
Jan -> 동부
-
2월 -> 동부
-
Mar -> 동부
-
Qtr1 -> 동부
Qtr1 -> East는 연도 및 시장 통합 경로 모두에서 계산됩니다. 첫째, Qtr1 -> East는 Qtr1 -> 뉴욕 및 Qtr1 -> 매사추세츠의 통합으로 계산됩니다. 둘째, Qtr1 -> East는 Jan -> East, Feb -> East 및 Mar -> East의 통합으로 계산됩니다.
결과는 결과와 동일합니다(예: 1). 그러나 Qtr1 -> East는 두 번 계산되었습니다. 이 사실은 상위 레벨에서 데이터를 로드해야 할 때 중요합니다.
계산 순서에 따라 Qtr1에 멤버 공식을 배치하면 Essbase가 시장을 따라 Qtr1 -> East를 통합할 때 해당 결과를 덮어씁니다. East에 멤버 공식을 배치하면 Market이 마지막으로 계산되므로 결과가 유지됩니다.
표 19-6 계산 순서 예 2: 결과
| 연간 시장 | 뉴욕 | 매사추세츠주 | 동쪽 |
|---|---|---|---|
| 1월 | 112345 | 68754 | 181,099 |
| Feb | 135788 | 75643 | 211,431 |
| 3월 | 112234 | 93456 | 205,690 |
| Qtr1 | 360,367 | 237,853 | 598,220 |
셀 계산 순서: 예제 3
이 예제에서는 고밀도 저장된 차원의 데이터 조각을 고려합니다. 데이터베이스의 구성에 따라 차원 순서가 계산 순서를 정의하는지 결정됩니다. 블록을 계산하는 데 사용되는 두 개의 통합 경로가 있습니다.
이 예에서는 다음 조건에 해당합니다.
-
차원에 시간 또는 계정 태그가 없습니다.
-
#MISSING 값 통합 설정이 해제되어 있습니다(기본값).
-
데이터 값이 상위 레벨에서 로드되었습니다.
-
시장과 연도는 밀집 차원입니다.
Essbase는 데이터베이스 아웃라인에서 정의된 순서대로 밀집 차원을 계산합니다. Year 차원이 Market 차원 앞에 있는 데이터베이스 아웃라인에 위치하며 먼저 계산된다고 가정합니다.
다음 그리드는 계산이 필요한 슬라이스(데이터 블록의 셀 부분 집합)를 보여줍니다.
표 19-7 계산 순서 예 3: 입력 셀 및 #MISSING 값
| 연간 시장 | 뉴욕 | 매사추세츠주 | 동쪽 |
|---|---|---|---|
| 1월 | 누락 수 | 누락 수 | 181,099 |
| Feb | 누락 수 | 누락 수 | 211,431 |
| 3월 | 누락 수 | 누락 수 | 205,690 |
| Qtr1 | 누락 수 | 누락 수 |
셀은 셀 계산 순서: 예 2와 동일한 순서로 계산됩니다. Qtr1 -> East는 연도 및 시장 통합 경로 모두에서 계산됩니다.
#MISSING 값 통합 설정이 해제되었으므로 Essbase는 #MISSING 값을 통합하지 않습니다. 따라서 상위 레벨에서 로드되는 데이터는 아래의 #MISSING 값으로 덮어쓰지 않습니다.
그러나 하위 데이터 값이 #MISSING이 아닌 경우 이러한 값이 통합되어 상위 값을 덮어씁니다. 예를 들어 1월 -> 뉴욕에 50000.00이 포함된 경우 이 값은 상위 레벨에서 로드된 값을 덮어씁니다.
Essbase는 셀에 대한 값이 계산되도록 Qtr1 -> East 셀을 두 번 계산해야 합니다. Qtr1 -> East가 마지막 통합 경로에만 따라 계산되는 경우 결과는 #MISSING이며 이는 필수 결과가 아닙니다.
결과는 Essbase가 먼저 1월 -> 동부, 2월 -> 동부 및 3월 -> 동부를 통합하여 Qtr1 -> 동부 셀을 올바르게 계산한 다음 시장 통합 경로를 계산함을 보여줍니다. 그러나 Qtr1 -> New York 및 Qtr1 -> Massachusetts의 #MISSING 값을 통합하지 않으므로 Qtr1 -> East의 값을 덮어쓰지 않습니다.
표 19-8 계산 순서 예 3: 결과
| 연간 시장 | 뉴욕 | 매사추세츠주 | 동쪽 |
|---|---|---|---|
| 1월 | 누락 수 | 누락 수 | 181,099 |
| Feb | 누락 수 | 누락 수 | 211,431 |
| 3월 | 누락 수 | 누락 수 | 205,690 |
| Qtr1 | 누락 수 | 누락 수 | 598,220 |
셀 계산 순서: 예제 4
이 예에서는 저장된 차원의 데이터 슬라이스를 고려합니다. 데이터베이스 구성에 따라 블록 계산 순서가 결정됩니다.
이 예에서는 다음 조건에 해당합니다.
-
Year 차원은 Time으로 태그가 지정됩니다.
-
측정항목 차원은 계정으로 태그가 지정됩니다.
Essbase는 먼저 계정 태그가 지정된 차원을 계산한 다음 시간 태그가 지정된 차원을 계산합니다. 따라서 이 예제에서는 측정값이 연도보다 먼저 계산됩니다.
-
#MISSING 값 통합 설정이 해제되어 있습니다(기본값).
-
마케팅, 급여 및 기타 비용 값이 분기(레벨 1)에 로드되었습니다.
아래 이미지는 Sample Basic 데이터베이스에서 측정항목 차원의 Profit 분기를 보여줍니다. 이 예에서는 동적 계산 멤버가 아닌 총 비용이 저장된다고 가정합니다.
그림 19-9 측정 차원의 수익 지점

공식이 없고 #MISSING이 통합되지 않으므로 상위 레벨 값을 겹쳐쓰지 않습니다. 연결 경로가 2개인 데이터 값(레벨 0이 아닌 측정 단위)은 두 번 계산됩니다.
다음 그리드는 슬라이스(데이터 블록에 있는 셀의 하위 세트)를 보여줍니다. 그리드에서 슬라이스 셀의 계산 순서는 숫자 1 - 17로 표시됩니다.
표 19-9 계산 순서 예 4: 입력 셀, #MISSING 값 및 계산된 셀
| 측정/연도 | 1월 | Feb | 3월 | Qtr1 |
|---|---|---|---|---|
| Sales | 31538 | 32069 | 32213 | 13 |
| COGS | 14160 | 14307 | 14410 | 14 |
| 여백 | 1 | 4 | 7 | 10/15 |
| Marketing(마케팅) | 누락 수 | 누락 수 | 누락 수 | 15839 |
| 급여 | 누락 수 | 누락 수 | 누락 수 | 12168 |
| Misc | 누락 수 | 누락 수 | 누락 수 | 233 |
| 총 비용 | 2 | 5 | 8 | 11/16 |
| 수익 | 3 | 6 | 9 | 12/17 |
다음 셀에는 여러 통합 경로가 있습니다.
-
마진 -> 분기1
-
총 비용 -> 분기1
-
이익 -> 분기1
#MISSING 값 통합 설정이 해제되었으므로 Essbase는 #MISSING 값을 통합하지 않습니다. 상위 레벨에서 로드된 데이터는 #MISSING 값으로 덮어쓰지 않으며 Essbase는 여러 통합 경로가 있는 셀을 두 번 계산합니다.
계산 순서에 따라 마진에 공식을 배치한 경우 Qtr1의 통합에서 해당 결과를 덮어씁니다.
결과는 다음과 같습니다.
표 19-10 계산 순서 예 4: 결과
| 측정/연도 | 1월 | Feb | 3월 | Qtr1 |
|---|---|---|---|---|
| Sales | 31538 | 32069 | 32213 | 95,820 |
| COGS | 14160 | 14307 | 14410 | 42,877 |
| 여백 | 17,378 | 17,762 | 17,803 | 52,943 |
| Marketing(마케팅) | 누락 수 | 누락 수 | 누락 수 | 15839 |
| 급여 | 누락 수 | 누락 수 | 누락 수 | 12168 |
| Misc | 누락 수 | 누락 수 | 누락 수 | 233 |
| 총 비용 | 28,240 | |||
| 수익 | 17,378 | 17,762 | 17,803 | 12/17 |
밀집 차원의 공식에 대한 셀 계산 순서
밀집 차원 멤버에 공식을 배치할 때는 셀 계산 순서를 신중하게 고려해야 합니다. 이전 예에서 설명한 것처럼 마지막으로 계산된 차원은 다중 연결 경로가 있는 셀에 대한 이전 셀 계산을 덮어씁니다.
데이터 블록 내의 셀 계산 순서는 멤버의 공식에 의해 영향을 받지 않습니다. Essbase가 데이터 블록에서 공식을 발견하면 필요한 다른 데이터 블록을 잠그고 공식을 계산한 다음 데이터 블록 계산을 진행합니다.
필요한 경우 계산 스크립트를 사용하여 차원 계산 순서를 변경할 수 있습니다. 블록 저장영역 큐브에 대한 계산 스크립트 개발 및 블록 저장영역 큐브에 대한 공식 개발을 참조하십시오.