튜플을 선택하면 블록 스토리지 큐브의 특정 데이터 조각으로 범위를 제한하여 활성 Smart View 그리드의 Essbase 계산에만 중점을 둘 수 있습니다.
다음 섹션에서는 튜플 계산에 대해 설명합니다.
계산 스크립트에 @GRIDTUPLES를 사용하는 구문은 FIX…ENDFIX을(를) 참조하십시오.
튜플을 선택하면 블록 스토리지 큐브의 특정 데이터 조각으로 범위를 제한하여 활성 Smart View 그리드의 Essbase 계산에만 중점을 둘 수 있습니다.
튜플 선택은 차원간에 비대칭 그리드 계산을 최적화하여 과도한 계산을 피할 수 있습니다.
Essbase 계산 튜플은 MDX 질의에서 사용된 튜플과 다릅니다. 계산 성능 및 큐브 크기는 주로 큐브의 블록 수(특정 블록 크기가 주어진 경우)에 따라 결정됩니다. 이러한 이유로 계산 튜플은 희소 멤버 조합에만 지정됩니다. 또한 간편한 계산 스크립팅을 위해 단일 희소 차원의 여러 멤버가 계산 튜플 지정에 포함될 수 있습니다. 예를 들어 ("New York", "California", "Actual", "Cola")를 계산 튜플로 지정하면 다음 셀 교차를 계산합니다.
"New York"->"Actual"->"Cola" "California"->"Actual"->"Cola"
다음과 같은 대칭적 그리드를 고려하십시오. 각 제품은 그리드에 표시된 시장 및 시나리오(Actual)가 동일하므로 대칭적입니다.
다음 그리드에서 Diet Cola 제품은 Cola 제품보다 그리드에 시장 수가 적으므로 비대칭입니다.
둘 이상의 차원이 FIX 문 또는 Smart View 그리드 POV(관점)에 있는 경우, 기본 계산 범위는 FIX 또는 그리드에 있는 멤버의 상호 곱(모든 가능한 조합)을 계산하는 것입니다. 다시 말해서, 그리드에서 제품과 시장 조합을 가져오는 POV 방식 계산은 다음과 같은 행-멤버 조합을 모두 계산합니다.
Cola->"New York" Cola->"Massachusetts" Cola->"Florida" Cola->"Connecticut" Cola->"New Hampshire" "Diet Cola"->"New York" "Diet Cola"->"Massachusetts" "Diet Cola"->"Florida" "Diet Cola"->"Connecticut" "Diet Cola"->"New Hampshire"
이는 필요 이상의 계산 활동일 수 있습니다. 그리드에 표시된 조합만 계산하려면 계산할 튜플을 지정하고 더 작은 조각으로 계산을 제한할 수 있습니다. 또한 튜플 계산은 계산 시간과 큐브 크기를 줄일 수 있습니다.
Cola->"New York" Cola->"Massachusetts" Cola->"Florida" Cola->"Connecticut" Cola->"New Hampshire" "Diet Cola"->"New York" "Diet Cola"->"Florida"
계산 튜플은 Essbase 블록 스토리지 계산에 사용할 둘 이상의 희소 차원에서 멤버의 데이터 조각을 나타내는 방법입니다.
적합한 계산 튜플의 예:
("Diet Cola", "New York")
("Diet Cola", "Cola", Florida)
(Cola, "New Hampshire")
MDX 표현식을 작성할 때 다음과 같이 MDX에 적용되는 튜플 제한을 인지할 수 있습니다.
그러나 계산 스크립트의 튜플을 선택할 때 이러한 요구사항은 편의상 완화됩니다. 자유롭게 튜플 표현식을 작성할 수 있으며 다음 튜플과 같이 멤버 목록을 설명할 수 있습니다. (@Children(East), Cola)
튜플을 선택하는 쉬운 방법은, FIX 문 안에 목록으로 계산 스크립트에 명시적으로 삽입하는 것입니다.
다음과 같은 FIX 문의 형식을 기억하십시오.
FIX (fixMbrs) COMMANDS ; ENDFIX
아래 FIX 문에서 명령 블록이 시작하기 전에 두 개의 튜플이 지정됩니다. 튜플 모음인 집합을 구분하는 중괄호 { } 안에 튜플이 묶여 있습니다.
FIX({ (@Children(East), Cola), ("New York", Florida, "Diet Cola") }) Sales (Sales = Sales + 10;); ENDFIX
튜플을 선택하는 또 다른 방법은, 계산 실행 시간에 Smart View 그리드 POV에 있는 멤버에 준하여 상황별로 선택하는 것입니다. 이를 위해 계산 스크립트에서 FIX에 대한 인수로 @GRIDTUPLES 함수를 제공하십시오.
FIX ({@GRIDTUPLES(Product, Market)}) Sales (Sales = Sales + 10;); ENDFIX
아래 그리드에 대해 이 계산 스크립트를 Smart View에서 실행하면 표시된 제품과 시장 조합만 계산됩니다. 예를 들어 "Diet Cola"->Massachusetts는 그리드에 명시적으로 표시되지 않으므로 계산되지 않습니다. Actual만 그리드에 표시되더라도 모든 시나리오(이 샘플 큐브의 세번째 희소 차원)가 계산됩니다. Scenario 차원은 계산 스크립트에서 GRIDTUPLES 문의 일부가 아니기 때문입니다.
명시적 튜플 목록을 사용하든 @GRIDTUPLES 함수를 사용하든 관계없이, 튜플 선택은 FIX…ENDFIX 계산 명령 컨텍스트에서만 적용됩니다. FIX 문의 구문은 튜플 선택이 가능하도록 확장됩니다.
FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs) COMMANDS ; ENDFIX
Smart View 그리드와 Essbase 계산 스크립트 FIX 문을 사용하여 그리드 POV(관점)를 기반으로 선택한 멤버 튜플을 계산할 수 있습니다. 또는 FIX 문에 튜플 조합을 명시적으로 입력하고 특정 Smart View 그리드에 대한 종속성을 제거한 채 계산 범위를 정의할 수도 있습니다.
선택한 튜플을 계산하면 계산 스크립트와 Smart View 그리드에서 비대칭 영역을 효율적으로 작업할 수 있습니다.
다음 예제를 생각해 보겠습니다.
예를 사용하려면 Essbase 웹 인터페이스의 파일 영역에 있는 gallery 폴더의 Technical > Calc
섹션에서 CalcTuple_Tuple.xlsx
워크북 템플리트를 다운로드하십시오. 지침은 워크북의 README 워크시트를 참조하십시오.
튜플을 선택하지 않을 때 발생하는 기본 Essbase 블록 스토리지 계산 동작을 보여주는 다음 계산 스크립트는 Smart View 그리드에 있는 Product 및 Market 차원 멤버의 전체 상호 곱을 계산합니다.
SET RUNTIMESUBVARS 블록에 정의된 두 개의 런타임 대체 변수(RTSV)의 도움으로, Smart View에서 계산을 실행할 때 그리드에 있는 Product 및 Market POV(관점)로 계산이 제한됩니다.
SET RUNTIMESUBVARS { ProductGridMembers = POV <RTSV_HINT><svLaunch> <description>All Product's members on the grid</description> <type>member</type> <dimension>Product</dimension><choice>multiple</choice> </svLaunch></RTSV_HINT>; MarketGridMembers = POV <RTSV_HINT><svLaunch> <description>All Market's members on the grid</description> <type>member</type> <dimension>Market</dimension><choice>multiple</choice> </svLaunch></RTSV_HINT>; }; FIX ( &ProductGridMembers, &MarketGridMembers ) Marketing( Marketing = Marketing +1; ); ENDFIX
@GRIDTUPLES 함수를 사용하여 Product 및 Market 차원의 튜플을 선택하면 이 Essbase 블록 스토리지 계산 스크립트는 두 개의 차원만 튜플을 계산하여 Smart View에서 계산을 실행할 때 Smart View 그리드에 있는 멤버로 범위를 제한합니다.
FIX ( {@GRIDTUPLES(Product, Market)} ) Marketing( Marketing = Marketing + 1; ); ENDFIX
튜플에 이름이 지정된 희소 차원만 고정함으로써 기본 계산보다 훨씬 적은 수의 블록이 계산에 참여합니다. 그러나 FIX에 언급되지 않은 차원(Year, Scenario)의 모든 멤버가 이 계산 스크립트에서 계산됩니다.
@GRIDTUPLES 함수와 런타임 대체 변수를 사용하여 이 Essbase 블록 스토리지 계산 스크립트는 RTSV 프롬프트의 희소 차원 선택사항을 기반으로 그리드에서 선택한 튜플만 계산합니다.
SET RUNTIMESUBVARS 블록에 정의된 런타임 대체 변수 &DimSelections는 큐브의 희소 차원(Scenario 제외)으로만 계산 범위를 제한합니다. FIX 문에 사용된 @GRIDTUPLES 함수는 이 변수를 호출하여 계산할 교차 수를 제한합니다.
SET RUNTIMESUBVARS { DimSelections = "Version", "Site", "Entity", "Product", "Market" <RTSV_HINT><svLaunch> <description>List two or more sparse dimensions used for forming calculation tuples:</description> <type>string</type> </svLaunch></RTSV_HINT>; }; FIX ( {@GRIDTUPLES(&DimSelections)} ) Marketing( Marketing = Marketing + 1; ); ENDFIX
이전 예제보다 훨씬 적은 수의 블록이 계산에 참여하는데, 이 경우 튜플 정의가 Product->Market을 넘어 더욱 희소 차원으로 확장되기 때문입니다.
예제를 사용하려면 Essbase 웹 인터페이스의 파일 영역에서 갤러리 폴더의 기술 > 계산 섹션에서 CalcTuple_Tuple.xlsx
워크북 템플리트를 다운로드하십시오. 지침은 워크북의 README 워크시트를 참조하십시오.