집계 저장 영역 큐브로 데이터 로드

Essbase 합산 저장영역(ASO) 큐브는 최대 백만 개 이상의 멤버를 포함하는 매우 큰 차원의 분석을 지원합니다. 이러한 대형 아웃라인으로 데이터를 로드하는 데 도움이 되도록 Incremental 로드, 데이터 로드 버퍼 관리, 데이터 슬라이스 병합/교체 등을 수행할 수 있습니다.

이러한 큰 큐브로 데이터 값 로드를 효율적으로 지원하기 위해 Essbase는 다음을 수행합니다.

  • 임시 데이터 로드 버퍼를 통해 다중 데이터 소스 처리 허용

  • 데이터 로드 버퍼가 사용하는 리소스의 백분율을 제어할 수 있습니다.

  • 집계 저장영역 큐브에 여러 데이터 슬라이스를 포함할 수 있도록 허용합니다. 데이터베이스에 대한 질의는 각 슬라이스에 액세스하여 모든 데이터 셀을 수집합니다.

  • 증분 데이터 크기에 비례하는 시간 동안 완료되는 증분 데이터 로드 프로세스를 제공합니다.

합산 저장영역 큐브에 값을 로드하려면 Essbase 웹 인터페이스의 [작업] 페이지를 사용하거나 MaxL에서 데이터베이스 변경데이터 임포트 문을 사용할 수 있습니다. 이 문서의 예는 MaxL 사용을 기반으로 합니다.

주:

집계를 통해 값이 계산되고 저장된 경우 Essbase는 데이터 값이 변경되면 상위 레벨의 저장된 값을 자동으로 업데이트합니다. 추가 계산 단계는 필요하지 않습니다. 집계의 존재 여부와 크기는 데이터 로드를 수행하는 데 걸리는 시간에 영향을 줄 수 있습니다.

큐브로 데이터를 로드하는 동안에는 데이터를 익스포트할 수 없습니다.

ASO 애플리케이션을 복사할 때 큐브의 모든 데이터를 유지하려면 애플리케이션을 복사하기 전에 모든 증분 데이터 슬라이스를 기본 데이터베이스 슬라이스로 병합해야 합니다. 병합되지 않은 증분 데이터 슬라이스의 데이터는 복사되지 않습니다.

데이터 로드 버퍼를 통해 Incremental 데이터 로드

증분 데이터 로드를 사용하여 데이터 값을 Essbase 합산 저장영역(ASO) 큐브로 로드하는 경우 성능을 향상시킬 수 있습니다. Essbase는 먼저 임시 데이터 로드 버퍼에 값을 로드하고 모든 데이터 소스를 읽은 후 스토리지에 최종 쓰기를 수행합니다.

import data MaxL 문을 사용하여 단일 데이터 소스에서 데이터 값을 로드하는 경우 집계 스토리지 데이터 로드 버퍼가 포함되지 않습니다.

데이터베이스 데이터 임포트 MaxL 문을 여러 개 사용하여 집계 저장영역 큐브에 데이터 값을 로드하는 경우 Essbase는 임시 데이터 로드 버퍼를 활용하여 모든 데이터 소스를 읽은 후 저장영역에 최종 쓰기를 완료할 수 있습니다. 집계 저장 영역 데이터 로드 버퍼를 사용하면 전체 데이터 로드 성능을 크게 향상시킬 수 있습니다.

합산 저장영역 데이터 로드 버퍼에서 Essbase는 모든 데이터 소스를 읽은 후 값을 정렬하고 커밋합니다. 특정 데이터 셀에 대해 다중(또는 중복) 레코드가 발견되면 값이 누적됩니다. 그런 다음 Essbase는 큐브의 기존 데이터 값에서 바꾸기, 추가 또는 빼기 등의 누적 값을 저장합니다.

주:

집계 저장 영역 데이터 로드 버퍼를 사용할 때는 데이터 버퍼 내용을 큐브로 로드할 때 전체 데이터 소스 집합에 대해 값을 바꾸거나 추가하거나 빼는 옵션이 지정됩니다.

데이터 로드 버퍼가 메모리에 있는 동안에는 집계를 작성하거나 슬라이스를 병합할 수 없습니다. 이러한 작업은 리소스가 많이 사용되기 때문입니다. 그러나 다른 데이터 로드 버퍼로 데이터를 로드하고 큐브에서 질의 및 기타 작업을 수행할 수 있습니다. 전체 데이터 세트가 커밋되고 집계가 생성될 때까지 질의에 대한 간략한 대기가 있을 수 있습니다.

