Developer: Business Intelligence

Oracle Business Intelligence Discoverer와 OLAP 옵션의 활용
저자 - Mark Rittman

OracleBI Discoverer 리포팅에 OLAP Option을 추가함으로써 기대할 수 있는 효과와 OLAP 리포팅 기능을 사용자에게 제공하기 위한 방법을 배워 보십시오.

아티클 관련 다운로드
Oracle Database 10g Release 1
Oracle Database 10g 10.1.0.4 Patchset
Analytic Workspace Manager 10g (10.1.0.4.0 이상)
Global Sample Schema (10.1.0.4.0 이상)
Oracle Business Intelligence 10g (10.1.2 이상)
Oracle Spreadsheet Add-in (10.1.2 이상)

Oracle Business Intelligence Discoverer(OracleBI Discoverer)는 오라클 및 써드 파티 데이터베이스에 저장된 데이터의 쿼리 및 분석 기능을 사용자에게 제공하기 위한 비즈니스 인텔리전스 제품군입니다. Oracle Business Intelligence 10g에 기본 포함된 OracleBI Discoverer는 Oracle Database 10g Enterprise Edition의 OLAP Option을 보완하는 역할을 담당합니다. OLAP Option은 오라클 데이터베이스의 분석 기능을 확장하기 위한 논리적 다차원 모델과 전문화된 다차원 데이터타입을 지원합니다.

본 문서는 OracleBI Discoverer 리포팅에 OLAP Option을 추가함으로써 기대할 수 있는 효과, Analytic Workspace Manager 10g 툴, 그리고 Oracle BI Discoverer를 이용하여 사용자들에게 OLAP 리포팅 기능을 제공하는 방법에 대해 설명하고 있습니다.

조직의 다차원 뷰

기업의 비즈니스 수행 성과를 분석하면서 고려해야 할 사항에는 여러 가지가 있습니다. 한 예로, 한 지역의 매출 이익을 책임지는 세일즈 매니저는 세일즈 팀의 성과, 판매된 제품의 종류, 고객, 계절별 판매 현황 등의 정보에 깊은 관심을 가지고 있을 것입니다. 또 학생들의 평균 성적을 측정, 분석하는 교직원들을 예로 들어 볼 수 있습니다. 평균 성적에 영향을 미치는 요소로는 학생의 성장 배경, 학과목, 담당 교사, 학습 주제 등이 있습니다. 또 1년 동안에 걸쳐 측정한 평균 성적의 변화가 관심사가 될 수도 있을 것입니다.

이러한 상황들은 여러 가지 "차원"에서 분석이 가능합니다. 교직원들의 경우, "문제(problem)"는 평균 성적을 올리는 것이고, 문제의 차원(dimension)은 담당 교사, 학생, 학과목 등이 됩니다. 세일즈 매니저의 경우 문제는 담당 지역의 영업 성과를 개선하는 것이며 문제의 차원에는 세일즈 담당자, 지역, 제품 유형, 판매 채널, 시간 등이 포함됩니다. 각각의 상황에서, 담당자들은 다차원으로 구성된 문제를 해결하려 시도하면서 문제의 여러 가지 측면을 고려하고 그 해답을 구합니다.

figure 1
그림 1: 문제의 다차원적 성격

OracleBI Discoverer for OLAP과 Oracle Database 10g Enterprise Edition의 OLAP Option은 오라클 데이터베이스의 다차원 모델을 생성하고 OracleBI Discoverer 제품군을 활용하여 모델을 쿼리, 분석하는 기능을 지원합니다. 또 Microsoft Excel과 오라클의 강력한 표준 Excel 기반 분석 기능을 조합하여 다차원 모델에 접근할 수도 있습니다.

논리적 차원 모델

OracleBI Discoverer의 사용자라면 이미 엔드 유저 레이어(end user layer), 비즈니스 영역(business area), 폴더, 아이템, 조인(join), 계위(hierarchy), 아이템 클래스(item class)와 같은 개념에 익숙할 것입니다. 관리자는 OracleBI Discoverer를 이용하여 데이터베이스 스키마의 테이블과 컬럼에 매핑되는 비즈니스 영역과 폴더를 정의할 수 있습니다. 또 폴더 간의 조인 경로(join path)를 정의하고 조인된 테이블로부터 아이템을 가져오는 컴플렉스 폴더(complex folder)를 생성하는 것도 가능합니다. 엔드 유저 레이어(end user layer)와 비즈니스 영역(business area)은 관계형 데이터베이스의 복잡성을 제거하고 사용자들에게 친숙한 비즈니스 용어를 이용하여 데이터 아이템을 제시할 수 있게 합니다.

OracleBI Discoverer는 오라클 데이터베이스에 생성된 다차원 모델을 이용하여 관리자와 사용자에게 OLAP 데이터를 제시합니다. 이 다차원 모델은 사용자들이 비즈니스를 이해하는 관점을 반영하고 있습니다.

