Essbase 구성


outline 이란

큐브(MDB) 에는 dimension 과 값으로 이루어져 있습니다.

구글 anlytics 에서는 값 들은 metrics 라고 표현하고 있습니다.

값 이라는 표기로 설명하기보다는 같은 영문인 metrics 라는 표기를 사용해야 일관성이 있을 것 같아 가져다 쓰겠습니다.

dimension 에 해당하는 데이터를 예를 들면 년, 월, 매장, 품목, 회원, 부서 등등이 있겠습니다.

metrics 에는 매출액, 수량, 객단가, 단가, 소가 등등이 있습니다.

essbase 에서는 dimension 들에 집합들을 outline 이라고 정의해 놓았습니다.

essbase 는 dimension 과 metrics 에 대한 경계는 모호하고 outline 안에 두 축이 같이 존재 할 수도 있습니다. dimension 만 존재 할 수도 있습니다.

outline 에 dimension 만 존재 할 경우는 데이터 적재 시 해당 데이터는 값이다 라고 명시를 해주어야 합니다.

dimension 계층

dimension 은 항상 계층이 있습니다.

Generation 구조

품목 분류를 할 때 대,중,소분류 와 제품코드가 있을 경우를 예를 듭니다.

이렇게 계층이 항상 정해져 있는 분류를 계층이 Generation 구조이다 라고 합니다.

Parents Child 구조

부서 분류를 할 때 부서그룹, 부서 조합으로 계층이 만들어 질 경우를 예를 듭니다.

항시 부서는 부서그룹에 속합니다. 부서그룹도 다른 부서그룹에 속할 수 있습니다.

예를 들면

마케팅팀이 있습니다. 마케팅 팀 밑에는 마케팅 팀A, B, C 가 있습니다.

마케팅팀은 전략기획부에 속합니다. 전략기획부는 CEO 직속 입니다.

이렇게 최종 깊이를 알 수 없는 데이터 구조를 Parents Child 구조라 합니다.

  • dimension 구성 시 주의사항
  1. 중복이 가능하도록 구성 할 수도 있지만 모드 구성 코드와 명칭은 값이 중복이 발생하지 않게 합니다.
    1. 예를 들면 대분류 : 과일류, 빵류, 채소류 가 있다 가정하면 각기 대뷴류 하위에 기타 라는 공통적인 하위 분류가 발생 할 수 있습니다. 이 기타 분류는 기타 가아닌 과일류(기타),빵류(기타),채소류(기타) 이런 식으로 구성이 되어야 합니다.
    2. Parents Child 구조에서 상위 코드는 중복되선 안됩니다.
      1. 상기 분류를 예로 들면 과일류(기타) 분류에 상위 코드를 과일류라 지정해 놓고 빵류에도 지정하면 안된다는 이야기 입니다.

MDX 란

MultiDimensional eXpressions 에 약자로 essbase 에서는 sql 과 유사항 형태에 문법이지만 조금은 다른 표현법을 사용 합니다.

mdx 쿼리를 작성하려면 dimension 이라는 개념을 인지하고 있어야 합니다.

MDX 쿼리 예시

매출 데이터를 RDB 에서 쿼리한다고 가정하면 하기 표기 정도로 표현 할 수 있습니다.


SELECT ,,매장,품목,회원,판매액 FROM SALES_TAB

MDX 도 SELECT, FROM, WHERE 를 사용하는 건 별반 다르지 않습니다.


SELECT [].children, [].generation(1), [매장].Levels(0)
FROM [SALE].[SALE_DB]
WHERE [품목].[청과류]

이런식으로 쿼리가 가능 합니다.

MDB 이점

MDX에 이점은 바로 이런 부분으로 볼 수 있을 것 같습니다.

outline 이라는 dimension 들에 집합을 쿼리하면서 dimension 들에 위치를 특정하여 데이터를 조회 할 수 있습니다. 그리고 또 다른 강력한 이점은 이런 데이터 조회를 쿼리를 이용하지 않아도 엑셀 추가 기능으로 제공한다는 점입니다. 단순히 클릭, 더블클릭, 드래그 액션으로 mdx 쿼리를 데이터베이스에 요청하여 조회 할 수 있도록 설계되어 있습니다.


 Toc
 Tags