버퍼 내용이 큐브에 커밋되거나 응용 프로그램이 재시작될 때까지(버퍼가 삭제될 때) 메모리에 데이터 로드 버퍼가 존재합니다. 커밋 작업이 실패하더라도 버퍼가 삭제되고 데이터가 큐브에 로드되지 않습니다. alter database MaxL 문을 사용하여 데이터 로드 버퍼를 수동으로 삭제할 수 있습니다.

주:

버퍼 내용을 커밋하기 전에 응용 프로그램을 정지하면 버퍼가 삭제됩니다. 이 경우 응용 프로그램을 재시작한 후에 새 버퍼를 초기화하고 해당 버퍼에 데이터를 로드해야 합니다.

집계 저장 영역 큐브에 데이터 로드 버퍼를 사용하려면 다음과 같이 하십시오.

  1. 데이터베이스 변경 MaxL 문을 사용하여 집계 저장 영역 데이터 로드 버퍼를 초기화함으로써 데이터 값이 정렬되고 누적되는 데이터 로드 버퍼를 준비합니다. 예를 들면, 다음과 같습니다.
    alter database ASOsamp.Basic 
       initialize load_buffer with buffer_id 1;
  2. 데이터베이스 임포트 MaxL 문을 사용하여 데이터 소스에서 데이터 로드 버퍼로 데이터를 로드합니다. 다중 명령문을 사용하여 여러 데이터 소스에서 데이터를 로드합니다. 모든 데이터 소스 조합을 포함할 수 있습니다. 데이터 소스에 규칙 파일이 필요한 경우 규칙 파일을 지정합니다.

    다음 예제는 규칙 파일을 사용하는 두 개의 데이터 소스를 동일한 데이터 로드 버퍼로 로드합니다.

    import database ASOsamp.Basic data 
       from server data_file 'file_1.txt' 
       to load_buffer with buffer_id 1
       on error abort; 
    import database ASOsamp.Basic data
       from server data_file 'file_2' 
       using server rules_file ‘rule’ 
       to load_buffer with buffer_id 1
       on error abort;
    

    데이터를 여러 로드 버퍼에 동시에 로드하려면 Multiple Data Loads in Parallel을 참조하십시오.

  3. 데이터 임포트 MaxL 문을 사용하여 데이터 로드 버퍼 콘텐츠를 큐브로 커밋합니다. 예를 들면, 다음과 같습니다.
    import database ASOsamp.Basic data 
       from load_buffer with buffer_id 1;

    하나의 MaxL 문을 사용하여 여러 데이터 로드 버퍼의 내용을 큐브로 커밋하려면 Multiple Data Loads in Parallel를 참조하십시오.

다음 증분 데이터 로드 예에서는 새 데이터 값이 기존 값과 교차하지 않는 경우 최적의 성능을 제공합니다.

  1. ignore_missing_values 및 ignore_zero_values 속성을 사용하여 단일 데이터 로드 버퍼를 생성합니다. 예:

    alter database ASOsamp.Basic 
       initialize load_buffer with buffer_id 1
       property ignore_missing_values, ignore_zero_values;

    업데이트 중 데이터 요청 전송에 큐브를 사용할 수 있어야 하는 경우 resource_usage 문법이 80%로 설정된 상태로 데이터 로드 버퍼를 초기화합니다. 예:

    alter database ASOsamp.Basic 
       initialize load_buffer with buffer_id 1
       resource_usage 0.8 property
       ignore_missing_values, ignore_zero_values;
  2. 버퍼에 데이터를 로드합니다. 예:

    import database ASOsamp.Basic data 
       from server data_file 'file_1.txt' 
       to load_buffer with buffer_id 1
       on error abort; 
    import database ASOsamp.Basic data
       from server data_file 'file_2'
       to load_buffer with buffer_id 1
       on error abort;
    
  3. 슬라이스를 생성하고 값을 추가하여 데이터 로드 버퍼의 내용을 큐브에 커밋합니다. 예:

    import database ASOsamp.Basic data 
       from load_buffer with buffer_id 1
       add values create slice;

데이터 로드 버퍼 리소스 및 디스크 공간 사용량

증분 데이터 로드를 사용하여 데이터 값을 Essbase 합산 저장영역(ASO) 큐브로 로드하는 경우 허용된 리소스 사용량 및 임시 데이터 로드 버퍼 대기 시간에 제약 조건을 적용할 수 있습니다. 테이블스페이스를 관리하여 디스크 공간 사용을 줄일 수 있습니다.

데이터 로드 버퍼 리소스 사용 제어