다시 세일즈 매니저의 사례로 돌아가 보기로 합시다. 세일즈 매니저가 필요로 하는 수치와 트렌드 자료는 제품, 고객, 채널 간의 다양한 관계를 기반으로 생성됩니다. 따라서 세일즈 매니저에게는 이러한 팩터(factor)들이 서로 어떻게 영향을 미치는지 이해하기 위한 다차원적인 사고가 요구되며, OracleBI Discoverer는 이러한 다차원적 사고 방식을 그대로 반영한 형태로 데이터를 사용자들에게 제시합니다.

논리적 다차원 모델에서, 데이터는 하나 또는 그 이상의 디멘션(dimension; 제품, 고객, 지역, 시간 등)과 측도(measure; 판매 수량, 평균 가격 등)로 구성됩니다. 디멘션은 하나 또는 그 이상의 멤버(member; 개별 고객, 제품 분류, 세일즈 지역 등)를 가질 수 있으며 각 멤버는 하나 또는 그 이상의 계위(hierarchy)에 포함됩니다. 계위는 최하위 레벨의 데이터의 롤업 방법, 레벨(제품, 제품 그룹, 제품 분류)의 포함 여부 등을 정의하며 속성(attribute)을 이용하여 디멘션 멤버의 특징(크기, 색상, 제품 코드 등)을 기술할 수 있습니다. 논리적 모델(logical model)은 다수의 디멘션, 큐브, 측도, 계위, 레벨, 속성 등으로 구성되며 이를 위해 서로 다른 조직, 부서의 데이터가 조합될 수도 있습니다.

figure 2
그림 2: OracleBI Discoverer를 이용한 OLAP 논리적 모델의 조회

데이터를 다차원적으로 이해한 사용자는 비즈니스적으로 의미를 갖는 용어들을 사용한 다차원 쿼리를 작성할 수 있습니다. 그 예가 아래와 같습니다.

"3개월 단위로 1년 간 산출한 판매 순위 최상위 20개 제품들이 매출에서 차지하는 비중과 현재 기간의 통계를 전세계의 각 지역별로 비교한 결과는 무엇인가?"

또는

"최상위 10개 고객사는 어디인가?"

사용자는 이러한 쿼리를 작성하면서 데이터베이스에 데이터가 어떤 형태로 저장되어 있는지 고려할 필요가 없습니다.

오라클의 OLAP 다차원 엔진

Oracle Database 10g의 OLAP Option은 논리적 다차원 모델과 함께 데이터를 관계형 또는 다차원 데이터타입으로 저장할 수 있는 기능을 제공합니다. OLAP 데이터를 관계형으로 저장하면서, OLAP Option은 관계형 테이블에 대한 다차원 메타데이터 레이어를 관리하고 데이터 액세스를 위한 다차원 Java OLAP API를 제공합니다. 다차원으로 저장된 OLAP 데이터는 애널리틱 워크스페이스(analytic workspace)의 다차원 데이터타입으로 저장됩니다. 이 기술은 Oracle Express Server 제품군에서 제공되던 것으로, 현재는 Oracle RDBMS 내에 구현되었으며 이전과 동일한 Java OLAP API 또는 SQL을 통해 접근됩니다.

OLAP Option과 함께 제공되는 다차원 엔진은 OLAP 분석의 실행 측면에서 관계형 엔진에 비해 다양한 이점을 제공합니다. 다차원 데이터베이스는 임의적 분석 작업에 매우 적합합니다. 사용자가 분석할 수 있는 데이터에 제한은 없으며 어느 시점에서든 임의의 계산 작업을 정의할 수 있습니다. 다차원 데이터타입은 데이터를 특수한 어레이 기반 데이터 구조에 저장합니다. 이 데이터 구조는 임의적 쿼리(ad hoc query) 환경에서 성능상의 이점을 제공합니다. 또 측도(measure)가 디멘션에 미리 조인(join) 처리되어 있으므로 쿼리에 조건을 적용하는 프로세스가 매우 효율적으로 실행됩니다. OLAP Option의 다차원 엔진은 대량의 산재한(sparse) 데이터 셋을 위한 최적화 기능을 탑재하고 있으며 베이스 레벨 데이터와 저장된 집산(aggregate) 데이터 간의 편리한 네비게이션 환경을 제공합니다.

또, 다차원 엔진은 디멘션과 시계열 계산(time-series calculation) 내에서의 할당(allocation), 예측(forecast), 방정식 체계(systems of equation) 등 전용 OLAP 서버에서 일반적으로 제공되는 복잡한 계산 기능을 제공하고 있습니다. 여러분이 OLAP Option의 활용을 고려하고 있다면, 그리고 다양한 분석/통계 계산 기법을 활용해서 빠르고 유연한 리포팅 기능을 제공하고 싶다면, 먼저 OLAP 데이터를 관계형 데이터타입이 아닌 별도의 다차원 애널리틱 워크스페이스에 저장해야 할 것입니다. 그렇다면 이 기능들을 어떻게 활용할 수 있을까요?

