Star Schema Ch14. Derived Schemas 서울시립대학교 시스템구조연구실 박현식
Contents Derived Schemas The Merged Fact Table The Pivoted Fact Table The Sliced Fact Table Set Operation Fact Tables
Derived Schemas Data set이 너무 클 경우 간단한 query에서도 성능 저하가 발생한다. Derived table와 aggregate table을 이용하면 성능을 크게 높일 수 있다. Aggregate table은 chapter 15에서 설명 Derived schema는 존재하는 dimensional data를 재구성하여 저장한다. Derived schema는 query의 성능을 증가시키고 report 작성의 복잡성을 감소 시킨다.
Derived Schemas Uses for derived schemas Query performance Report complexity 데이터를 재구성함으로써 기술이 적은 사용자도 대답을 얻을 수 있게 하여 보고서 개발 비용을 절 감한다. Schema scope Data의 크기를 제한되기 때문에 분산처리, 부서분석, 모바일 환경에서의 분석에 적합하다. Use of cubes 필요한 경우 cube를 사용하여 관계형 data를 보조하는 역할을 한다.
Derived Schemas Derived schemas already covered Snapshots (Ch. 11) Accumulating snapshots (Ch. 11) Core fact tables (Ch. 13)
Derived Schemas The cost of derived schemas Derived schemas는 무료로 얻어지지 않고 ETL process에서 cost와 함께 생성되는 것. Derived schemas는 load 과정에서 더 많은 리소스를 요구하기 때문에 derived schemas 로 얻는 이점과 그에 따른 손실이 균형을 이루어야 한다. 여러 개의 star를 분석할 경우 개발자는 어떤 star를 선택하고 어떠한 derived schemas를 선택하여야 분석 요구사항을 만족할 수 있을지 염두 하여야 한다.
Derived Schemas The Merged Fact Table The Pivoted Fact Table Drill-across 결과를 사전에 계산한다. The Pivoted Fact Table 행방향 data를 열방향 data 또는 역방향으로 뒤바꾼다. The Sliced Fact Table Original fact table의 행에 대한 부분집합으로 구성된다. Set Operation Fact Tables 2개의 star에 대한 합집합, 교집합, 차집합 연산을 사전에 계산한다.
The Merged Fact Table Derived schema 중 가장 흔하게 사용된다. 하나 이상의 star에 존재하는 fact 들을 통합한다. Drilling across를 사용하지 않고도 fact간의 비교가 가능하다. Ex) 계획(목표)과 실제 성과에 대한 비교 Data set이 클 수록, 많은 수의 process를 비교할 수록 더 성능이 높아진다.
The Merged Fact Table Conform at the level Nonshared dimension Not used Precomputed drill-across result
The Merged Fact Table Drilling-across (Ch. 5) Step 1 Step 2 Slow and complex
The Merged Fact Table Simplified process comparison 더 이상 drill-across를 할 필요가 없다. 한번의 간단한 query로 fact의 비교가 가능하다.
The Merged Fact Table Nonshared dimension Merged fact table은 모든 nonshared dimension에 대한 fact가 있어야 한다. Ex) 지역과 월이 주어졌을 때 merge fact table은 각 plan에 대하여 fact가 있어야 한다. Nonshared dimension과 연관이 없는 fact table의 행들은 ETL process 과정에서 nonshared dimension의 행의 수만큼 반복되며 merged fact table을 형성한다. Ex) order_dollars의 값이 plan_version의 모든 경우에 대해서 반복되어 저장된다. Nonshared dimension의 어떤 값을 선택하더라도 업무 절차 분석이 가능하다. Ex) 여러가지의 plan에 대해서 plan과 실제 성과간의 비교 분석이 가능하다.
The Pivoted Fact Table Original fact table을 행방향에서 열방향 또는 역방향으로 바꿔준다. Report의 형식을 단순화해준다. 성능증가는 매우 미미하게 증가하기 때문에 주로 report의 결과가 클 경우에 사 용된다.
The Pivoted Fact Table The need to pivot data Dimension을 fact의 같은 행으로 이동시킨다.
The Pivoted Fact Table Query results Original schema (row-wise) Derived Schema (column-wise)
The Sliced Fact Table Sliced fact table은 original star에서 특정한 dimension 속성을 가진 부분집 합을 취하여 생성한다. 여러 개의 sliced fact table을 생성하면 분산처리에 유용하다. 특정 부서에 초점을 맞추어 분석이 가능하다. 각 역할에 기반하여 보안성이 강화된다. Detail을 포기하지 않고도 schema의 범위를 축소할 수 있다. 사용할 수 있는 data set의 크기가 한정된 mobile 기기에 적용이 가능하다.
The Sliced Fact Table Creating slices of a star
The Sliced Fact Table Load process sequence Sliced fact table을 이용하여 fact들을 병렬로 처리하고 결과를 결합해 전체 결과를 얻을 때는 다음과 같은 순서를 거친다. 공통된 dimension table을 처리한다. 원한다면 병렬로 fact table slice를 처리한다. Slice들로부터 결합된 fact table을 얻는다. 순서가 지켜지지 않을 경우 부적합, key 값의 중복, slow change의 일괄되지 않은 표기법 등의 문제가 발생할 수 있다.
Set Operation Fact Tables 같은 dimension을 공유하는 2개의 star가 존재할 때 2개 사이의 교집합, 합집 합, 차집합 등은 의미 있는 정보일 때가 많다. Set operation fact table은 2개의 star간의 집합 연산을 미리 해두어 다른 star를 미리 생성해 두는 것이다. 집합 연산이 필요한 분석을 할 경우 query time에 집합 연산 하는 것을 피할 수 있으므로 수행 시간이 줄어들어 성능이 향상된다.
Set Operation Fact Tables
Set Operation Fact Tables Choosing to precompute set operation 집합 연산의 결과물은 의미가 있는 결과일 수도 있지만 그렇지 않을 수도 있다. 의미 없는 결과의 사전 연산 결과물을 산출해 내는 것은 오히려 ETL process 과정에서 비용 의 증가를 일으킨다. ETL process의 비용 증가 측면과 report 작성의 비용 감소 측면 또는 수행시간 감소 측면을 종합해서 고려해서 derived star를 생성할지 결정한다. Report의 20% 정도가 부분집합에 초점을 두고 있다면 derived star를 사용하는 것이 매우 유리할 수 있다.