증분 데이터 로드를 수행할 때 Essbase는 집계 저장영역 캐시를 사용하여 데이터를 정렬합니다. 백분율을 지정하여 데이터 로드 버퍼가 사용할 수 있는 캐시의 양을 제어할 수 있습니다. 백분율은 .01에서 1.0(포함) 사이의 숫자입니다. 소수점 뒤의 두 자릿수만 중요합니다. 예를 들어, 0.029는 0.02로 해석됩니다. 기본적으로 데이터 로드 버퍼의 리소스 사용은 1.0으로 설정되며 데이터베이스에서 생성된 모든 데이터 로드 버퍼의 총 리소스 사용량은 1.0을 초과할 수 없습니다. 예를 들어, 0.9 크기의 버퍼가 존재하는 경우 0.1보다 큰 크기의 다른 버퍼를 생성할 수 없습니다.

주:

전송 작업은 내부적으로 크기가 0.2인 로드 버퍼를 생성합니다. 따라서 기본 크기가 1.0인 로드 버퍼는 데이터 로드 버퍼 리소스가 부족하여 전송 작업을 실패하게 됩니다.

버퍼가 사용할 수 있는 리소스 양을 설정하려면 Essbase 웹 인터페이스에서 데이터 로드를 시작할 때 백분율을 지정합니다. MaxL을 사용하는 경우 resource_usage 문법과 함께 alter database MaxL 문을 사용합니다.

예를 들어, resource_usage를 전체 캐시의 50%로 설정하려면 다음 명령문을 사용합니다.

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1
   resource_usage .5;

동시 전송 작업을 실행하려는 경우 wait_for_resources 문법과 함께 ASOLOADBUFFERWAIT 구성 설정 및 데이터베이스 변경 MaxL 문을 사용합니다. ASOLOADBUFFERWAIT는 wait_for_resources 옵션을 사용하여 집계 저장 영역 데이터 로드 버퍼를 생성하는 데 적용되고 할당, 사용자 정의 계산, 데이터 업데이트 작업에 적용됩니다.

Incremental 데이터 로드의 디스크 공간 관리

집계 저장 영역 큐브에 대한 증분 데이터 로드는 현재 데이터 파일 크기의 최대 2배까지 디스크 공간을 사용할 수 있습니다. 예를 들어, 큐브의 데이터 크기가 1GB이고 증분 데이터 로드 크기가 총 1.2GB인 경우 200MB라고 가정합니다. 증분 데이터 로드 프로세스 중 Essbase는 최대 2.4GB의 디스크 공간을 사용할 수 있습니다.

데이터베이스가 2GB보다 큰 경우 기본 테이블스페이스의 최대 파일 크기를 2GB 이하로 설정하여 디스크 공간 활용률을 줄일 수 있습니다.

기본 테이블스페이스의 최대 파일 크기를 설정하려면 alter tablespace MaxL 문을 사용합니다.

데이터 로드 버퍼 속성

점진적으로 데이터 값을 합산 저장영역(ASO) 로드 버퍼에 로드하는 경우 Essbase에 소스 데이터의 누락 값과 0 값을 무시하도록 지정할 수 있으며, 셀 충돌을 해결할 수 있습니다(중복 셀을 결합하여 부적합한 집계 제거).

설정할 수 있는 데이터 로드 버퍼 속성은 다음과 같습니다.

  • ignore_missing_values: 수신 데이터 스트림에서 #MI 값을 무시합니다

  • ignore_zero_values: 수신 데이터 스트림에서 0을 무시

  • aggregate_use_last: 로드 버퍼에 마지막으로 로딩된 셀의 값을 사용하여 중복 셀를 조합합니다.

    주:

    텍스트 및 날짜 값을 집계 저장 영역 데이터베이스로 로드할 때는 aggregate_use_last 등록 정보를 사용하여 잘못된 집계를 제거합니다. 기타 지침은 텍스트 및 날짜 측정 단위 로드, 지우기 및 내보내기를 참조하십시오.

명령에 여러 등록 정보를 사용하고 충돌이 있는 경우 나열된 마지막 등록 정보가 우선합니다.

데이터 스트림에서 누락 및 0 처리

증분적으로 데이터를 로드할 때 데이터를 데이터 로드 버퍼로 로드할 때 소스 데이터의 누락 값과 0 값을 처리하는 방법을 지정할 수 있습니다.

데이터 로드 버퍼 등록 정보를 설정하려면 등록 정보 문법과 함께 데이터베이스 변경 MaxL 문을 사용합니다.

예:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1
   property ignore_missing_values, ignore_zero_values;

