Kimball definition


데이터 마트

  • 1개 이상의 스타 스키마


데이터 웨어하우스

  • 데이터 마트의 집합
  • 모든 데이터 마트의 소스


큐브

  • 다차원 데이터 오브젝트


큐브 사용 장점

  • 정의에 따라 주어진 정보에 아주 빠르게 응답한다.
  • 드릴다운 경로가 동적이다. 큐브에서 깔끔하고 구조화된 aggregation이 나온다. 
  • 질의가 간단하다. 조인이 없음. 팩트 기반으로 만들어졌기 때문에 세부 정보를 몰라도 됨.


큐브 사용 단점

  • Ad-hoc 질의로 알맞지 않다.
  • 실시간성이 떨어진다.
  • 드릴다운은 저수준으로만 가능하다. 
  • 크기: 큐브에 넣는 속성은 절대 작지 않다.
  • 소스 데이터 크기: 속성이 많을 쓰로 가져다 사용할 데이터가 많다.
  • 유지보수: 일간 데이터 생성에 수시간이 걸린다면 큐브 생성에도 오래걸린다.
  • 복잡도: 큐브 질의에 SQL을 사용할 수 없다. MDX(Multidimensional Expression)을 사용해야 한다. 


원본: http://www.seemoredata.com/en/entry.php?10-Differences-between-CUBES-and-Star-Schema

작성시작: 2016-10-20, 최종수정: 2016-10-20


Note: 2014년 자료로 작성하였음. 현재 내용이 다를 수도 있으니 추가 확인 필요


Druid로 실시간 분석하기


실시간

  • 여기서 실시간이란 수십초안에 응답 및 실시간 ingestion을 을 의미


Analytics

  • 데이터를 클렌징, 변환, 모델링해서 정보를 찾는 프로세스

Business Intelligence
  • 비즈니스 정보에 초점을 맞춘 애널리틱스

Druid란?
- google dremel에서 영감을 얻음
- 오픈소스 OLAP 엔진
- aggreation을 수십초안에 해결
- 메모리 매핑 데이터 사용

특징
- de-normalized data
- time-based segments
- timeseries/groupby/TopN 처리에 강함
- Hadoop과 잘 동작

메인 컴포넌트

* 인덱싱 서비스
 - 실시간 ingestion
 - hadoop 배치 ingestion
 - 로컬 배치 ingestion
 - 인덱싱 단계에서 aggregation 정의
 - 최종 결과: 데이터 세그먼트를 deep store에 저장. 각 세그먼트는 시간범위를 가지고 있음

* 코디네이터 노드
 - MySQL 메타데이터 읽기 조정. 

* 브로커 노드
 - 질의를 세그먼트를 가진 노드에 전달
 - partial aggregation 결과를 취함

* 히스토리컬 노드
 - deep store에 있는 immutable 인덱스 데이터를 로딩

* 실시간 노드


왜 Druid를 일까?

장점
- Horizontal Scalability - 선형 성능 보장
- 수초안에 응답시간(실시간급)
- 네이티브 타임존 지원
- 통합 버전( 배치 + 실시간 ingestion/질의 지원, 분산 memcached 지원, 멀티티어 복제/로드 지원)
- 활발한 커뮤니티

단점
- SQL/MDX보다 제한적인 질의 (빅쿼리는 ANSI SQL지원)
- 조인이 힘듬
- distinct 카운트 불가
- groupby 질의시 메모리 제한 있음


참고: http://www.slideshare.net/ydn/pushing-thelimitsofrealtimeanalyticswithdruidv3




CRISP-DM

  • CRoss-Industry Standard Process for Data Mining
  • 초보자나 전문가가 비즈니스 전문가와 함께 모형을 만들어 내는 포괄적인 데이터 마이닝 방법론/프로세스


CRISP-DM 프로세스는 일반적인 오류를 줄이고 다음과 같은 이점을 제공함

  • 비즈니스 문제 인식 및 해결을 위한 데이터 마이닝 프로세스 명료화
  • 데이터 탐색 및 이해
  • 데이터를 통한 문제 인식 및 해결
  • 데이터 마이닝 기법 적용
  • 비즈니스 상황에 따른 데이터 마이닝 결과의 해설
  • 데이터 마이닝 결과의 전개 및 유지


CRISP-DM 프로세스

  • Business Understanding
  • Data understanding
  • Data prepation
  • Modelding
  • Evaluation
  • Deployment


