Clear Data from Aggregate Storage Cubes
Essbase 합산 저장영역(ASO) 큐브에서 모든 데이터를 지우거나 지정된 영역에서 데이터를 지우고 다른 영역에 있는 데이터를 유지할 수 있습니다. 물리적 또는 논리적 지우기 작업을 수행할 수 있습니다.
데이터를 지우려면 데이터 로드와 동일한 애플리케이션 권한이 있어야 합니다(데이터베이스 업데이트 권한 이상).
Essbase 웹 인터페이스에서 데이터 지우기 작업을 사용하거나 CLI 지우기 명령을 사용하거나 지역의 명확한 데이터 문법과 함께 데이터베이스 변경 MaxL 문을 사용할 수 있습니다. 이 항목의 예는 MaxL을 사용하는 것입니다.
특정 영역에서 데이터 지우기
이 방법은 과거 데이터를 유지하면서 휘발성 데이터(예: 지난 달에 해당하는 데이터)를 삭제하려는 경우에 유용합니다.
ASO 영역에서 데이터를 지우는 방법에는 물리적 지우기 및 논리적 지우기가 포함됩니다.
-
물리적 지우기
아래 그림과 같이 지정된 지역의 입력 셀이 집계 저장영역 큐브에서 물리적으로 제거됩니다.
그림 37-2 데이터 영역 물리적으로 지우기

큐브에 여러 개의 데이터 슬라이스가 있는 경우 물리적 영역 지우기 작업은 자동으로 모든 데이터 슬라이스를 기본 데이터 슬라이스로 병합합니다. 지정된 영역에 대한 데이터가 지워지면 Essbase는 영역 지우기 작업이 수행되기 전에 기본 데이터 슬라이스에 있는 모든 집계 뷰를 구체화합니다.
물리적으로 데이터를 지우는 프로세스는 지우는 데이터 크기가 아니라 입력 데이터 크기에 비례하는 시간 내에 완료됩니다. 따라서 큰 데이터 슬라이스를 제거할 때만 이 방법을 사용할 수 있습니다.
데이터를 물리적으로 지우려면 alter database MaxL 문을 clear data in region 문법 및 physical 키워드와 함께 사용합니다.
alter database appname.dbname clear data in region 'MDX set expression' physical;시간을 절약하기 위해 쉼표로 구분된 MDX set expressions 목록을 사용하여 여러 물리적 영역에서 지울 수 있습니다.
-
논리적 지우기
아래 그림과 같이 지정된 영역에 있는 입력 셀이 음의 보상 값이 있는 새 데이터 슬라이스에 기록되므로, 지우려는 셀의 값이 0이 됩니다
그림 37-3 논리적으로 데이터 영역 지우기