셀 충돌 해결

중복 셀에 대한 셀 충돌을 해결하기 위해 로드 버퍼에 로드된 마지막 셀을 사용할지 여부를 지정할 수 있습니다.

기본적으로 동일한 키를 가진 셀이 동일한 데이터 로드 버퍼로 로드되는 경우 Essbase는 값을 함께 추가하여 셀 충돌을 해결합니다.

로드 버퍼에 마지막으로 로드된 셀의 값을 수락하여 중복 셀을 결합하는 데이터 로드 버퍼를 생성하려면 aggregate_use_last 문법과 함께 데이터베이스 변경 MaxL 문을 사용합니다.

예:

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1
   property aggregate_use_last;

주:

aggregate_use_last 문법과 함께 데이터 로드 버퍼를 사용할 경우 중복 키가 없더라도 데이터 로드 속도가 상당히 느려집니다.

병렬로 다중 데이터 로드

Essbase 합산 저장영역(ASO) 큐브에 데이터 로드 버퍼가 여러 개 있을 수 있습니다. 한 번에 하나의 커밋 작업만 활성 상태여야 하지만 동일한 커밋에서 여러 데이터 로드 버퍼를 커밋할 수는 있습니다. 그러면 개별적으로 버퍼를 커밋하는 것보다 빠릅니다.

데이터를 여러 데이터 로드 버퍼로 동시에 로드하려면 별도의 MaxL Shell 세션을 사용합니다. 예를 들어, 한 MaxL Shell 세션에서 ID가 1인 버퍼로 데이터를 로드합니다.

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 1 resource_usage 0.5;
import database ASOsamp.Basic data
   from data_file "dataload1.txt"
   to load_buffer with buffer_id 1
   on error abort;

동시에 다른 MaxL Shell 세션에서 ID가 2인 버퍼로 데이터를 로드합니다.

alter database ASOsamp.Basic
   initialize load_buffer with buffer_id 2 resource_usage 0.5;
import database ASOsamp.Basic data
   from data_file "dataload2.txt"
   to load_buffer with buffer_id 2
   on error abort;

데이터가 데이터 로드 버퍼에 완전히 로드되면 하나의 MaxL 문을 사용하여 콤마로 구분된 버퍼 ID 목록을 사용하여 두 버퍼의 내용을 데이터베이스로 커밋합니다.

예를 들어, 이 명령문은 버퍼 1과 2의 내용을 로드합니다.

import database ASOsamp.Basic data 
   from load_buffer with buffer_id 1, 2;

주:

SQL 데이터를 집계 저장 영역 큐브로 로드하는 경우 최대 8개의 규칙 파일을 사용하여 데이터를 병렬로 로드할 수 있습니다. 이 기능은 위에서 설명한 프로세스와 다릅니다. 여러 SQL 데이터 로드를 병렬로 미리 구성할 때는 여러 rules_file 문법을 사용하여 하나의 데이터베이스 임포트 MaxL 문을 사용할 수 있습니다. Essbase는 여러 임시 합산 저장영역 데이터 로드 버퍼(각 규칙 파일에 대해 하나씩)를 초기화하고 모든 버퍼의 콘텐츠를 하나의 작업으로 큐브에 커밋합니다.

집계 저장 영역 큐브에 대한 데이터 로드 버퍼 나열

Essbase 합산 저장영역(ASO) 큐브에 데이터 로드 버퍼가 여러 개 있을 수 있습니다. 큐브에 있는 데이터 로드 버퍼의 목록 및 설명을 보려면 list load_buffers 문법과 함께 query database MaxL 문을 사용합니다.

ASO 데이터 로드 버퍼를 나열하는 MaxL 문의 구문은 다음과 같습니다.

query database appname.dbname list load_buffers;

이 명령문은 각각의 기존 데이터 로드 버퍼에 대한 다음 정보를 반환합니다.

표 37-2 데이터 로드 버퍼 정보

필드 설명

buffer_id

데이터 로드 버퍼의 ID입니다(1에서 4,294,967,296 사이의 숫자).

내부

데이터 로드 버퍼가 Essbase(TRUE)에 의해 내부적으로 생성되었는지 아니면 사용자(FALSE)에 의해 생성되었는지 지정하는 부울입니다.

활성

데이터 로드 버퍼가 현재 데이터 로드 작업에 사용 중인지 여부를 지정하는 부울입니다.

resource_usage

데이터 로드 버퍼가 사용할 수 있는 집계 스토리지 캐시의 백분율(.01에서 1.0 사이의 숫자 포함)입니다.

