빠른 분석 처리를 위한 하이브리드 모드
Oracle Essbase 하이브리드 모드 계산 및 질의 프로세서를 통해 사용자가 절차적 계산 및 읽기-쓰기 모델링을 사용하여 실시간 분석을 수행할 수 있습니다. 하이브리드 모드는 블록 스토리지 질의용 동적 종속성 분석을 위한 기본 엔진입니다. 계산 스크립트의 기본값은 아닙니다(사용자가 사용으로 설정할 수 있음).
Essbase 11g 온-프레미스로 작업한 경우 다양한 용도에 맞춰진 하나 이상의 큐브 설계 모드에 익숙할 것입니다.
- 블록 스토리지: 대형 희소 차원이 있을 때 가장 적합합니다. 이 모드의 큐브는 저장 및 사전 집계되어 뛰어난 질의 성능을 확보할 수 있습니다. 분석을 위한 다양한 계산 함수를 포함합니다.
- 집계 스토리지: 많은 차원 및 상위 레벨 집계가 있는 큐브에 가장 적합합니다. 멤버 공식은 MDX를 사용하여 지정할 수 있습니다.
- 하이브리드 모드: 집계 스토리지의 이점이 강화된 블록 스토리지 모드입니다.
하이브리드 모드는 Essbase 21c 및 Essbase 19c의 블록 스토리지 큐브에서 쿼리에 대한 동적 종속성 분석을 위한 기본 질의 엔진입니다. 하이브리드 모드는 강력한 종속성 분석 및 빠른 집계를 제공합니다. 동적 멤버에 종속된 멤버를 질의할 때의 복잡성을 처리하는 데 탁월합니다.
분석 애플리케이션에서 오라클은 희소 집계를 포함한 동적 종속성을 사용할 것을 권장합니다. 그러면 Essbase 11g 온프레미스의 경우처럼 희소 차원에 선택적으로 동적 계산을 구현하는 데 제한되지 않습니다. 특히 성능 튜닝 지침 및 테스트에 따라 희소 동적 집계가 가능하고 권장됩니다.
하이브리드 모드가 블록 스토리지 큐브의 기본 질의 프로세서이지만 계산 스크립트를 실행하기 위한 기본값은 아닙니다. 계산 스크립트에 많은 동적 종속성이 포함된 경우 오라클은 계산 스크립트에도 하이브리드 모드를 사용할 것을 권장합니다. 이를 위한 방법은 애플리케이션 구성 속성에서 HYBRIDBSOINCALCSCRIPT 구성 설정을 켜거나 SET HYBRIDBSOINCALCSCRIPT 계산 명령을 사용하여 계산별로 제어하는 것입니다.
대부분의 Essbase 계산 함수는 하이브리드 모드로 작동합니다. 하이브리드 모드로 지원되는 모든 계산 함수에 대한 목록 및 구문과 몇 가지 예외사항을 보려면 하이브리드 모드에서 지원되는 기능을 참조하십시오. FIXPARALLEL을 사용한 병렬 계산은 하이브리드 모드에서 지원되지만, CALCPARALLEL를 사용한 병렬 계산은 지원되지 않습니다.
기본값 설정 외에 하이브리드 모드를 구성하거나 해제하는 구문을 보려면 ASODYNAMICAGGINBSO를 참조하십시오.
이 절의 항목:
하이브리드 모드의 이점
Essbase 하이브리드 모드 큐브는 희소 차원에서도 빠른 집계, 더 작은 큐브 크기, 최적화된 메모리 공간, 유연한 뱃치 계산, 강력한 공식 종속성 분석 등의 이점을 제공합니다.
하이브리드 모드는 BSO(블록 스토리지) 절차적 계산 및 후기록 기능과 ASO(집계 스토리지) 집계 성능을 결합한 것입니다. 하이브리드 모드는 희소 집계를 저장할 필요가 없어서 빠른 성능 이점을 제공합니다. 결국 데이터베이스 크기 및 메모리 공간을 줄이고 뱃치 계산 시간이 단축됩니다. 다량의 레벨 0 계산 사용에 블록 스토리지를 사용할 것인지, 많은 상위 레벨 집계에 집계 스토리지를 사용할 것인지, 계산 성능을 높이기 위해 큐브가 차원선을 따라 분할되는 파티션 모델을 설계할 것인지 더 이상 고려할 필요가 없으므로 배치 고려사항이 간소화됩니다.
다음은 하이브리드 모드로 계산 성능이 향상될 수 있는 몇 가지 시나리오입니다.
-
블록 스토리지 데이터베이스에 레벨 0이 아닌 희소 멤버가 있고 (계산 스크립트가 아닌) 계층에 따라 계산됩니다.
-
희소 동적 계산 상위 멤버에 100개 이상의 하위 멤버가 있습니다.
-
빈 집계 스토리지 대상과 블록 스토리지 소스 간에 투명 파티션을 사용하고 있습니다. 집계 스토리지 대상의 공식이 간단하고 블록 스토리지 공식 언어로 번역할 수 있는 경우 하이브리드 모드를 사용하여 블록 스토리지에서 빠른 결과를 얻을 수 있습니다.
-
두 개의 블록 스토리지 데이터베이스 간에 투명 파티션을 사용하고 있고 계산 성능이 중요합니다.
하이브리드 모드의 또 다른 이점은 아웃라인 순서 종속성이 없다는 것입니다. 차원 순서를 재배열하는 대신 해결 순서를 쉽게 사용자정의할 수 있습니다.
또한 하이브리드 모드를 사용하면 시나리오 관리를 사용하여 스토리지 요구사항을 추가하지 않고도 워크플로우 형식을 사용하여 가상 데이터를 테스트하고 모델링할 수 있습니다.
하이브리드 모드, 블록 스토리지 및 집계 스토리지 비교
하이브리드 모드가 없으면 동적 계산 멤버의 블록 스토리지 알고리즘이 대형 희소 차원과 함께 사용될 때 제한이 있습니다. 하이브리드 모드(및 집계 스토리지)가 동적 종속성 분석에 더 최적화되어 있습니다. Essbase 애플리케이션에 가장 적합한 질의 프로세서 유형을 선택할 수 있도록 주요 차이점을 읽어보십시오.
하이브리드 모드가 없으면 블록 스토리지 데이터베이스의 대형 희소 차원을 저장해야 합니다. 이 차원을 동적으로 만들면 질의 또는 계산 시간에 너무 많은 블록 I/O가 발생하여 성능에 영향을 미칩니다. 저장된 희소 차원이 너무 크면 뱃치 집계 시간이 길어지고 희소 차원의 개수 및 크기와 비례하여 대형 데이터베이스 크기가 늘어납니다. 이러한 결점에도 불구하고 블록 스토리지는 강력한 기능을 위해 널리 사용됩니다.
집계 스토리지는 더 많고 큰 차원이 있는 대형 데이터베이스에 맞게 특별히 설계되었습니다. 블록 스토리지와 달리, 뛰어난 질의 성능을 확보하기 위해 대형 희소 차원을 사전 집계할 필요가 없습니다. 그 열쇠는 집계 스토리지 데이터베이스 커널에 있으며, 이는 대형 차원 간에 신속한 동적 집계를 가능하게 합니다.
그러나 집계 스토리지가 제공하는 모든 이점에도 불구하고, 원하는 세분성으로 데이터를 로드하거나, 복잡한 뱃치 할당을 자주 실행하거나, 글로벌 금융의 통화 변환을 구현하는 등 블록 스토리지가 더 적합한 많은 사례가 있습니다. 이 경우와 더 많은 경우 하이브리드 모드가 해결책이 될 수 있습니다. 하이브리드 모드는 블록 스토리지와 집계 스토리지의 장점을 결합한 것입니다. 하이브리드 모드에서 Essbase 특징은 다음과 같습니다.
-
계산이 희소 동적 집계에 의존하는 경우에도 완전한 절차적 계산 유연성을 제공합니다.
-
동적 희소 멤버에 액세스하는 질의를 위해 하이브리드 엔진을 사용합니다. 이 방법으로 처리할 수 없는 적은 비율의 질의에 대해 Essbase는 블록 스토리지 계산 플로우를 사용하여 요청을 충족시킵니다.
-
희소 멤버를 동적으로 표시하는 경우 다음 이점을 제공합니다.
- 사전 집계의 필요성 제거
-
재구조화 성능 향상
-
백업 성능 향상
-
디스크 공간 요구사항 감소
-
하이브리드 모드는 동적 계산에 관여하므로 해결 순서를 사용하여 계산 순서를 지정할 수 있습니다.
주:
질의 또는 계산 스크립트로 구동되든 관계없이, 하이브리드 계산은 공식 캐시 및 집계 스토리지 캐시를 활용하여 임시 메모리 공간에서 수행됩니다.
주요 차이점
다음 주요 차이점을 바탕으로 애플리케이션에 가장 적합한 질의 프로세서 유형을 선택할 수 있습니다.
| 요구사항 | ASO(집계 스토리지) | BSO(블록 스토리지) | 하이브리드 모드 |
|---|---|---|---|
|
여러 희소 차원 간의 신속한 집계에 최적화됨 |
예 |
아니요 |
예 |
|
최소 디스크 공간 사용량 및 백업 시간 단축에 최적화됨 |
예 |
아니요 |
예 |
|
재무 애플리케이션에 최적화됨 |
아니요 |
예 |
예 |
|
할당을 수행할 수 있음 |
예 |
예 |
예 |
|
뱃치 계산을 수행할 수 있음 |
아니요 |
예 |
예 |
|
멤버 공식이 지원됨 |
예, MDX로 표현 |
예, Essbase 계산 함수로 표현 |
예, Essbase 계산 함수로 표현 |
|
멤버 공식의 순방향 참조에 최적화됨 |
아니요 |
아니요 |
예 |
|
계산/집계의 해결 순서를 사용자정의할 수 있음 |
예 |
아니요 |
예 |
|
소량의 입력 데이터 집합의 빠른 종속성 분석을 위해 상향식 질의 실행을 지정할 수 있음 |
아니요 |
아니요 |
예 |
|
질의 실행을 추적하고 디버그할 수 있음 |
예 |
아니요 |
예 |
|
질의에 허용된 메모리 사용을 제한할 수 있음 |
예 |
아니요 |
예 |
|
2단계 계산 지원 |
아니요 |
예 |
아니요 |
|
원하는 레벨로 데이터를 로드할 수 있음 |
아니오. 공식 종속성이 없는 레벨 0 셀만 로드할 수 있습니다. |
예 |
저장된 레벨은 예 동적 레벨은 아니오 |
|
버퍼를 사용하여 증분적으로 데이터를 로드할 수 있음 |
예 |
아니요 |
아니요 |
|
희소 차원의 공식 평가가 밀집 차원의 동일한 공식과 다른 결과를 산출할 수 있음 |
N/A |
예. 하이브리드 모드가 없는 블록 스토리지에서 희소 블록에 걸친 종속성 해결 목적으로 Essbase 계산 스크립트가 반복적으로 작성될 수 있습니다. 차원 유형을 희소에서 밀집으로 변경하면(그 반대도 가능) 동일한 공식에 대해 다른 결과를 얻을 수 있습니다. |
아니오. 희소성 또는 밀집성에 관계없이 공식 종속성은 동일하게 계산됩니다. 하이브리드 모드에서 Essbase는 동적 종속성을 해결하는 알고리즘을 사용합니다. 어떤 경우 계산 스크립트에서 파생된 데이터는 하이브리드가 없는 블록 스토리지 모드와 하이브리드 모드에서 결과가 다를 수 있습니다. |
하이브리드 모드 시작하기
하이브리드 모드에서 Essbase 애플리케이션 실행을 시작하려면 테스트 환경에서 시작하고, 크고 희소한 차원을 동적으로 만들고, 애플리케이션 로그를 검토합니다.
하이브리드 모드를 시작하려면 다음 지침을 따르십시오.
-
개발 환경을 설정하고 기존 블록 스토리지 애플리케이션을 마이그레이션합니다. 하이브리드 모드는 블록 스토리지 큐브에서 기본적으로 사용으로 설정됩니다.
-
가능한 경우 더 큰 희소 차원을 동적으로 만듭니다.
-
하이브리드 모드를 사용으로 설정하기 전/후에 테스트 질의를 실행하고 애플리케이션 로그를 조사합니다. 이 작업으로 집계 스토리지 질의 프로세서가 사용된 범위와 하이브리드 모드로 획득한 이점을 확인할 수 있습니다. 각 질의에 대해 애플리케이션 로그 상태는
Hybrid aggregation mode enabled또는Hybrid aggregation mode disabled.입니다. -
하이브리드 모드가 사용 안함으로 설정된 상태로 너무 많은 질의가 기록된 경우 오라클 고객지원센터에 문의하십시오.
하이브리드 모드에 맞게 큐브 최적화
하이브리드 모드를 가장 효과적으로 사용하는 방법:
-
하이브리드 모드에서 2단계 계산을 사용하지 마십시오. 대신 해결 순서를 사용합니다.
-
실행 가능한 경우 항상 레벨 0이 아닌 저장된 멤버를 동적 계산으로 변환합니다.
-
동적 계산 멤버로 변환 시 종속 공식의 해결 순서에 영향을 미치는 경우, 이전 뱃치 계산 순서와 2단계 계산 설정에 해결 순서를 맞춰서 아웃라인의 차원 순서를 조정해야 할 수 있습니다.
하이브리드 모드 큐브의 기본 해결 순서는 일부 개선사항과 함께 블록 스토리지 큐브의 계산 순서와 비슷합니다. 기본이 아닌 해결 순서를 사용하려면 차원 및 멤버에 대한 사용자정의 해결 순서를 설정할 수 있습니다.
-
동적으로 계산된 공식이 잘못된 해결 순서로 처리될 경우 너무 많은 공식이 질의로 실행되어 성능이 저하될 수 있습니다. 가능한 경우 동적으로 계산된 희소 공식은 계층적으로 집계된 희소 차원보다 해결 순서가 높아야 합니다.
올바른 공식 결과를 얻기 위해 다른 해결 순서를 필요로 하는 일부 애플리케이션에서는 불가능합니다. 예를 들어, 단위와 가격이 있는 애플리케이션이 상위 레벨에서 올바른 판매 금액을 얻으려면 희소 집계에 앞서 판매 금액이 실행되어야 합니다.
-
차원의 밀집 또는 희소 구성을 조정해야 할 수도 있습니다(하이브리드 엔진을 사용할 수 없는 경우 블록 스토리지 엔진 활용률에만 적용됨).
-
가능한 경우 블록 크기를 최소화합니다.
Essbase 관리자는 다음 툴을 사용하여 하이브리드 모드로 질의 성능을 모니터링 및 최적화할 수 있습니다.
-
단일 질의가 소비할 수 있는 메모리 양을 제한하려면 MAXFORMULACACHESIZE 구성 설정을 사용합니다.
-
교차 차원 연산자와 여러 IF/ELSE 문이 포함된 복합 멤버 공식이 큐브에 있을 경우 공식 실행과 관련된 성능 문제가 발생할 수 있습니다. 이 문제가 의심될 경우 공식 계산을 위한 상향식 질의 처리를 활성화할 수 있습니다. 그러면 계산에 필요한 교차를 식별하여 질의 시간이 최적화되고 질의 시간이 입력 데이터 크기에 비례합니다.
릴리스 21C에 대해 이렇게 질의를 최적화하려면 @QUERYBOTTOMUP 계산 함수는 물론 QUERYBOTTOMUP 구성 설정을 사용합니다. 릴리스 19C의 경우에는 @NONEMPTYTUPLE 계산 함수는 물론 BOTTOMUP 구문과 함께 IGNORECONSTANTS 구성 설정을 사용합니다.
-
질의 추적을 사용하여 질의 성능을 모니터링 및 디버깅합니다. 사용 사례에 따라 여러 가지 애플리케이션 레벨 구성 설정을 사용할 수 있습니다. 문제가 발생할 수 있다고 간주되는 단일 질의의 단기 디버깅에는 QUERYTRACE를 사용합니다. 동시에 실행되는 질의에 대한 통계 수집에는 TRACE_REPORT를 사용합니다(개발 환경에서의 디버깅에 적합함). 운용 환경에서 LONGQUERYTIMETHRESHOLD를 사용하여 설정된 시간보다 오래 실행되는 질의에 대해 애플리케이션 로그 파일에 통계를 출력합니다.
하이브리드 모드의 제한 및 예외사항
어떤 경우 하이브리드 모드에서 질의가 최적으로 실행되지 않습니다. Essbase는 이 조건이 발생한 시기를 감지하고 블록 스토리지 모드로 집계합니다. 지원되는 것과 지원되지 않는 하이브리드 모드 계산 유형이 질의에 섞여 있으면 Essbase는 기본적으로 블록 스토리지 계산 실행으로 설정됩니다.
사용으로 설정된 경우 하이브리드 모드는 지원되는 함수를 사용한 멤버 공식에 적용됩니다. 지원되는 함수 및 지원되지 않는 함수 목록은 하이브리드 모드에서 지원되는 함수를 참조하십시오.
다음 유형의 질의는 하이브리드 모드에서 실행되지 않습니다.
-
투명 파티션 대상의 공식을 사용한 동적 계산 멤버
-
공유 멤버가 대상 파티션 정의 밖에 있고 프로토타입 멤버가 안에 있는 쿼리(그 반대도 가능)
-
XOLAP
-
텍스트 측정항목/텍스트 목록
합계에 한해 속성 계산이 하이브리드 모드에서 실행됩니다.
종속 멤버의 해결 순서가 공식 멤버보다 높으면 다음 경고가 나타납니다.
Solve order conflict - dependent member member_name with higher solve order will not contribute value for formula of member_name하이브리드 모드의 해결 순서
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으로 설정됩니다.
-
다음을 제외한 집계는 아웃라인 순서대로 실행됩니다.
- 저장된 계층 멤버가 첫번째로 처리됩니다.
- 동적 계층 멤버가 그 다음 처리됩니다.
비-하이브리드 블록 스토리지 큐브에서 기본 해결 순서는 다음과 같습니다.
-
밀집 전에 희소
-
시간 전에 계정
-
마지막으로 속성
주:
계정 멤버의 해결 순서가 시간 멤버의 해결 순서보다 큰 값으로 수동 설정된 경우, 동적 시계열 멤버 뒤에 계정이 평가됩니다.