2. OLAP
OLAP is an acronym for
Online Analytical Processing.
OLAP performs
multidimensional analysis
of business data and
provides the capability for
complex calculations, trend
analysis, and sophisticated
data modeling. It is the
foundation for many ki ….
결국은
GROUP BY
METRIC
3. 보고자 하는 것
- 남자가 봐? 여자가 봐? -> 성별로 조회수
- 어느 지역에서 검색어 추이가 어때 -> 지역별, 시간별 검색 횟수
- 남자 10대 ~ 20대 타겟 개인화를 하려 하는데 .. -> 성별, 연령별, 시간별 체류
시간
SELECT `gender`, `age`, `location`, 조회수, 검색 횟수,
체류 시간
FROM 데이터_마트
WHERE 아웃라이어 제거 조건
GROUP BY `gender`, `age`, `location`
HAVING 유의미한 지표 필터링
4. 문제는 데이터 사이즈
- 엑셀
- RDB, Netezza
- 데이터 마트
- Star Schema
“내가 해봤는데, 하루 100만건 까지는
지지고 볶고 하면 되겠는데
아 그래, 좀 크게 잡아서
3~4백만건까지는 OK.
근데 그 이상은 좀 힘들더라
근데 커팅 형님이 도와줬지 ㅎㅎㅎ”
김철수(가명) 40대? 시니어 개발자
17. 그까이꺼 미리 다 만들어 놓는다
- 데이터 큐브
- 전날 배치를 돌려 모든 조합을 만들어 놓는다.
18. 8개월간의 사투
- ㅋㅋㅋㅋ 야이씨 데이터가 많은데 그걸 빨리 읽어서 처리? ㅋㅋㅋㅋㅋ
카일린 고고
- 흠.. 혹시나… Impala + Kudu 어때?
오.. 괜찮네. 몇개는 역시 한계가 있는 건가.
- 음?? Druid! 괜찮네.. Impala + Kudu 한계까지 커버 하네!
- 현재 Druid로 새로 꾸리는 중...
22. Curse of dimension
- 조합의 수.
디멘션의 개수 10개의 총 조합수
nC1 + nC2 + nC3 + … + nCn = 2^n - 1개
- 조합 수보다 중요한 건 Unique Cardinality
디멘션이 4개, 각 디멘션당 Unique Cardinality 100만개
그러면 1 0000 0400 0006 0000 0400 0000개. 1자 400경 6억 4백만.
- 무식하게 다 빌드 했더니 1.7T ㄷㄷ 근데 하루 치 ㄷㄷㄷㄷㄷㄷㄷ
카일린 당신이란 사람은 대체 ㄷㄷㄷㄷ
23. 디멘션 프루닝
- Aggregation Group
- Mandatory
- Hierarchy
- Joint
- Derived
필요 없는 조합은 만들지 않는다.
24. But 현실에서는 ...
데싸 : 나는 Store 디멘션은 필요 없어 ㅎㅎㅎㅎ
데엔 : 아 그래요? 그럼 Store 빼놓고 큐브 빌드
할게요 ㅎㅎㅎㅎ
데싸 : 그래 ㅎㅎㅎㅎ
1주일 뒤
데싸 : Store별로 보는게 나을 것 같습니다.
데엔 : 데싸 당신이란 사람은 대체 ...
불필요한 Store 디멘션은 빼고 큐브 빌드
27. 부족했던 점
- 데이터는 무럭무럭 자란다. 스키마 에볼루션?
쿼리가 고정된 경우에는 적합하지만
어떤 쿼리가 들어올지 모르는 상황에서는 유즈케이스가 안맞는 것 같다.
- 실시간 처리
- 큐브 병합. 주별, 월별이 아닌 n일치로 병합
그러니까 1월 + 2월분이 섞이게 된다.
- 헤비 쿼리를 날리면 HBase 왜 니가 죽냐...