집계 방법

버퍼 내에서 동일한 셀에 대해 여러 값을 결합하는 데 사용되는 방법 중 하나입니다.

  • AGGREGATE_SUM: 버퍼에 동일한 셀의 여러 값이 포함되어 있는 경우 값을 추가합니다.

  • AGGREGATE_USE_LAST: 마지막으로로드 버퍼에 로드된 셀의 값을 사용하여 중복 셀를 결합합니다.

ignore_missings

수신 데이터 스트림에서 #MI 값을 무시할지 여부를 지정하는 부울입니다.

ignore_zeros

수신 데이터 스트림에서 0을 무시할지 여부를 지정하는 부울입니다.

참조: 질의 데이터베이스(집계 저장 영역)

데이터 슬라이스 만들기

데이터 로드 버퍼를 Essbase 합산 저장영역(ASO) 큐브로 증분적으로 커밋하여 슬라이스를 생성할 수 있습니다. 새 슬라이스를 큐브에 로드하면 Essbase는 슬라이스에 대한 모든 필요한 뷰(예: 집계 뷰)를 생성한 후 새 데이터를 쿼리에 표시합니다.

데이터 슬라이스를 만들면 증분 데이터 로드의 성능이 향상되므로 유용합니다. 증분 데이터 로드에 걸리는 시간은 새 데이터의 양에 비례합니다. 큐브의 크기는 계수가 아닙니다.

데이터 슬라이스를 만들려면 import database MaxL 문을 create slice 문법과 함께 사용합니다.

예를 들어, 값(기본값)을 재정의하여 슬라이스를 만들려면 다음 명령문을 사용합니다.

import database ASOsamp.Basic data
   from load_buffer with buffer_id 1
   override values create slice;

주:

슬라이스를 만들 때 재지정 값을 사용하는 경우 #MISSING 값이 0으로 바뀝니다. 이 옵션을 사용하면 값 추가 또는 값 빼기 옵션을 사용하는 것보다 훨씬 느립니다.

참조: 데이터 임포트(집계 저장 영역)

증분 데이터 슬라이스 병합

집계 저장영역(ASO) 큐브에 증분적으로 데이터를 로드할 때 증분 데이터 슬라이스를 기본 큐브 슬라이스에 수동으로 병합하거나, AUTOMERGE를 사용하여 데이터 로드 중 슬라이스를 자동으로 병합하도록 Essbase를 구성할 수 있습니다.

집계 저장영역 큐브로 데이터 로드하는 동안 증분 데이터 슬라이스 자동 병합

AUTOMERGEAUTOMERGEMAXSLICENUMBER 구성 설정을 사용하여 데이터 로드 중 Essbase가 집계 저장영역 큐브로 증분 데이터 슬라이스를 자동으로 병합할지 여부를 지정할 수 있습니다.

AUTOMERGE 구성 설정 옵션:

  • ALWAYS(항상) - 데이터 로드 중 증분 데이터 슬라이스를 집계 스토리지 큐브로 자동으로 병합하도록 지정합니다. 기본적으로 병합은 4개의 연속 증분 데이터 슬라이스마다 한 번씩 실행됩니다. 그러나 AUTOMERGEMAXSLICENUMBER 구성 설정을 사용할 경우 AUTOMERGEMAXSLICENUMBER 값이 초과될 때 자동 병합 프로세스가 활성화됩니다. 증분 데이터 슬라이스의 크기는 병합할 슬라이스를 선택하는 요소가 아닙니다.

    기본값은 항상입니다.

  • NEVER - 데이터 로드 중 집계 저장 영역 큐브로 증분 데이터 슬라이스를 자동으로 병합하지 않도록 지정합니다. 증분 데이터 슬라이스를 수동으로 병합하려면 병합 문법과 함께 데이터베이스 변경 MaxL 문을 사용합니다.

  • SELECTIVE - AUTOMERGEMAXSLICENUMBER 구성 설정에 지정된 증분 데이터 슬라이스 수를 초과할 때 증분 데이터 슬라이스 자동 병합 프로세스를 활성화하도록 지정합니다. 데이터 로드의 증분 데이터 슬라이스 수가 AUTOMERGEMAXSLICENUMBER의 값을 초과하지 않으면 자동 병합 프로세스가 활성화되지 않습니다.

증분 데이터 슬라이스 수동 병합

모든 증분 데이터 슬라이스를 기본 슬라이스로 병합하거나 모든 증분 데이터 슬라이스를 단일 데이터 슬라이스로 병합하고 기본 슬라이스는 변경되지 않은 상태로 둘 수 있습니다. 슬라이스를 병합하려면 데이터 로드 권한(데이터베이스 업데이트 권한 이상)과 동일한 권한이 있어야 합니다.