논리적 영역 지우기 작업은 자동으로 데이터 슬라이스만 0 값으로 기본 데이터 슬라이스에 병합합니다. 큐브의 다른 데이터 슬라이스는 병합되지 않습니다. 지정된 영역에 대한 데이터가 지워지면 Essbase는 새 데이터 슬라이스에서만 집계 뷰를 구체화합니다.
논리적으로 데이터를 지우는 프로세스는 지우는 데이터 크기에 비례하는 시간이 지난 후에 완료됩니다. 보상 셀이 생성되므로 이 옵션은 큐브 크기를 늘립니다.
데이터를 논리적으로 지우려면 alter database MaxL 문을 clear data in region 문법과 함께 사용하되 physical 키워드는 사용하지 마십시오.
alter database appname.dbname clear data in region 'MDX set expression';논리적으로 지워진 영역에 대한 질의는 #MISSING 값 대신 0 값을 반환합니다. 빈 셀에 대해 #MISSING 값을 사용하는 공식을 업데이트해야 할 수 있습니다.
값이 0인 셀을 제거하려면 remove_zero_cells 키워드를 포함하여 merge 절과 함께 alter database MaxL 문을 사용합니다.
alter database appname.dbname merge all data remove_zero_cells;주:
두 번째 작업은 첫 번째 작업에서 생성된 보정 셀을 지우지 않고 새 보정 셀을 생성하지 않으므로 Oracle은 동일한 영역에서 두 번째 논리적 지우기 영역 작업을 수행하지 않는 것이 좋습니다.
지울 ASO 영역을 지정할 때 다음 지침을 따르십시오.
-
영역은 대칭이어야 합니다. 예제
-
{(Jan, Budget)}는 1월에 대한 모든 예산 데이터를 지우는 적합한 대칭 영역입니다. -
{(Jan, Forecast1),(Feb, Forecast2)}는 두 개의 비대칭 영역(Jan, Forecast1 및 Feb, Forecast2)으로 구성되어 있으므로 부적합한 영역입니다.
-
-
영역 사양의 차원에 있는 개별 멤버는 저장된 멤버여야 합니다.
-
영역의 멤버는 다음과 같을 수 없습니다.
-
동적 멤버(암시적 또는 명시적 MDX 공식을 사용하는 멤버)
-
속성 차원에서
속성으로 셀을 지워야 하는 경우 속성 MDX 함수를 사용합니다.
-
-
영역의 멤버는 저장된 계층의 상위 레벨 멤버일 수 있습니다. 이렇게 하면 여러 레벨 0 멤버를 편리하게 지정할 수 있습니다.
예를 들어, 1월, 2월 및 3월(Qrt1의 레벨 0 하위)을 지정하는 것과 동일한 Qrt1을 지정할 수 있습니다.

다음 두 MaxL 문은 동일한 결과를 생성합니다.
alter database appname.dbname clear data in region '{Qtr1}';alter database appname.dbname clear data in region '{Jan, Feb, Mar}'; -
물리적 지우기의 경우에만 영역의 멤버가 대체 계층의 상위 레벨 멤버일 수 있습니다.
예를 들어, 평면 패널, HDTV, 디지털 레코더 및 노트북(하이엔드 상품의 공유 레벨 0 하위 항목)을 지정하는 것과 동일한 하이엔드 상품을 지정할 수 있습니다.

다음 두 MaxL 문은 동일한 결과를 생성합니다.
alter database appname.dbname clear data in region '{High End Merchandise}';alter database appname.dbname clear data in region '{[Flat Panel],[HDTV],[Digital Recorders],[Notebooks]}';데이터를 논리적으로 지울 때 대체 계층에서 멤버를 지정하려면 하위 멤버 MDX 함수를 사용합니다.
주:
영역에 대체 계층의 상위 레벨 멤버가 포함된 경우 성능이 저하될 수 있습니다. 이 경우 레벨 0 멤버만 사용하는 것이 좋습니다.
-
MDX 집합 표현식은 작은 따옴표로 묶어야 합니다.
예를 들어 Forecast1 및 Forecast2 시나리오에 대한 모든 1월 데이터를 지우려면 다음 명령문을 사용합니다.
alter database ASOSamp.Basic clear data in region 'CrossJoin({Jan},{Forecast1, Forecast2})';영역 지우기 작업 중에는 큐브를 업데이트하는 작업(예: 데이터 로드, 데이터 슬라이스 병합 또는 다른 영역에서 데이터 지우기)을 수행하거나 데이터를 익스포트할 수 없습니다. 큐브를 질의할 수 있지만 질의 결과는 영역 지우기 작업 전에 데이터 집합을 기반으로 합니다.
영역의 지우기 데이터 절은 전체 큐브에서 데이터를 지울 수 없습니다.
모든 데이터 지우기
집계 저장영역 큐브에서 모든 데이터를 지우는 것은 블록 저장영역 큐브와 동일합니다. 전체 큐브를 지우려면 reset 키워드와 함께 alter database MaxL 문을 사용합니다.
alter database appname.dbname reset;