Analytic Workspace Manager 10g

어쩌면 OracleBI Discoverer 관리자에게 이러한 애널리틱 워크스페이스, 다차원 데이터타입에 대한 설명들이 무척 생소하게 들릴 수도 있을 것입니다. 오라클은 쉽고 간단한 방법으로 다차원 데이터를 생성, 관리할 수 있게 하는 두 가지 툴을 제공하고 있습니다. 오라클의 포괄적인 ETL 툴인 Oracle Warehouse Builder는 데이터를 다차원 애널리틱 워크스페이스에 로드하기 위한 기능을 제공하며, 일반적으로 데이터 웨어하우스 개발자와 DBA들에 의해 활용됩니다. 하지만 OracleBI Discoverer 시스템의 관리자들은 Oracle Warehouse Builder가 제공하는 모든 기능들을 필요로 하지 않을 수도 있습니다. 데이터는 이미 추출, 정제가 완료된 상태이므로 관리자들은 OracleBI Discoverer 메타데이터와 워크북을 관리하는 데에만 관심을 두고 있기 때문입니다. OTN으로부터 무료로 다운로드할 수 있는 Analytic Workspace Manager 10g는 OracleBI Discoverer 관리자와 각 부서의 파워 유저들이 OLAP Option과 애널리틱 워크스페이스를 이용하여 OLAP 데이터를 저장하고 관리할 수 있도록 지원합니다.

Analytic Workspace Manager 10g를 이용하여 OLAP 데이터의 논리적 다차원 모델을 구현하고 데이터의 조직화를 위한 디멘션, 레벨, 계위, 속성 등을 정의할 수 있습니다.

figure 3
그림 3: Analytic Workspace Manager 10g 모델 뷰

논리적 모델의 구현이 완료되었다면, Analytic Workspace Manager 10g를 이용하여 데이터소스를 논리적 모델로 매핑하고 애널리틱 워크스페이스를 관리할 수 있습니다. Analytic Workspace Manager는 다차원 OLAP 큐브의 생성 과정을 관리하는 직관적이고 단순한 인터페이스를 제공하며, OracleBI Discoverer for OLAP에서 바로 사용 가능한 OLAP 큐브와 디멘션을 생성해 줍니다.

지금부터 OracleBI Discoverer for OLAP에서 다차원 OLAP 큐브를 생성하는 과정을 설명해 보겠습니다. 이 예제에서 사용되는 GLOBAL Sample Schema는 OTN에서 다운로드 할 수 있습니다.

애널리틱 워크스페이스의 구현

Analytic Workspace Manager 10g의 사용을 시작하기 전에 Oracle Database 10g Enterprise Edition에 OLAP Option과 Patch Set 2(10.1.0.4)가 각각 설치, 적용되어 있는지 확인합니다. 그런 다음 애널리틱 워크스페이스의 데이터 로드에 적절한 값으로 데이터베이스 매개변수를 설정합니다.

PARALLEL_MAX_SERVERS 	= number of processors, less one
PGA_AGGREGATE_TARGET 	= 40% of available memory
UTL_FILE_DIR 		= all directories that OLAP will need to write to
UNDO_MANAGEMENT 		= AUTO
UNDO_TABLESPACE 		= as defined earlier
              

이제 데이터를 저장할 테이블스페이스와 데이터파일을 생성합니다.

CREATE TABLESPACE "GLOBAL"
    DATAFILE 'GLOBAL.DBF' SIZE 90M AUTOEXTEND ON NEXT 5M;

CREATE TEMPORARY TABLESPACE "GLOBAL_TEMP"
    TEMPFILE 'GLOBAL_TEMP.DBF' SIZE 90M AUTOEXTEND ON NEXT 5M
    UNIFORM SIZE 256K;
              

그런 다음 소스 데이터와 애널리틱 워크스페이스를 저장할 스키마를 생성합니다.


CREATE USER "GLOBAL"
    IDENTIFIED BY "GLOBAL" DEFAULT TABLESPACE "GLOBAL"
       TEMPORARY TABLESPACE "GLOBAL_TEMP"
    QUOTA UNLIMITED ON "GLOBAL"
    QUOTA UNLIMITED ON "GLOBAL_TEMP";

GRANT "OLAP_USER" TO "GLOBAL";
              

다음으로, Import 유틸리티를 이용하여 GLOBAL 스키마에 샘플 소스 데이터를 가져 옵니다. 그 예가 아래와 같습니다.


IMP GLOBAL/GLOBAL
Import file: EXPDAT.DMP > GLOBAL_TABLES.DMP
Enter insert buffer size (minimum is 8192) 30720> 30720
List contents of import file only (yes/no): no > no
Ignore create error due to object existence (yes/no): no > no
Import grants (yes/no): yes > yes
Import table data (yes/no): yes > yes
Import entire export file (yes/no): no > yes
              