새 입력 뷰가 큐브에 기록된 후 Essbase는 슬라이스에 대한 집계 뷰를 생성합니다. 새 슬라이스에 대해 작성된 뷰는 기본 슬라이스에 있는 뷰의 하위 세트입니다.

주:

병합을 수행할 때 데이터를 익스포트할 수 없습니다.

지운 셀에 대해 값이 0이 되는 논리적 영역 지우기 작업을 사용하여 영역에서 데이터를 지운 경우 병합 작업 중에 0 값 셀을 제거하도록 선택할 수 있습니다.

병합 작업을 수행하려면 병합 문법과 함께 데이터베이스 변경 MaxL 문을 사용합니다.

예를 들어, 모든 증분 데이터 슬라이스를 주 슬라이스로 병합하려면 다음 명령문을 사용합니다.

alter database ASOsamp.Basic
   merge all data;

모든 증분 데이터 슬라이스를 주 슬라이스로 병합하고 값이 0인 셀을 제거하려면 다음 명령문을 사용합니다.

alter database ASOsamp.Basic
   merge all data remove_zero_cells;

모든 증분 데이터 슬라이스를 단일 데이터 슬라이스로 병합하려면 다음 명령문을 사용합니다.

alter database ASOsamp.Basic
   merge incremental data;

주:

통합 스토리지 애플리케이션을 복사하기 전에 모든 증분 데이터 슬라이스를 기본 슬라이스로 병합해야 합니다. 병합되지 않은 증분 데이터 슬라이스의 데이터는 복사되지 않습니다.

관련 링크

AUTOMERGE

AUTOMERGEMAXSLICENUMBER

데이터베이스 변경(집계 저장 영역)

증분 데이터 슬라이스 콘텐츠를 사용하여 데이터 바꾸기

낮은 데이터 대기 시간을 유지하면서 완전히 재로드할 수 있을 만큼 작은 합산 저장영역(ASO) 데이터 세트의 경우 Essbase는 합산 저장영역 큐브의 현재 콘텐츠를 제거하고 큐브를 지정된 데이터 로드 버퍼의 콘텐츠로 바꿀 수 있습니다.

기본 대체 기능은 서비스를 중단하지 않고 큐브의 이전 콘텐츠를 질의하는 작업을 새 콘텐츠로 전환합니다. 새로 로드된 데이터 세트가 집계되어 대체된 데이터 세트에 대해 존재하는 동일한 뷰 세트가 생성됩니다.

또한 Essbase에서는 큐브에 있는 모든 증분 데이터 슬라이스의 내용을 원자적으로 바꿀 수 있습니다. 데이터가 업데이트되지 않는 비교적 큰 정적 데이터 세트와 개별 업데이트를 식별하기 어렵지만 휘발성 데이터 세트로 제한되는 비교적 작은 휘발성 데이터 세트로 분리될 수 있는 상황을 고려해 보십시오. 예를 들어, 큰 정적 데이터 집합은 최근 3년 동안의 과거 트랜잭션 데이터로 구성되어 있지만 지난 2개월 동안의 트랜잭션 데이터의 경우 유저가 소스 데이터베이스에서 트랜잭션의 특성을 변경할 수 있습니다. 이러한 변경 사항을 추적하는 것은 매우 복잡할 수 있습니다. 정적 데이터 세트를 큐브의 기본 슬라이스로 로드하고 휘발성 데이터 세트를 하나 이상의 증분 슬라이스로 로드할 수 있습니다.

ASO 증분 데이터 로드 중 슬라이스를 커밋할 때 Essbase는 모든 증분 데이터 슬라이스의 현재 내용을 제거하고 임포트 데이터베이스 MaxL 문의 버퍼 커밋 사양에 있는 값 추가 문법을 사용하여 지정된 데이터 로드 버퍼의 내용과 함께 새 슬라이스를 생성합니다. 새로 로드된 데이터 세트는 기본 슬라이스에 있는 뷰 세트를 기반으로 집계된 뷰로 증강됩니다.

주:

대체 문법을 사용하려면 최적의 성능을 위해 ignore_missing_values 속성을 사용하여 데이터 로드 버퍼를 생성합니다. 또한 정적 데이터 세트와 휘발성 데이터 세트 간에 충돌이 없는지 확인해야 합니다. 예를 들어, 동일한 셀에 대한 각 데이터 세트에 값이 없어야 합니다.

