#title 분석관점 [[TableOfContents]] ==== 데이터의 본질 ==== 다음과 같은 경우를 보았는가? * 구매금액대(5천이하, 1만이하, 5만이하...) * A사업부 구매금액대(5만원이하, 10만원이하, 15만원이하...) * B사업부 구매금액대(10만원이하, 20만원이하, 30만원이하...) 구매금액이 Measure인가? Measure를 구간으로 나눈 것은 Dimension인가? 차원처럼 꾸몄다고 해도 Meausre는 Measure다. 본질이 바뀌는 것은 아니다. 사람이 토끼가면을 쓴다고 토끼가 되는 것은 아니다. 시간이 지나면서 현업에서는 혼란을 겪을 것이다. 왜냐하면 여러 차원과 직접적인 관계가 없고 단지 Measure와 Measure를 바라보는 여러 관점 즉, 차원들의 전체 적인 관점에서만 의미가 있기 때문이다. ==== 구간대에 대한 주의사항 ==== 구간을 무조건 짜르는 것은 옳지 않다. 구간대의 데이터가 정규분포라는 가정이 있어야 한다. 만약 1만~2만 구간의 고객수를 본다면 1만 5천원과 가까운 고객이 많다는 가정일 것이다. attachment:seg01.jpg 보통 구간대를 나눠달라고 하는 것은 감에 의존하는 경향이 있다. 최악의 경우 구간대는 다음과 같이 나뉠 수도 있다. 만약 사업부나 요청자에게 어떤 기준으로 구간을 짤라냐고 물어봤을 때에 답변을 하지 못한다면 여전히 감에 의존하는 반쪽짜리 데이터가 될 수 밖에 없다. attachment:seg02_1.jpg 숫자나 랭킹(A,B,C, 1,2,3 등)등의 자료를 구간대로 자를 경우는 전체적인 데이터 분포와 구간대의 데이터 분포를 살펴보고 분석목적에 맞게 적절히 자르는 것이 좋다. 가능하다면 5의 배수가 인지하기는 좋지만, 의미있는 단위가 도출된 다음의 경우에 5의 배수로 쪼개는 것을 고려하도록 하자. ==== 구간대 모델링 방법 ==== 구간대를 모델링 할 때는 최대한 사업부의 요구사항을 수집해야 한다. 기술적으로 아무리 잘 나눈다고 해도 사업부의 관점에서는 너무 작거나 또는 너무 크게 구간대를 나누어서 구간대가 더 필요할 수도 있다. 또한 판단을 쉽게 하기 위해 단순화 하는 것도 있다. 그러므로 최대한 수집해야 한다. 예를 들어, x 값을 구간대로 나눈다고 가정해보자. 여러 사업부에서 요구사항을 수집한 결과 다음과 같았다면.. * A사업부: 10단위 * B사업부: 5단위 * C사업부: * 1 ~ 50까지는 10단위 * 51 ~ 100까지는 20단위 다음과 같이 쪼개어 놓을 수 있다. 여기서는 최대한 최소단위를 표현하는 것이 유연성에 좋다. ||A||B||C||D|| ||1~20||1~10||1~5||1|| ||1~20||1~10||1~5||2|| ||1~20||1~10||1~5||3|| ||1~20||1~10||1~5||4|| ||1~20||1~10||1~5||5|| ||1~20||1~10||6~10||6|| ||..||..||..||..|| C사업부의 경우 다음과 같이 처리하면 된다. {{{ select case when x between 1 and 50 then B else A end grp , sum(x) val from TableA group by case when x between 1 and 50 then B else A end }}} ==== 바라보는 방향 ==== 일반적인 DW환경에는 여러가지의 분석 관점이 차원이 되고, 숫자들은 Measure(모델A)가 된다. 하지만 여러가지 Measure를 분석관점으로 고객을 바라보는 관점(모델B)도 있다. attachment:분석관점/dim01.jpg 모델B의 경우는 데이터를 분포를 보기 위함이거나 세분화의 경우가 대부분이다. 하지만 이렇게 설계를 해 놓고 데이터를 들이 붓는다면 사용자를 위한 메타데이터를 매우 잘 만들어 놓아야 한다. 왜냐하면 Measure가 차원처럼 되면 다른 관점과 섞이지 못하기 때문이다. ==== 분석의 방향이 섞이는 경우 ==== 위 모델 A, B는 Fact와 Dimension이 100% 서로 뒤바뀐 경우다. 하지만 아래의 그림처럼 분석관점(dimension)과 분석대상(measure or fact)이 섞일 수 있다. attachment:분석관점/dim02.jpg 시간이 지나면 사용자는 혼란을 겪게 된다. Fact에도 매출액이 있고, Dimension에도 매출액이 있기 때문이다. '월 매출액 구간'은 어떤 기준인가? 일단, '월'이므로 날짜의 관점이 들어가 있다. 하지만 날짜차원의 최소단위가 '일' 단위라면 날짜차원과 '월 매출액 구간'은 별개로 보아야 한다. 그러면 고객단위인가? 상품단위인가? 아니면 고객과 상품의 조합의 단위인가? 다른 차원과 어떤 관련이 있는지 명확하게 정의를 해야 한다. 또한 업무환경이 변화하여 '구간대'가 변경이 된다면 모든 데이터를 다시 업데이트해야 한다. 만만치 않은 작업이다. 그러므로 세분화를 위한 작업이라면 따로 집계를 한 다른 모델이 만들어져 한다. 분포를 보기 위해서는 각 차원별로 최소 단위까지 Drilldown하다가 여러 분석관점의 최소단위에서 분포를 봐야 한다. 즉, 아래의 그림과 같다. attachment:분석관점/dim03.jpg