Analytic Workspace Manager 10g를 시작하고, 데이터베이스를 등록한 후 GLOBAL 사용자로 로그온 합니다. GLOBAL 스키마를 마우스 오른쪽 버튼으로 클릭하고 Create New Analytic Workspace를 선택한 다음 그 이름을 GLOBAL로 설정합니다.

figure 4
그림 4: 애널리틱 워크스페이스의 생성

첫 번째 디멘션의 생성. 이제 첫 번째 디멘션, CUSTOMER를 생성합니다. GLOBAL 애널리틱 워크스페이스를 클릭하고, 디멘션 노드를 마우스 오른쪽 버튼으로 클릭한 뒤 Create Dimension을 선택합니다.

CUSTOMER 디멘션은 SHIPMENTS와 MARKET SEGMENT의 두 가지 계위(hierarchy)를 갖습니다. 먼저 두 계위가 사용하는 모든 레벨을 정의해 주고 난 다음에 계위를 구조화하는 작업을 진행해야 합니다.

CUSTOMER 디멘션을 확장하고, 레벨에서 마우스 오른쪽 버튼을 클릭한 다음 아래 레벨을 생성합니다.

  • TOTAL_CUSTOMER
  • TOTAL_MARKET
  • REGION
  • WAREHOUSE
  • SHIP TO
  • MARKET_SEGMENT
  • ACCOUNT

계위 노드를 마우스 오른쪽 버튼으로 클릭하고 SHIPMENTS 계위를 생성합니다. 이 계위에 (위에서 아래의 순서대로) TOTAL CUSTOMER, REGION, WAREHOUSE와 SHIP TO 레벨을 포함시킵니다.

figure 5
그림 5: SHIPMENTS 계위의 생성

다시 계위 노드를 마우스 오른쪽 버튼으로 클릭하고 MARKET SEGMENT 계위를 생성한 뒤 (위에서 아래의 순서대로) TOTAL_MARKET, MARKET_SEGMENT, ACCOUNT, SHIP TO 레벨을 포함시킵니다. 작업을 완료한 후의 화면이 아래와 같습니다.

figure 6
그림 6: 생성된 계위의 조회

이 디멘션을 위한 데이터는 GLOBAL 스키마의 CUSTOMER_DIM 테이블에 저장됩니다. 이 테이블은 애널리틱 워크스페이스의 데이터를 구성하는 여러 개의 디멘션 테이블들 중 하나입니다. Model View의 Mappings 노드를 클릭하고 GLOBAL 스키마에 대한 드릴다운을 수행합니다. CUSTOMER_DIM 테이블을 Mapping 창으로 끌어온 뒤, Type of Dimension Table(s) 드롭다운 리스트에서 Star Schema를 선택합니다.

이 디멘션의 소스 데이터는 스타 스키마의 테이블에 저장되어 있으므로, 매핑 툴바의 Auto Map Star Schema 버튼을 이용하여 소스 필드를 논리적 디멘션 모델로 자동 매핑하는 것이 가능합니다. 데이터가 매핑된 후의 화면이 아래와 같습니다.

figure 7
그림 7: 디멘션을 소스 데이터로 매핑

템플릿 가져 오기. 다음으로 PRODUCT 디멘션을 생성할 차례입니다. 이 작업은 수동으로 실행할 필요가 없습니다. 그 대신 GLOBAL Sample Schema와 함께 제공되는 템플릿 파일을 이용하여 정의를 가져올 수 있습니다. Analytic Workspace Manager 10g를 이용하면 디멘션과 큐브의 정의를 XML 템플릿 형태로 저장할 수 있습니다. 예를 들어, 생성된 정의를 버전 컨트롤 시스템에 저장하거나, 정의를 이용하여 논리적 모델을 별도의 위치에 적용하는 것이 가능합니다.

정의를 가져오려면 디멘션 노드를 마우스 오른쪽 버튼으로 클릭하고 "Create dimension from template"를 선택합니다. GLOBAL Sample Schema의 압축을 푼 디렉토리로 이동한 후 Product Other.XML 파일을 선택합니다.

이 파일은 PRODUCT 디멘션의 정의를 포함하고 있습니다. 정의를 가져 온 다음, 디멘션 항목을 엽니다. 정의는 하나의 계위, 4개의 레벨, 그리고 ITEM 레벨에 속하는 3가의 추가적인 속성을 포함하고 있음을 확인할 수 있습니다.

매핑 창에서 소스 데이터가 이미 PRODUCT 디멘션에 매핑되었음에 주목하시기 바랍니다. 예제의 소스 데이터는 여러 개의 정규화된 테이블에 저장되어 있으며 Type of Dimension Table(s) 드롭다운 리스트는 Other로 설정되어 있습니다. Analytic Workspace Manager 10g의 소스 데이터는 더 이상 스타 스키마에 저장되어 있을 필요가 없습니다. 스노우플레이크 스키마 또는 정규화된 테이블이라 할지라도 데이터소스로 쉽게 활용이 가능합니다.

figure 8
그림 8: 정규화된 테이블로부터의 데이터 매핑

