큐브에서 데이터의 하위 집합 계산

필요한 것보다 더 많이 계산하지 않으려면 Essbase 데이터베이스에서 데이터의 하위 세트를 계산합니다. 멤버 집합 함수, 포함을 지정하는 FIX 문 및 제외를 지정하는 EXCLUDE 문을 조합하여 부분 집합을 나타낼 수 있습니다.

큐브에서 데이터의 하위 집합을 계산하려면 다음 방법 중 하나를 사용합니다.

  • 멤버 세트 함수를 사용하여 멤버 목록을 계산하는 공식을 생성합니다.

  • FIX...ENDFIX 명령을 사용하여 포함을 통해 값 범위를 계산합니다.

  • EXCLUDE...ENDEXCLUDE 명령을 사용하여 제외별로 값 범위를 계산합니다.

주:

지능형 계산이 사용으로 설정된 경우 데이터베이스의 부분 계산 후에는 새로 계산된 데이터 블록이 클린으로 표시되지 않습니다. 데이터베이스의 부분 집합을 계산할 때는 SET CLEARUPDATESTATUS AFTER 명령을 사용하여 새로 계산된 블록이 클린으로 표시되도록 할 수 있습니다. 이 명령을 사용하면 EssbaseIntelligent Calculation을 사용하여 가능한 한 효율적으로 데이터베이스를 재계산합니다.

멤버 목록 계산

Essbase 멤버 세트 계산 함수는 지정한 멤버를 기반으로 하는 멤버 목록을 생성합니다.

예를 들어, @IDESCENDANTS 함수는 지정된 멤버의 모든 하위 멤버 목록을 생성합니다. 공식에서 멤버 세트 함수를 사용하는 경우 Essbase는 공식을 계산하기 전에 멤버 목록을 생성합니다.

다음 예제에서 총 비용 멤버에 대해 @IDESCENDANTS 명령을 사용하면 총 비용, 그 자체 및 해당 하위 멤버(마케팅, 급여 및 기타)의 목록이 생성됩니다.

@IDESCENDANTS("Total Expenses");

참조 항목

멤버 집합 함수

FIX 명령 사용

Essbase 블록 저장영역 계산 스크립트의 FIX 명령을 사용하여 계산에 포함할 멤버를 정의합니다. FIX 블록을 사용하면 과다 계산을 방지하여 성능을 최적화할 수 있습니다. 또한 FIX를 사용하면 다른 공식을 사용하여 큐브의 개별 부분을 계산할 수 있습니다.

계산 스크립트의 FIX 블록을 사용하면 계산에 포함할 데이터 슬라이스를 정의할 수 있습니다.

예를 들어, 다음 FIX 블록은 동부(뉴욕, 매사추세츠, 플로리다, 코네티컷 및 뉴햄프셔)의 종속 항목에 대해서만 예산 값만 계산합니다.

FIX(Budget,@DESCENDANTS(East))
   CALC DIM(Year, Measures, Product);
ENDFIX

다음 예에서는 UDA가 새 시장의 East 하위에 대한 멤버 조합에 대한 수정을 보여 줍니다.

FIX(@CHILDREN(East) AND @UDA(Market,"New Mkt"))
   Marketing = Marketing * 1.1;
ENDFIX

다음 예에서는 와일드카드 일치(???)를 사용하여 멤버 100-10, 200-10, 300-10 및 400-10인 -10 문자로 끝나는 멤버 이름을 수정합니다.

FIX(@MATCH(Product, "???-10"))
   Price = Price * 1.1;
ENDFIX

밀집 차원에서만 FIX 명령을 사용하는 경우 Essbase는 지정한 멤버에 대한 필수 값을 포함하는 전체 블록을 검색합니다. I/O는 영향을 받지 않으며 계산 성능 시간이 향상됩니다.

희소 차원에서 FIX 명령을 사용하는 경우 Essbase는 지정된 희소 차원 멤버에 대한 블록을 검색합니다. I/O가 크게 줄어들 수 있습니다.

