Essbase에서 트랜잭션 의미 이해

큐브가 읽기/쓰기 모드에 있으면 Essbase는 서버에 대한 모든 업데이트 요청(예: 데이터 로드, 계산 또는 계산 스크립트 명령문)을 트랜잭션으로 간주합니다.

각 트랜잭션의 현재 상태는 활성, 커밋됨 또는 중단됨입니다. 데이터가 커밋되면 서버 메모리에서 가져와서 디스크상 큐브에 기록됩니다.

큐브 검사기 설정의 트랜잭션 탭에 있는 블록 커밋/행 커밋 옵션은 Essbase가 데이터 블록 또는 행을 커밋하는 빈도를 나타냅니다.

Essbase에서 트랜잭션은 블록 단위로 읽기/쓰기 잠금을 보유할 수 있습니다. Essbase는 업데이트 후 블록을 해제하지만 트랜잭션이 완료되거나 정해진 제한(“동기화 지점”)에 도달할 때까지 블록을 커밋하지 않습니다.

다음 동기화 지점 매개변수를 지정하여 Essbase가 명시적 커밋 작업을 수행하는 시기를 제어합니다.


Essbase 웹 인터페이스에서 큐브 검사기 > 설정 > 트랜잭션 탭의 커밋되지 않은 액세스 옵션 이미지.

  • 블록 커밋 (동기화 지점이 발생하기 전에 수정된 블록 수). Essbase는 지정된 블록 수에 도달한 후 커밋합니다. 이 빈도는 계산 중 동적으로 조정될 수 있습니다.

    블록 커밋을 0으로 설정하면 트랜잭션이 끝나고 동기화 지점이 발생합니다.

  • 행 커밋 (동기화 지점이 발생하기 전에 로드할 행 수). 기본값 0은 데이터 로드가 끝나고 동기화 지점이 발생함을 의미합니다.

블록 커밋 또는 행 커밋 값이 0이 아닌 경우 첫번째 임계값에 도달할 때 동기화 지점이 발생합니다. 예를 들어, 블록 커밋이 10이지만 행 커밋이 0인 경우 데이터 로드 시 10개 블록이 업데이트된 후 동기화 지점이 발생합니다. 블록 커밋이 5이고 행 커밋이 5인 경우 데이터 로드 시 5개 행이 로드되거나 5개 블록이 업데이트된 후(둘 중 먼저 발생하는 쪽) 동기화 지점이 발생합니다.

Essbase 서버가 Oracle Exalytics In-Memory Machine에서 실행될 경우 커밋되지 않은 액세스 설정을 적용할 수 없습니다. 커밋은 명령이나 요청이 끝나고 발생합니다. 블록 커밋 또는 행 커밋 설정에 대한 변경사항은 무시됩니다.

Essbase 서버가 Windows 독립적 배치에서 실행될 경우 기본적으로 블록 커밋은 3000으로 설정됩니다.

사용자 정의 임계값이 작업 중 초과된 경우 Essbase는 동기화 지점을 생성하여 해당 지점까지 처리된 데이터를 커밋합니다. Essbase는 작업을 완료하는 데 필요한 만큼의 동기화 지점을 생성합니다.

Essbase는 병렬 계산 사용의 타당성을 분석하는 동안 블록 커밋 및 행 커밋 값을 분석합니다. 설정된 값이 너무 낮으면 Essbase는 자동으로 값을 늘립니다.

Essbase는 트랜잭션 의미를 시행하기 위해 중복 데이터를 유지합니다. 특히 블록 커밋과 행 커밋이 모두 0으로 설정된 경우 중복 데이터를 수용하기 위해 데이터베이스 크기의 2배만큼 디스크 공간을 허용합니다.

블록 커밋과 행 커밋을 설정하려면 다음과 같이 하십시오.
  1. Essbase 웹 인터페이스에서 트랜잭션으로 이동합니다.
    Redwood 인터페이스에서:
    1. [애플리케이션] 페이지에서 애플리케이션을 열고 데이터베이스(큐브)를 엽니다.
    2. 사용자정의를 누르고 설정을 누르고 트랜잭션을 누릅니다.
    클래식 웹 인터페이스에서:
    1. 애플리케이션 페이지에서 애플리케이션을 확장합니다.
    2. 큐브 이름 오른쪽에 있는 작업 메뉴에서 설정을 누르고 트랜잭션을 누릅니다.
  2. 원하는 항목을 선택하고 저장을 누릅니다.