논리적 모델의 디멘션 정의를 완료하기 위해, Time Star.XML, Channel Star.XML 템플릿 파일의 임포트 작업을 수행하여 TIME, CHANNEL 디멘션의 정의를 가져옵니다.

큐브의 설계. 다음 단계에서는 큐브를 설계합니다. 큐브는 측도(measure)와 디멘션을 연계하기 위한 논리적 디멘션 모델의 한 구성 요소입니다. 큐브는 소스 데이터로부터 직접 로드된 측도와 계산된 측도(calculated measure)의 컨테이너로서 기능하며, 큐브의 각 측도는 동일한 디멘션 셋을 공유합니다. 하나의 논리적 모델은 여러 개의 큐브를 가질 수 있습니다. 하지만 큐브의 모든 디멘션은 동일한 애널리틱 워크스페이스에 저장되어 있어야 합니다.

예제에서는 UNITS_SOLD, SALES의 측도를 포함하는 하나의 큐브를 생성해 보기로 하겠습니다. 이 큐브를 생성하기 위해 Cubes 노드를 클릭하고 마우스 오른쪽 버튼을 다시 클릭한 뒤 Create Cube를 선택합니다. 큐브 네임을 UNITS_CUBE로 설정하고 4개의 디멘션을 모두 선택합니다.

figure 9
그림 9: UNITS 큐브의 정의

Implementation Details 탭을 이용하면 Analytic Workspace Manager 10g에서 큐브 안에 디멘션을 정렬하는 순서, 그리고 압축, 파티셔닝 등의 기능을 이용한 데이터 로드/취합 작업의 성능 개선 여부를 결정할 수 있습니다.

큐브 안에서 디멘션이 정렬되는 순서는 중요합니다. 이는 측도의 값이 디스크 상에서 저장되는 방식과 관계가 있습니다. 애널리틱 워크스페이스의 측도는 순차화된 데이터 스트림의 형태로 저장되며, "가장 빠르게 변화하는(fastest varying)" 디멘션의 값들은 상호 밀집된 형태로 구현되는 반면 "가장 느리게 변화하는(slowest varying)" 디멘션의 값은 넓게 퍼진 형태로 저장됩니다. 가장 빠르게 변화하는 디멘션은 가장 많은 수의 디멘션 멤버들을 포함하고 있으며, 따라서 큐브에서 최우선의 정렬 순위를 가져야 합니다. 나머지 디멘션들은 그 크기 순서대로 정렬되며 따라서 가장 느리게 변화하는 디멘션은 가장 마지막 순위를 갖습니다.

또 Implementation Details 탭을 통해 디멘션을 "sparse" 또는 "dense"로 지정할 수 있습니다. 희박성(sparsity)이란 셀이 NA, NULL 또는 값을 포함하고 있는 수준, 또 정의된 UNITS_CUBE가 PRODUCT, CHANNEL, CUSTOMER 디멘션에 분포하는 수준을 의미합니다. (다시 말해 모든 제품이 모든 고객, 모든 채널에 판매되는 것은 아닐 것입니다.) 두 개 혹은 그 이상의 디멘션을 "sparse"로 지정한 경우 Analytic Workspace Manager 10g는 이 논리적 디멘션들을 별도의 디멘션으로 취급하는 대신 하나의 컴포지트 디멘션으로 구현합니다. 이러한 방식으로 데이터를 저장함으로써 애널리틱 워크스페이스에서 사용되는 디스크 공간을 절약하고 사용자 쿼리에 대한 응답 시간을 개선할 수 있습니다. 컴포지트에 대한 자세한 설명은 Oracle OLAP DML Reference 10g Release 1 (10.1.0.3) 문서를 참고하시기 바랍니다.

큐브가 극도로 "sparse"하다고 판단한 경우에는 Compression 박스를 클릭하여 큐브를 압축할 수 있습니다. "압축된 컴포지트(compressed composite)"라 불리는 이 기능은 Oracle Database 10g에서 처음 소개되었습니다. 압축된 컴포지트는 오라클이 특허를 보유한 알고리즘을 사용하여 측도와 컴포지트에 존재하는 중복 데이터들을 제거합니다. 따라서 측도, 컴포지트, 컴포지트 인덱스의 크기가 최소화되고 큐브의 집산(aggregation) 작업에 소요되는 시간을 극적으로 단축할 수 있습니다. 이 기능은 처음 발표되었을 때 압축된 컴포지트의 활용 및 집산 작업에 관련한 몇 가지 제약 사항을 갖고 있었습니다. 하지만 Oracle Database 10g Release 2가 발표되면서 기능적 제약이 완화될 예정입니다. 어떤 버전을 사용하든, 큐브가 극도로 "sparse"한 분포를 갖는 경우 이 옵션을 이용하여 눈에 띄는 성능 개선 효과를 확인할 수 있을 것입니다. 압축된 컴포지트에 대한 자세한 정보는 Analytic Workspace Manager 10g 온라인 도움말에서 참고하실 수 있습니다.