데이터베이스의 내용이나 큐브의 증분 데이터 슬라이스를 바꾸려면 데이터베이스 임포트 MaxL 문을 대체 문법과 함께 사용합니다.

예를 들어, 큐브의 내용을 바꾸려면 다음 명령문을 사용합니다.

import database ASOsamp.Basic data
   from load_buffer with buffer_id 1
   override all data;

모든 증분 데이터 슬라이스의 내용을 새 슬라이스로 바꾸려면 다음 명령문을 사용합니다.

import database ASOsamp.Basic data
   from load_buffer with buffer_id 1
   override incremental data;

주:

대체 대체가 실패하면 Essbase는 계속해서 이전 데이터 세트를 제공합니다.

Smart View에서 제출 명령은 대체 문법과 함께 증분 데이터 로드 기능을 사용하는 것과 같습니다.

전송 작업을 수행하는 동안 잠금, 잠금 해제, 검색 및 잠금에 대한 새 요청은 전송 작업이 완료될 때까지 대기합니다.

참조: 데이터 임포트(집계 저장 영역)

증분 데이터 슬라이스 통계 보기

Essbase는 ASO(증분 합산 저장영역) 데이터 슬라이스의 크기 및 수와 증분 데이터 슬라이스의 질의 비용에 대한 통계를 제공합니다.

질의가 모든 증분 데이터 슬라이스에 액세스하는 데 걸리는 시간은 백분율(.01에서 1.0(포함) 사이)로 표시됩니다. 큐브에 기본 슬라이스와 다중 증분 데이터 슬라이스가 있는 경우 질의 통계가 0.66이면 질의 시간의 2/3이 증분 데이터 슬라이스를 질의하는 데 소비되고 1/3이 기본 데이터 슬라이스를 질의하는 데 소비되었음을 의미합니다. 증분 데이터 슬라이스 질의 비용이 너무 높으면 슬라이스를 병합할 수 있습니다.

슬라이스에 대한 정보를 보려면 query database MaxL 문에서 list aggregate_storage slice_info 문법을 사용합니다. 예제

query database ASOsamp.Basic list aggregate_storage slice_info;

질의 데이터베이스(집계 스토리지)

집계 스토리지 데이터 로드에서 멤버 재계약

리네게이드 멤버는 지정된 멤버 조합에 누락되거나 부적합한 멤버가 있는 경우에도 Essbase 합산 저장영역(ASO) 데이터 로드를 계속할 수 있습니다.

데이터 로드에서 누락되거나 부적합한 멤버가 발견되면 데이터 로드가 계속되고, 누락되거나 부적합한 멤버의 데이터 값이 차원에서 renegade 멤버로 태그 지정된 멤버 아래에 저장됩니다. 재협상 멤버가 차원에 설정되지 않은 경우 레코드가 거부됩니다. 재협상 멤버에 대한 데이터가 이미 있는 경우 동작은 데이터 로드 규칙 파일을 생성할 때 값을 추가하도록 선택했는지 또는 값을 겹쳐쓰도록 선택했는지에 따라 달라집니다.

각 차원에는 재협상 멤버로 지정된 멤버가 하나만 있을 수 있으며 재협상 멤버는 레벨 0 멤버여야 합니다.

다음 데이터 로드 파일에는 SC라는 멤버가 포함되어 있습니다.

Product  Measures   *Data*
NY,      Sales       100
SA,      Sales       200
SC,      Sales       300    

다음 개요에서는 SC라는 멤버가 없지만 SA라는 멤버는 Products 차원에서 renegade 멤버로 설정됩니다.

Products (+)
   NY (+)
   SA (+)
Measures (+)
   Sales (+)
   COGS (+)

데이터 로드 중 멤버 조합 SC 및 Sales(300)에 대한 데이터 값이 renegade 멤버 SA 및 Sales로 로드됩니다.

다음 데이터 로드 파일에는 SC 및 Sales에 대해 각각 다른 값을 가진 두 개의 레코드가 있습니다.

Product    Measures    *Data*
NY,        Sales        100
SA,        Sales        200
SC,        Sales        250
SC,        Sales        300 

SC 및 Sales(250 및 300)의 두 값은 모두 SA 및 Sales로 로드됩니다. 값을 추가하도록 선택한 경우 셀의 값은 550(250 + 300)입니다. 값을 덮어쓰도록 선택한 경우 셀의 값은 마지막으로 로드된 값(이 경우 300)입니다.

다음 예에서는 다음 데이터 로드 파일을 사용하는 renegade 멤버의 동작을 보여 줍니다.

