계산 모니터 및 추적
Essbase 계산을 모니터링 및 추적하여 멤버 공식 처리에 대한 통찰력을 얻습니다. CALCTRACE 및 SET TRACE를 사용하면 Smart View 또는 저장된 계산에서 실행되는 계산을 추적할 수 있습니다. 테스트를 위해 성능 통계를 기록하려면 SET MSG 및 SET NOTICE를 사용할 수 있습니다.
계산 추적을 사용으로 설정하려면 CALCTRACE 구성 등록정보를 사용한 다음 Smart View를 사용하여 컨텍스트 구분 추적을 시작하거나 계산 스크립트의 SET TRACE 명령을 사용하여 추적할 데이터 교차를 선택합니다. 자세한 내용은 추적 계산을 참조하십시오.
애플리케이션 로그에서 Essbase가 큐브를 계산하는 방법에 대한 정보를 표시하려면 계산 스크립트에서 SET MSG 및 SET NOTICE를 사용할 수 있습니다. 계산 테스트 및 통계에 대한 SET 명령을 참조하십시오.
계산 추적
Essbase 계산 추적을 사용하여 멤버 공식 처리에 대한 통찰력을 얻어서 블록 스토리지 계산 스크립트를 디버그하고 개선할 수 있습니다. 문맥에 따른 Smart View 계산 추적에 대해 CALCTRACE를 사용으로 설정하거나, SET TRACE 명령을 사용하여 추적할 데이터 교차를 선택합니다.
계산 추적을 사용하면 계산 스크립트가 큐브에 대해 성공적으로 실행된 후 계산에 대한 로깅된 정보에 액세스할 수 있습니다.
계산 추적은 계산 동작에 대한 어떤 사항도 변경하지 않습니다. 계산이 Smart View에서 실행되고 접속된 서버에 관리자가 사용으로 설정한 계산 추적이 있는 경우 Smart View는 계산이 실행된 후 세부정보가 포함된 팝업 대화상자를 표시합니다. 계산 추적 정보는 팝업 대화상자에서 텍스트 편집기로 붙여넣을 수 있습니다. 또는 Essbase의 데이터베이스 파일 디렉토리에 있는 calc_trace.txt에서 동일한 정보를 찾을 수 없습니다.
계산 추적 정보는 계산 결과가 예상한 것이 아닌 경우 계산 스크립트 실행을 디버깅하는 데 도움이 될 수 있습니다.
계산 추적은 시나리오 관리가 사용으로 설정된 애플리케이션에서 지원되지 않습니다.
계산 추적을 사용으로 설정하려면 관리자는 먼저 CALCTRACE 애플리케이션 구성 매개변수를 켜야 합니다. 애플리케이션에 대해 계산 추적이 사용으로 설정된 후에는 두 가지 방법으로 계산 추적을 활용할 수 있습니다.
- Smart View에서 단일 셀 값에 문맥에 따른 추적을 사용할 수 있습니다.
- Smart View에서 계산 추적을 사용으로 설정한 애플리케이션에 질의 시트를 연결합니다.
- 계산된 값을 추적할 데이터 셀을 하이라이트합니다.
- Essbase 탭의 [데이터] 패널에서 계산 단추를 누르고 실행할 계산 스크립트를 선택합니다. 추적 멤버 런타임 프롬프트의 하이라이트된 데이터 셀에서 관점이 표시됩니다.
- 실행을 눌러 계산 스크립트를 실행합니다.
스크립트에 포함된 대로 계산의 전체 범위가 계산되지만 하이라이트된 데이터 셀 컨텍스트만 계산 중 추적됩니다.
- 계산 스크립트 종료 시 하이라이트된 데이터 셀에 대한 계산 전/후 결과를 보여주는 계산 결과 대화상자를 검사합니다.
하이라이트된 데이터 셀이 계산 중 수정되지 않은 경우 셀이 수정되지 않았음을 나타내는 메시지가 표시됩니다.
- 계산 스크립트에서 SET TRACE 계산 명령을 사용하여 추적할 데이터 교차를 선택할 수 있으며, SET TRACE를 사용하면 여러 데이터 셀을 추적할 수 있습니다. 또한
SET TRACE mbrList(멤버 목록에 대한 계산 추적 설정)와SET TRACE OFF(새 SET TRACE가 스크립트에서 발견될 때까지 계산 추적 사용 안함)의 조합을 사용하여 계산된 스크립트의 섹션을 추적합니다. SET TRACE 명령을 사용하려면 Smart View 외부에서 Cube Designer, CLI calc 명령, Essbase 웹 인터페이스에서 계산 실행 작업 또는 MaxL(계산 실행 문)을 사용하여 계산 스크립트를 실행해야 합니다.
다음 계산 스크립트는 Sample Basic에서 실행됩니다. 스크립트에는 SET TRACE 명령이 포함되어 있어 제품 SKU 번호 100-10에 대한 캘리포니아 시장의 예산 1월 판매를 나타내는 데이터 교차(셀)에 대해 로깅되는 자세한 정보를 요청합니다.
SET TRACEID "id042"
SET TRACE ("100-10", "California", "Jan", "Sales", "Budget");
FIX("California", "Budget")
"Sales" (
"100-10" = @MEMBER(@CONCATENATE(@NAME(@PARENT("Product")), "-20")) / 10;
);
ENDFIX;주:
또한 계산 추적 파일을 겹쳐쓰지 않도록 하려면 SET TRACEID 명령을 사용하는 것이 좋습니다.Sample Basic에는 두 가지 희소 차원인 Product와 Market이 있습니다. 멤버 공식은 밀집 차원인 측정항목의 멤버인 Sales에 대한 것입니다. FIX 문의 멤버 목록에는 Market 차원에 속하는 희소 멤버 California 하나만 포함되어 있습니다.
FIX 범위의 기존 블록 수는 추적된 셀이 계산되는 횟수를 결정합니다. 이 예에서는 모든 기존 희소 멤버 조합인 California를 통해 계산이 순환됩니다. 각 조합은 블록을 나타냅니다.
계산이 완료되면 다음과 같은 추적 정보가 기록되고 calc_trace_id042.txt에 표시됩니다.
Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 1)
Previous value: 840.00
Dependent values:
[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)
Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 2)
Block from FIX scope: [100-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values:
[100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)
Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 3)
Block from FIX scope: [200-10][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values:
[200-20][California][Jan][Sales][Budget] = 520.00
New value: [100-10][California][Jan][Sales][Budget] = 52.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)
[...calc iterations 4-7 are omitted from example...]
Tracing cell: [100-10][California][Jan][Sales][Budget] (Cell update count: 8)
Block from FIX scope: [400-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 9.00
Dependent values:
[400-20][California][Jan][Sales][Budget] = 90.00
New value: [100-10][California][Jan][Sales][Budget] = 9.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)계산 추적 로그에는 추적된 셀에서 계산이 수행된 방식에 대한 다음과 같은 인사이트가 제공됩니다.
-
추적된 셀이 여러 번 계산되었으며 매번 새 값이 셀 값을 겹쳐썼습니다(보고된 셀 업데이트 수가 8에서 멈춤).
-
계산 전 셀 값은 840.00이었습니다.
-
각 계산 수행에 대해 종속 값 및 새 값이 표시됩니다. 종속 값은 FIX 문의 멤버 공식에서 가져옵니다.
-
모든 계산이 완료된 후 추적된 셀의 최종 값은 9이지만 제품
"400-20"->California을 10으로 나눈 값을 나타냅니다. -
Sales에 대한 멤버 공식이 포함되어 있는 계산 스크립트의 라인 91-93은 업데이트된 값을 담당합니다.
순환된 각 블록에서 Sales는 다음 공식을 사용하여 계산됩니다.
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10공식에는 왼쪽에 있는 희소 멤버가 포함되며 이 공식으로 초기 FIX 블록과 다른 실제 계산 블록이 발생할 수 있습니다. 예를 들어 계산이 "California"->"100-20"을 순환하는 경우 실제로 계산은 "California"->"100-10"에서 수행됩니다.
Block from FIX scope 및 Actual block used in calculation이라는 명칭이 있는 추적 로그 항목은 FIX 문의 블록과 멤버 공식에 나타난 블록 간에 불일치가 있는 경우에만 인쇄됩니다. 이 로그 항목은 중복 계산이 존재하는 이유에 대한 설명을 제공하여 사용자가 계산 스크립트를 디버깅하는 데 도움이 됩니다.
계산 테스트 및 통계에 대한 SET 명령
Essbase 블록 저장영역 계산 스크립트에서 SET 명령을 사용하여 계산 성능 테스트 및 모니터링에 유용할 수 있는 계산 정보, 설정 및 통계를 수집할 수 있습니다. 명령은 SET MSG SUMMARY, SET MSG DETAIL 및 SET NOTICE입니다.
SET MSG SUMMARY 및 SET MSG DETAIL
계산 스크립트에서 SET MSG 요약 및 SET MSG DETAIL 계산 명령을 사용하여 다음을 수행할 수 있습니다.
-
계산 설정 표시(예: 완료 통지 메시지 사용 여부)
-
생성, 읽기, 쓰기를 수행하는 데이터 블록 수에 대한 통계 제공
-
계산된 데이터 셀 수에 대한 통계 제공
SET MSG DETAIL은 Essbase가 데이터 블록을 계산할 때마다 정보 메시지도 제공합니다. SET MSG DETAIL은 데이터 블록의 계산 순서를 검토하고 지능형 재계산을 테스트하는 데 유용합니다.
주의:
SET MSG DETAIL은 높은 처리 오버헤드를 발생시키므로 테스트 계산 중에만 사용하십시오.
SET MSG SUMMARY를 사용하면 큐브 크기에 따라 처리 오버헤드가 약 1%~5%가 되므로 모든 계산에 적합합니다.
통지 설정
계산 스크립트에서 SET 통지 계산 명령을 사용하여 계산된 큐브의 퍼센트를 알려주는 계산 완료 통지를 표시할 수 있습니다. SET MSG SUMMARY 명령을 SET NOTICE 명령과 함께 사용하여 완료 통지 사이의 계산 진행률을 표시할 수 있습니다. 완료 알림은 매우 작은 큐브와 함께 사용되는 경우를 제외하고 계산 성능을 크게 줄이지 않습니다.