예제에서는 큐브가 중간 수준의 희박성을 가지므로 이 옵션을 체크하지 말아야 합니다.

Create Cube 대화 상자의 다른 두 가지 탭은 측도의 집산(aggregation) 작업을 수행하는 방법, 그리고 요약(summary)을 어느 수준까지 사전 계산해 둘 것인지 설정하는 용도로 사용됩니다. 앞에서 설명한 것처럼 애널리틱 워크스페이스는 (관계형 OLAP과 달리) 측도 내에 요약을 직접 저장하고 집산 네비게이션(aggregate navigation)을 자동 수행합니다. 사용자는 이 두 가지 탭을 이용하여 집산 작업의 수행 방식을 결정할 수 있습니다.

Rules 탭에서 각 논리적 디멘션에 대해 디폴트 SUM 집산 작업 또는 "weighted first, weighted average, nonadditive" 등 집산 작업에서 사용할 수 있는 옵션을 선택할 수 있습니다.

figure 10
그림 10: 집산 규칙의 설정

예제의 큐브에서는 각 디멘션별로 간단한 SUM 집산 작업만이 수행되므로 디폴트 설정을 그대로 사용해야 합니다.

Summarize To 탭에서는 각 디멘션의 데이터가 사전 요약(presummarize)되는 레벨을 설정할 수 있습니다. 디폴트 설정에서, Analytic Workspace Manager 10g는 각 디멘션에 존재하는 모든 레벨을 사전 선택합니다. 이러한 방법은 일반적인 상황에서 쿼리 응답 시간과 큐의 준비 시간 사이에 적절한 균형을 가능하게 합니다.

정의된 UNITS 큐브를 모델 뷰 내에서 확장하고 Measures 노드를 마우스 오른쪽 버튼으로 클릭합니다. Create Measure를 선택하고 이름을 UNITS로 설정합니다. 동일한 작업을 반복하고 SALES라는 이름의 새로운 측도를 생성합니다. 앞에서 큐브에 대해 정의한 집산 설정을 무시하도록 설정하는 것이 가능하지만, 여기에서는 디폴트 값을 그대로 승인하고 부모 큐브의 설정을 그대로 상속하도록 합니다.

UNITS, SALES 측도에 저장되는 데이터는 GLOBAL 스키마의 테이블에도 저장됩니다. Mappings 노드를 클릭하고, GLOBAL.UNITS_HISTORY_FACT 테이블을 끌어와 UNITS 큐브의 옆의 매핑 창에 놓습니다. UNITS 팩트 테이블은 스타 스키마의 일부분이므로, Auto Map Star Schema 버튼을 클릭하여 팩트 소스 컬럼을 큐브에 매핑합니다.

figure 11
그림 11: 소스 데이터의 UNITS 큐브로의 매핑

여기서 팩트 테이블 컬럼을 UNITS 큐브에 자동으로 매핑하는 대신, Oracle Warehouse Builder에서 사용되는 방법과 유사한 테크닉을 활용하여 각각의 소스 필드를 관련된 측도 또는 디멘션 레벨에 수작업으로 매핑할 수도 있음을 참고하시기 바랍니다.

이제, 소스 데이터의 테이블로부터 가져온 UNITS, SALES 측도와 마찬가지 방법으로 전년 동기 대비 매출 증가/감소분을 저장하는 계산된 측도(calculated measure)를 생성해 보기로 합니다. UNITS 큐브의 모델 뷰에서 Calculated Measures 노드를 마우스 오른쪽 버튼으로 클릭하고 계산된 측도의 이름을 PCT_CHANGE_SINCE_LAST_YEAR로 설정한 뒤, Prior/Future Comparison 폴더의 "Percent Difference from Prior Period" Calculation Type을 선택합니다.

figure 12
그림 12: 계산된 측도의 생성

마법사의 다음 페이지에서 Percent Difference의 계산을 위한 측도로 SALES를 선택하고, Time Hierarchy로 CALENDAR YEAR를, Data Range로 YEAR AGO를 선택합니다.

figure 13
그림 13: 시간 단위 계산의 정의

Finish를 클릭합니다. 애널리틱 워크스페이스는 이러한 "시간 단위(time series)" 계산 작업이 용이하다는 매우 중요한 이점을 제공합니다. Analytic Workspace Manager 10g를 이용하면 애널리틱 워크스페이스의 프로그래밍을 위해 사용되는 OLAP DML을 전혀 모르는 상태에서도 이러한 계산 작업을 쉽게 생성할 수 있습니다.

큐브의 로드. 이것으로 OLAP 디멘션, 큐브, 측도를 구현하고 소스 데이터를 설정하는 작업이 완료되었습니다. 이제 큐브를 로드할 수 있습니다. GLOBAL 애널리틱 워크스페이스를 마우스 오른쪽 버튼으로 클릭하고 Maintain Analytic Workspace GLOBAL을 선택합니다. 애널리틱 워크스페이스의 모든 오브젝트들을 하이라이트 처리합니다.

