Autonomous Data Warehouse의 사실 값 테이블은 통합 파티션이 있는 Essbase 큐브의 데이터를 저장합니다. 통합 파티션 요구사항을 충족하는 사실 값 테이블이 없으면 하나 생성해야 합니다. 또한 피벗 차원이 무엇인지 이해해야 Essbase 큐브에서 하나 선택할 수 있습니다.
이 섹션을 시작하기 전에 Essbase 애플리케이션 및 큐브가 아직 없으면 생성하십시오.
통합 파티션의 경우 사실 값 테이블은 Essbase 큐브의 데이터 값을 저장합니다. Autonomous Data Warehouse에 필요한 사실 값 테이블이 없으면 하나 생성해야 합니다.
시작하기 전에 사실 값 테이블에 대한 빈 스키마가 있는지 확인합니다. 통합 파티션에 대한 스키마 생성을(를) 참조하십시오.
사실 값 테이블은 Essbase 준비 형식이어야 합니다. 즉, 콘텐츠와 모양에 관한 다음 요구사항을 충족해야 합니다.
각 큐브의 (비속성) 차원은 단일 열 머리글로 표시되어야 합니다. 단, 큐브의 차원 중 하나(일반적으로 측정항목/계정을 포함하는 차원)가 둘 이상의 열로 피벗되는 경우는 예외입니다.
주:
설명서의 다른 부분에서는 피벗되는 차원을 피벗 차원이라고 합니다.
사실 값 테이블은 Essbase 셀 교차 시퀀스당 한 행씩, 고유 레코드(중복 없음)로 구성되어야 합니다.
Essbase 데이터 익스포트에 익숙하다면 사실 값 테이블의 모양이 Essbase 열 익스포트와 똑같다는 것을 알 수 있습니다.
열 익스포트와 마찬가지로, 사실 값 테이블에는 다음이 포함되어야 합니다.
아웃라인의 각 (비속성) 차원에 대한 하나의 열(피벗 차원 제외)
피벗 차원의 각 저장된 멤버에 대한 하나의 열
다음은 측정항목 차원이 피벗된(즉 피벗 차원) 사실 값 테이블의 예입니다. 피벗 차원은 차원의 저장된 멤버가 열 머리글(SALES, COGS, MARKETING, PAYROLL, MISC, INTITIAL_INVENTORY, ADDITIONS)이 되므로 사실 값 테이블의 모양에 영향을 줍니다.
SQL을 사용하여 사실 값 테이블을 빌드하거나, Essbase 데이터 익스포트를 통해 생성할 수 있습니다. Autonomous Data Warehouse 툴을 사용하거나 Essbase 데이터 로드 기능을 사용하여 사실 값 테이블에 데이터를 로드할 수 있습니다.
사실 값 테이블 빌드를 위한 추가 지침은 다음과 같습니다.
사실 값 테이블에는 1000개 미만의 열이 있어야 합니다.
Essbase에서 속성 차원에 매핑할 열은 포함하지 마십시오.
사실 값 테이블은 IEEE binary64(double)보다 정밀도가 떨어지면 안됩니다.
사실 값 테이블은 1024비트 문자 길이의 NVARCHAR2 유형을 사용하여 차원 멤버에 대한 국제화된 문자열을 사용해야 합니다.
사실 값 테이블 생성 예제
Autonomous Data Warehouse에 사실 값 테이블을 생성하려면 SQL을 사용할 수 있습니다.
SQL Developer나 원하는 툴을 사용하여 Autonomous Data Warehouse에 스키마 소유자(통합 파티션에 대한 스키마 생성 단계 참조)로 로그인합니다.
아직 없으면 SQL을 사용하여 사실 값 테이블을 생성합니다.
예를 들어, 다음 SQL은 Essbase 큐브 Sample Basic에서 익스포트된 데이터로부터 사실 값 테이블을 생성합니다.
CREATE TABLE "SAMP_FACT" ( "PRODUCT" NVARCHAR2(1024), "MARKET" NVARCHAR2(1024), "YEAR" NVARCHAR2(1024), "SCENARIO" NVARCHAR2(1024), "SALES" NUMBER(38,0), "COGS" NUMBER(38,0), "MARKETING" NUMBER(38,0), "PAYROLL" NUMBER(38,0), "MISC" NUMBER(38,0), "INITIAL_INVENTORY" NUMBER(38,0), "ADDITIONS" NUMBER(38,0) ) NOCOMPRESS LOGGING PARALLEL 4;
참고
위의 예제에서 사실 값 테이블 이름은 SAMP_FACT이고 Sample Basic에 기반합니다.
최상의 성능을 위해 사실 값 테이블의 모든 비숫자 열은 NVARCHAR2(1024) 유형이어야 하고 모든 숫자 열은 NUMBER 유형이어야 합니다.
Oracle은 Autonomous Data Warehouse에서 PARALLEL 4를 추가하여 병렬 인덱스 생성을 사용할 것을 권장합니다.
메타데이터 열은 NULL 값 포함을 허용하면 안됩니다.
오라클은 큐브 사용 시 증분 데이터 로드나 뱃치 스크립트 업데이트와 같은 데이터 생성형 프로세스가 포함된 경우 NOCOMPRESS를 권장합니다. 큐브가 주로 읽기 작업에 사용될 경우 COMPRESS를 사용하여 보고용 사실 값 테이블을 최적화합니다.
사실 값 테이블을 생성할 때 다음 검증 오류가 발생하면 널 행을 삭제하십시오.
ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in dimension("<Name_of_Column") star table key column
최상의 성능을 위해 확실한 필요 없이 테이블에 특정 제약조건을 추가하지 마십시오.
위의 예제에서 사실 값 테이블 이름은 Essbase 파일 카탈로그의 갤러리에서 제공되는 Sample Basic에 기반합니다. 이 샘플 큐브나 다른 Essbase 큐브에서 데이터를 익스포트하고 로드 후 사실 값 테이블을 빌드할 수 있습니다. 그 전에 통합 파티션 애플리케이션으로 데이터를 로드하기 위한 인증서를 설정해야 합니다. 통합 파티션 데이터 로드을(를) 참조하여 인증서를 설정하고 DATAEXPORT 명령을 사용하여 DBMS 형식으로 데이터를 익스포트하는 방법에 대해 알아봅니다.
통합 파티션 설계의 일부로 피벗 차원을 선택해야 합니다. 피벗 차원은 숫자 데이터 값을 나타내기 위해 Essbase 큐브 아웃라인에서 지정한 차원입니다.
피벗 차원은 측정항목/계정일 필요는 없지만 그럴 수도 있습니다.
피벗 차원의 모든 저장된 멤버는 Autonomous Data Warehouse의 숫자 데이터 값을 나타내는 사실 값 테이블 열에 매핑되어야 합니다.
Essbase BSO(블록 스토리지) 계산 스크립트를 실행해야 하는 경우 피벗 차원으로 밀집 차원을 선택합니다. 피벗 차원이 희소인 경우 통합 파티션에 대해 계산 스크립트가 지원되지 않습니다.
피벗 차원에는 상당히 정적인 멤버 이름을 지정해야 하며 너무 많은 수의 멤버를 지정하면 안됩니다. 이유: Essbase 큐브 아웃라인에서 피벗 차원을 변경하면(예: 저장된 멤버를 추가하거나 이름 바꾸기) Autonomous Data Warehouse의 사실 값 테이블에 해당하는 수동 업데이트가 필요하며 통합 파티션도 재생성해야 합니다.
복잡한 동적 공식이 필요한 멤버를 포함하는 Essbase 차원(예: Sample Basic을 사용하는 "Opening Inventory" 및 "Ending Inventory")은 피벗 차원으로 선택하면 안됩니다.
통합 파티션 생성 시점에 선택한 피벗 차원을 제공합니다.
Oracle Database에는 1,000개 열 제한이 있고 피벗 차원은 이 제한을 상속합니다. 피벗 차원에서 적격한 열 멤버 수를 확인하여 제한에 부딪치지 않도록 하십시오. 피벗 차원에서 잠재적인 저장된 멤버 조합 수와 큐브의 차원 수를 더한 값은 1,000개 이하여야 합니다.
집계 스토리지 큐브의 경우 다중 레벨의 저장된 멤버 계층이 포함된 차원을 피벗 차원으로 선택하면 안됩니다. 동적 계층을 가진 피벗 차원, 또는 단일 레벨의 플랫 계층으로 저장된 계층(모든 멤버가 레벨 0의 저장된 멤버임)을 선택하십시오.