Essbase는 밀집 차원 멤버에서 사용하는 각 FIX 명령에 대해 데이터베이스를 한 번씩 순환합니다. 가능한 경우 FIX 블록을 결합하여 계산 성능을 향상시킵니다.

예를 들어, 하나의 FIX 명령을 사용하면 다음 계산 스크립트로 인해 Essbase가 데이터베이스를 한 번만 순환하여 실제 값과 예산 값을 모두 계산합니다.

FIX(Actual,Budget)
   CALC DIM(Year, Measures);
ENDFIX

반면, 두 개의 FIX 명령을 사용하면 다음 계산 스크립트로 인해 Essbase가 데이터베이스를 두 번 순환합니다. 실제 데이터 값을 계산한 후 예산 데이터 값을 계산합니다.

FIX(Actual)
   CALC DIM(Year, Measures);
ENDFIX
FIX(Budget)
   CALC DIM(Year, Measures);
ENDFIX

FIX 명령 내에서 계산하는 차원의 하위 집합에서는 FIX를 수행할 수 없습니다. 예를 들어, 다음 계산 스크립트는 CALC DIM 작업이 시장 차원의 특정 멤버에 대해 수정되지만 전체 시장 차원을 계산하기 때문에 오류 메시지를 반환합니다.

FIX(@CHILDREN(East) AND @UDA(Market,"New Mkt"))
   CALC DIM(Year, Measures, Product, Market);
ENDFIX

FIX 명령은 다른 FIX 명령 블록 내에 중첩될 수 있습니다. 그러나 중첩된 FIX 명령을 잘못 사용하면 잘못된 결과가 발생할 수 있습니다. 예를 들어, 다음 계산 스크립트의 목적은 East의 모든 하위에 1을 할당한 다음 2를 New York에 할당하는 것입니다.

FIX (@CHILDREN(EAST))
   "100-10"=1;
      FIX ("New York")
         "100-10"=2;
      ENDFIX
ENDFIX

그러나 중첩된 FIX 명령은 위의 FIX 명령에 의해 지정된 차원 부분 집합(허용되지 않음)에서 수정됩니다. 따라서 스크립트는 다음과 같이 작성된 것처럼 실행되므로 이 스크립트는 East의 모든 하위 집합에 2를 지정합니다.

FIX (@CHILDREN(EAST),''New York'')
   "100-10"=1;
   "100-10"=2;
ENDFIX

중첩된 FIX 명령을 사용하는 대신 두 개의 개별 FIX 명령 블록을 사용하십시오. 예:

FIX (@CHILDREN(EAST))
   "100-10"=1;
ENDFIX

FIX ("New York")
   "100-10"=2;
ENDFIX

VAR 계산 명령으로 정의된 변수(varName)는 FIX 멤버 문 내에서 사용할 수 없습니다. FIX 멤버는 계산이 실행되기 전에 평가되며, FIX 문이 설정된 후 런타임 중에 변수가 평가됩니다. 계산 실행 중에 변수가 변경될 수 있으므로 변수를 FIX 문의 일부로 사용할 수 없습니다. 다음 예제는 FIX 멤버 문에서 변수의 잘못된 사용을 보여줍니다.

VAR varName=1;
FIX (@relative(@memberat(@List("Product1","Product2"),varName),0))
   COMMANDS;
ENDFIX

참조 항목

FIX…ENDFIX

제외 명령 사용

Essbase 블록 저장영역 계산 스크립트에서 EXCLUDE..ENDEXCLUDE 명령 블록을 사용하여 계산에서 제외할 멤버를 정의합니다.

계산에 포함하지 않을 멤버를 지정하는 것이 포함할 멤버를 정의하는 것보다 쉬운 경우가 있습니다.

EXCLUDE…ENDEXCLUDE 명령에서 계산하지 않아야 하는 멤버를 지정하는 작업은 FIX…ENDFIX 명령에서 복잡한 멤버 이름 조합을 지정하는 것보다 간단할 수 있습니다.

참조 항목

제외...제외