figure 14
그림 14: 구현 대사 큐브 및 디멘션의 선택

다음 페이지에서는 디폴트 옵션을 선택하고 Next를 클릭한 뒤, Run Maintenance Task Immediately In This Session 체크박스가 선택되어 있는지 확인합니다. Finish를 클릭하면 Analytic Workspace Manager 10g가 소스 데이터를 오브젝트에 로드합니다.

로드 작업이 완료되면, Analytic Workspace Manager 10g는 각 작업 단계의 진행 상황 및 실행 결과를 보고합니다. 리포트의 마지막 부분에서 로드 프로세스에서 발생한 에러들을 점검할 수 있습니다.

figure 15
그림 15: 큐브 구현 작업의 진행 상황 모니터링

이제 Analytic Workspace Manager 10g를 이용하여 측도와 디멘션의 데이터에 대한 미리 보기를 수행할 수 있습니다. CUSTOMER 디멘션을 마우스 오른쪽 버튼으로 클릭하고 View Data Customer를 선택합니다. 그런 다음 이 논리적 디멘션의 디멘션 멤버들을 확인하거나 계위와 레벨의 위 아래를 이동할 수 있습니다.

figure 16
그림 16: CUSTOMER 디멘션의 조회

동일한 작업을 UNITS 측도에 대해 반복합니다. 디멘션 계위의 각 레벨에 값이 존재함을 참고하시기 바랍니다. 이 중 일부는 앞에서 설정한 대로 미리 계산되어 있으며, 나머지는 다이내믹한 방식으로 계산됩니다.

figure 17
그림 17: UNITS 큐브의 조회

OracleBI Discoverer for OLAP에서 큐브 활성화하기. OracleBI Discoverer for OLAP의 새로운 버전은 엔드 유저 레이어에 메타데이터를 저장하는 대신 워크북 정의 및 권한을 Discoverer Catalog에 저장합니다. 이때 Oracle Application Server Control을 이용하여 GLOBAL 사용자가 Discoverer Catalog에 접근할 수 있도록 설정해 주어야 합니다.

figure 18
그림 18: Discoverer 카탈로그에서 스키마를 활성화

Application Server Control에 로그인하여 Discoverer Catalog로 이동한 뒤 GLOBAL 스키마를 활성화합니다.

OracleBI Discoverer for OLAP을 이용한 큐브의 분석

이제 OracleBI Discoverer for OLAP을 이용하여 OLAP 큐브를 분석할 수 있습니다. 웹 브라우저에서 OracleBI Discoverer Plus를 시작하고 드롭다운 메뉴에서 OracleBI Discoverer를 선택한 다음 페이지가 리프레시 될 때까지 기다렸다가 연결 정보를 입력합니다.

figure 19
그림 19: OracleBI Discoverer for OLAP으로의 연결

Workbook Wizard를 사용하여 새로운 크로스탭과 그래프를 생성하고 워크시트에서 사용할 측도를 선택합니다. 디멘션들이 자동으로 선택 사항에 포함됨을 참고하십시오. 나중에 각 논리적 디멘션에서 표시할 레벨과 속성을 선택할 수 있습니다.

figure 20
그림 20: OracleBI Discoverer Workbook 마법사

워크시트에 포함시킬 그래프를 선택한 뒤 Workbook Wizard의 후속 단계를 실행하면서 워크시트에 포함시킬 각 디멘션 내의 계위와 디멘션 멤버들을 설정할 수 있습니다.

수동으로 디멘션 멤버들을 선택한 다음에는, Conditions 탭을 이용하여 디멘션 멤버를 선택 목록에서 추가/제거하기 위한 조건을 설정할 수 있습니다. 예를 들어, 먼저 WAREHOUSE 레벨 디멘션 멤버들을 모두 선택 목록에 추가합니다.

figure 21
그림 21: 디멘션 멤버의 선택

그런 다음, Conditions 탭을 이용하여 가장 매출이 많은 5개의 warehouse만을 남겨 둡니다. 마법사를 이용하면 단계별로 쿼리를 구현할 수 있으며 가장 일반적으로 사용되는 조건들이 사전 정의된 형태로 제공됩니다. 따라서 복잡한 SQL 구문 또는 OLAP 쿼리 언어의 사용법을 따로 익힐 필요가 없습니다.

figure 22
그림 22: 디멘션 선택 목록에 조건을 추가

디멘션 멤버의 선택 방법을 모두 설정했다면, 마법사가 나머지 디멘션 멤버들을 자동으로 선택하게 하고 프로세스를 완료합니다.

figure 23
그림 23: 디멘션 멤버 선택 결과의 조회

OracleBI Discoverer 워크북이 표시됩니다.

figure 24
그림 24: 완성된 OracleBI Discoverer for OLAP 워크북