Months    Transaction Type    Customer    Product    Price
Jan,      Sale,               Discard1,   Product1   300
Jan,      Sale,               Discard1,   Discard2   300
Jan,      Sale,               Customer1,  Discard2   300

Discard1 및 Discard2가 아웃라인에 존재하지 않습니다.

  • 예 1:

    Customer 차원에 Customer1 멤버 태그가 renegade로 지정되어 있고 다른 차원에 renegade 멤버가 없는 경우 첫 번째 레코드만 다음 교차로 로드됩니다.

    Jan    Sale    Customer1(Ren)    Product1    300

    Product 차원에 renegade 멤버가 없기 때문에 나머지 두 레코드는 거부됩니다. 거부된 레코드는 재협상된 멤버 로그 파일에 기록됩니다.

  • 예 2:

    제품 차원에 Product1 멤버 태그가 renegade로 지정되어 있고 다른 차원에 renegade 멤버가 없는 경우 마지막 레코드만 다음 교차로 로드됩니다.

    Jan    Sale    Customer1    Product1(Ren)    300

    Customer 차원에 renegade 멤버가 없기 때문에 나머지 두 레코드는 거부됩니다. 거부된 레코드는 재협상된 멤버 로그 파일에 기록됩니다.

  • 예 3:

    Customer 및 Product 차원에 모두 renegade 멤버(Customer1 및 Product1)가 있는 경우 모든 레코드가 다음 교차로로 로드됩니다.

    Jan    Sale    Customer1(Ren)    Product1(Ren)    900 (or 300 if overwrite is enabled)

예 4:

예제 4에서 Customer 차원에는 renegade로 태그가 지정된 RenMember1이 있고 Product 차원에는 renegade로 태그가 지정된 RenMember2가 있습니다. 다음 데이터 로드 파일을 사용하면 Customer 및 Product 차원 모두에 renegade 멤버가 있으므로 모든 레코드가 로드됩니다.

Customer1Product1은 재협상 멤버가 아닙니다. "Discard1""Discard2"는 개요에 존재하지 않습니다.

데이터 로드 파일은 다음과 같습니다.

Months  Transaction Type  Customer    Product   *Data*
Jan,     Sale,            Discard1,   Product1   300
Jan,     Sale,            Discard1,   Discard2   300
Jan,     Sale,            Customer1,  Discard2   300

폐기 멤버에 대한 데이터 로드 파일에 지정된 값은 대신 지정된 renegade 멤버에 자동으로 로드됩니다.

로드된 데이터:

Months  Measures   Customer          Product           Price
Jan     Sale       RenMember1(ren)   ProductR          300
Jan     Sale       RenMember1(ren)   RenMember2(ren)   300
Jan     Sale       CustomerR         RenMember2(ren)   300

renegade 멤버에 대한 로깅은 기본적으로 사용으로 설정되지 않습니다. 로깅을 사용으로 설정하려면 RENEGADELOG 구성 설정을 사용합니다. 이 설정은 TRUE로 설정된 경우 재게이드 멤버 교차로 로드된 멤버의 로깅을 사용으로 설정합니다.

주:

리네게이드 멤버는 계산 및 보고서 스크립트에서 참조할 수 있습니다. 테이블 형식 데이터 로드 또는 스프레드시트 업데이트 작업에서는 리네게이드 멤버가 지원되지 않습니다.

저장 영역 데이터 로드 집계에 대한 소스 데이터 차이

합산 저장영역(ASO) 큐브로 값을 로드하기 위해 소스 데이터의 레코드를 처리하는 동안 Essbase는 멤버에 공식이 없는 레벨 0 차원 교차에 대해서만 레코드를 처리합니다.

다음 예에서는 레벨 0 교차에 대한 레코드만 있는 데이터 소스를 보여 줍니다. 마지막 필드는 데이터 값을 포함하며 다른 필드는 각 차원의 레벨 0 멤버입니다.

Jan, Curr Year, Digital Cameras, CO, Original Price, 10784
Jan, Prev Year, Camcorders, CO, Original Price, 13573

Essbase는 상위 레벨 멤버를 지정하는 레코드를 무시하고 데이터 로드 종료 시 건너뛴 레코드 수를 표시합니다.

예를 들어, 중서부 멤버가 레벨 1 멤버이므로 다음 레코드를 건너뜁니다.

Jan, Curr Year, Digital Cameras, Mid West, Original Price, 121301

Essbase는 큐브에 값을 커밋하기 전에 내부적으로 레코드를 읽고 정렬하므로 데이터를 통한 정렬은 필요하지 않습니다.