CRISP-DM 홈페이지

원문: http://blog.naver.com/yoonsunh/20034885744


CRISP-DM 모델

  1. 비즈니스 이해(Business Understanding)
    • 프로젝트 목적 이해
    • 지식을 데이터 마이닝 문제 정의를 위해 전환
    • 목적 달성을 위한 예비 계획 수립
  2. 데이터 이해(Data Understanding)
    • 초기 데이터 수집
    • 데이터 파악
    • 데이터 품질 확인
    • 데이터 통찰력 발견
    • 데이터 탐색
  3. 데이터 준비(Data Preparation)

  4. 모델링(Modeling)
  5. 평가(Evaluation)
  6. 배포(Deployment)



원문: http://www.comworld.co.kr/news/articleView.html?idxno=14271




추천시스템 - 대상자가 좋아할 만한 무언가를 추천하는 시스템


활용사례

  • 아마존 
    • 평점, 구매행위, 검색행위 정보들을 이용해 상품 추천시스템을 운영
  • 넷플릭스
    • 사용자의 성향을 파악해 좋아할 만한 영화 추천
    • 사용자가 로그인 하는 순간 해당 사용자의 취향에 맞춰 전체 페이지가 구성되는 수준까지 발전
  • 페이스북
    • 상품이나 뉴스 추천이 아니라 친구 추천을 하는데 활용
    • 친구 추천은 교류를 증대 시킬 목적을 가지고 있기 때문에 Link Prediction이라는 것에 중점을 둠

추천시스템 주요기술

  • 협업 필터링
    • A라는 사람이 부산행이라는 영화를 좋아하면, A와 성향이 비슷해 보이는 B라는 사람 역시 부산행을 좋아할 것이라는 생각을 활용한 방법
    • 거의 모든 추천시스템에서 활용
    • 유유상종의 대상이 무엇이냐에 따라 2가지 방식으로 나뉘어짐
      • 사용자기반 협업 필터링
        • 유사한 성향을 가진 사람들을 구분하고, 해당 성향의 사람들이 좋아하는 것을 추천하는 방식
        • 피어슨상관계수
      • 아이템기반 협업 필터링
        • 아이디어는 동일하지만 사람이 아닌 아이템으로 대치된 것이다. 
        • 코사인유사도
    • 2가지 기술의 장점: 구현이 간단하고 이해하기 쉽다
    • 단점: 정보가 많지 않은 경우 예측의 정확도가 높지 않다.
  • 모델 기반 협업 필터링
    • 머신러닝을 이용해 평점을 예측할 수 있는 모델을 만드는 방식
    • 의사결정트리, SVM 등의 머신러닝 알고리즘을 이용해 평점예측모델을 만든다.

평가방법

  • 사용자 평가
    • 특정한 시점에 사용자를 초청해 추천시스템의 성능을 점검해 보는 것
    • 사용자들로부터 피드백을 받는다.
  • 온라인 평가
    • 추천시스템이 실제 환경에서 활용되고 있는 상황에서 사용자가 보여주는 행위를 보고 성능을 평가하는 방식
    • A/B 테스팅을 이용해 추천시스템의 성능을 평가한다.
  • 오프라인 평가
    • 과거의 데이터를 이용해 평가하는 방식
    • 데이터 기반의 평가이기 때문에 사용자를 초청할 필요가 없다. 


원문: http://www.oss.kr/oss_repository14/658203


노트7 소셜 반응 분석(제플린 사용)

원문: http://bcho.tistory.com/1138


데이터 스튜디오는 쿼리 사용이 불가능

상세 분석에는 노트북 계열의 어플리케이션을 써야함


제플린 설치하면 다음 prefix로 사용가능

%bigquery.sql


노트7 소셜 반응 분석 구현하기

원문: http://bcho.tistory.com/1137


실시간 분석 애플리케이션 개발

트위터 피드 분석

솔루션 아키텍처

  • twitter 
  • fluentd - 특정 키워드 기반 twitter 피드 수집
  • Pub/Sub - 피드 저장
  • DataFlow - 필요한 데이터 필터링후 Google NLP API 사용
    • Google NLP API - 명사와 형용사 분리
  • BigQuery - 30초 sliding window로 명사, 형용사 카운트를 빅쿼리에 저장
  • DataStudio




+ Recent posts