다차원 모델, 편리한 쿼리 빌더, 그리고 강력한 기능의 애널리틱 워크스페이스를 함께 활용함으로써 비즈니스 관점에서 쉽게 이해할 수 있는 다차원적인 OracleBI Discoverer for OLAP 워크북을 생성할 수 있습니다.

Oracle Spreadsheet Add-in을 이용한 큐브의 분석

OracleBI Discoverer를 이용하여 OLAP 데이터를 표시하는 것 이외에도, Oracle Spreadsheet Add-in을 이용하여 데이터를 Microsoft Excel로 가져오는 것도 가능합니다. Oracle Spreadsheet Add-in은 OTN에서 직접 다운로드 하거나 Oracle Business Intelligence Tools 번들과 함께 설치할 수 있습니다.

Oracle Spreadsheet Add-in을 설치하고 Microsoft Excel을 로드했다면, 오라클 메뉴 아이템으로 이동하여 새로운 쿼리를 생성합니다. Connection Editor를 이용하여 OLAP 데이터를 저장 중인 데이터베이스에 대한 연결을 생성합니다. 다음으로 OLAP Connection 대화 상자에서 global 스키마에 연결합니다.

다음 과정에서 제시되는 Query Wizard를 이용하여, OracleBI Discoverer for OLAP 쿼리를 생성한 것과 같은 방법으로 OLAP 쿼리를 생성할 수 있습니다. Query Wizard를 이용하여 SALES 측도를 선택하고 앞에서와 동일한 조건을 디멘션에 적용합니다.

figure 25
그림 25: Oracle Spreadsheet Add-in Query 마법사

쿼리의 정의 작업이 완료되면, OLAP 데이터가 스프레드시트에 표시됩니다. 데이터는 리프레시가 가능하며 스프레드시트의 다른 데이터와 같은 방법으로 처리될 수 있습니다.

figure 26
그림 26: Microsoft Excel에서 OLAP 데이터 조회하기

요약

OracleBI Discoverer와 OLAP Option을 함께 활용하고 논리적 다차원 모델을 활용함으로써 데이터에 대한 쿼리, 리포트 환경을 개선하는 것이 가능합니다. 논리적 다차원 모델은 일반 사용자들이 비즈니스를 이해하는 관점을 그대로 반영하고 있다는 장점을 갖습니다.

또 논리적 다차원 모델을 다차원 애널리틱 워크스페이스를 이용하여 구현함으로써 Oracle Database 10g에 구현된 OLAP 엔진의 쿼리/집산 취적화 기능을 활용할 수 있습니다. OTN으로부터 무료로 다운로드 가능한 Analytic Workspace Manager 10g는 OracleBI Discoverer의 OLAP 기능을 이용하여 애널리틱 워크스페이스를 신속하게 구현할 수 있도록 지원합니다. 사용자는 Oracle Spreadsheet Add-in, OracleBI Discoverer, Oracle Database 10g, OLAP Option 등의 도구를 이용하여 정교하고도 편리한 방식으로 다양한 사용자들을 위한 비즈니스 인텔리전스 환경을 구현할 수 있습니다.
다음 단계

지금까지 OracleBI Discoverer for OLAP을 이용하여 OLAP 큐브를 처음으로 구현하고 분석해 보았습니다. 계속해서 실행해 볼 수 있는 작업들이 아래와 같습니다.

  • Analytic Workspace Manager 10g를 이용하여 Time-series Comparison 또는 Ranking을 이용하여 현재 디멘션의 다른 멤버, 또는 다른 디멘션에 대해 계산된 측도를 새로 추가합니다.
  • OracleBI Discoverer Viewer를 이용하여 워크시트를 웹에 게시합니다.
  • Oracle Portal을 이용하여 웹 "성능 대시보드"를 구현합니다.
  • Stoplighting과 같은 OracleBI Discoverer for OLAP의 새로운 기능을 워크북에 적용해 봅니다.
  • OracleBI Discoverer for OLAP Query와 Calculation Wizard를 이용하여 좀 더 복잡한 형태의 워크북과 계산을 구현해 봅니다.


Mark Rittman 은 Oracle Professional DBA 자격 보유자이며 Oracle Database, Oracle Application Server, OracleBI Discoverer, Oracle Warehouse Builder, Oracle OLAP 등을 이용한 비즈니스 인텔리전스, 데이터 웨어하우징 애플리케이션 전문 개발 업체인 SolStonePlus의 테크니컬 어카운트 매니저로 근무하고 있습니다. 마크는 UKOUG BI and Reporting Tools SIG의 회장직을 함께 역임하고 있으며 오라클 비즈니스 인텔리전스, 데이터 웨어하우징 테크놀로지를 주제로 한 웹 블로그 를 운영 중입니다. 리트먼은 Oracle ACE 로서 영국, 유럽, 미국 등지의 오라클 사용자 이벤트에서 연사로 참여해 왔습니다.



이 문서의 평가를 부탁 드립니다:

Excellent Good Average Below Average Poor


여러분의 의견을 보내 주십시오


 

 
 


E-mail this page
Printer View Printer View