54
비즈니스 인텔리전스 - 다차원 분석 Data Warehouse(DW), OLAP DW : 의사결정용 데이터베이스 OLAP (On-line Analytical Processing)은 data warehouse 상에서 온라 인 다차원 분석처리를 지원하는 도구 2016-09-30 1 재무 인사 ETL 데이터 웨어하우스 업무용 DB 일반사원 일상업무지원 최고경영자 의사결정지원 외부 DBMS OLAP Extraction Transformation Loading (Integration) Wan-Sup Cho ([email protected])

비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

비즈니스 인텔리전스 - 다차원 분석

• Data Warehouse(DW), OLAP– DW : 의사결정용 데이터베이스

– OLAP (On-line Analytical Processing)은 data warehouse 상에서 온라인 다차원 분석처리를 지원하는 도구

2016-09-30 1

재무

인사

ETL

데이터웨어하우스업무용

DB

일반사원일상업무지원

최고경영자의사결정지원

외부

DBMS OLAP

ExtractionTransformation

Loading (Integration)

Wan-Sup Cho ([email protected])

Page 2: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

비즈니스 인텔리전스 - 다차원 분석

• 다차원 분석절차

– 의사결정 요구사항은 ?

– 관련 데이터 확보는 ?• ETL 도구 활용

– 데이터 저장방법은 ?• 수집된 데이터를 어떠한 구조로 저장하는가 ?

• 큐브 모델 / 스타 스키마 형태로 저장함; 다양한 분석이 용이함

– 데이터 분석 기법은 ?• 다차원 분석

• 데이터 마이닝과 통계 분석

– 분석결과의 시각화 방법은 ?• 직관적인 의사결정이 가능하도록 시각화

2016-09-30 Wan-Sup Cho ([email protected]) 2

Page 3: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

25M 30M 20M 11M 21M

North

South

20

Cube수백개 cubes

비즈니스 인텔리전스 - 다차원 분석

2016-09-30 3

매출액$500억

Roll-up Drill-down

년도별 매출액은 ?2003년 분기별 매출액은 ?2003년 1분기 월별 매출액은 ?도시별 매출액은 ?North/South 지역별 매출액은 ?Dallas 지역의 Product E에 대한 2003년 분기별 매출액은 ?도시별로 2003년 월별 매출액은 ?제품별, 년도별 매출액은 ?

… (수많은 분석)

다차원분석

Wan-Sup Cho ([email protected])

Q1

Jan

다차원 분석사례

다차원 모델링- Cube 모델

Page 4: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

비즈니스 인텔리전스 - 다차원 분석

2016-09-30 Wan-Sup Cho ([email protected]) 4

기존 DW & OLAP 분석 (BI) 빅데이터 분석 (BA)

분석대상 주로 과거데이터를 분석하여 현황을 분석하는 정적 보고서 작성

과거와 현재 데이터를 실시간 수집하여새로운 정보를 발견하고, 가까운 미래를예측함

데이터특성

정형 데이터 위주의 적은 데이터를 기존 컴퓨터에서 저장, 처리

다양한 유형의 데이터 (문서, SNS, IoT, 오디오, 동영상 등)를 클라우드 등에 분산저장, 분산처리함

분석특성

온라인, 다차원 분석위주 데이터마이닝, 통계기법, 기계학습 등 심화분석과 가시화 중요

분석의 예 과거 수년간 매출정보를 분석하여 지역, 시간, 제품, 고객별로 매출을 집계함 (다차원 분석)

현재 실시간으로 발생하는 데이터를 바로수집, 연계통합, 분석함으로써 미래 예측- 대형사고가 터지기 전에 30개의 작은 사고

가 있고, 그전에 300개 징후가 있음 (빅데이터로 예측하자 !)

- SNS, 블로그 등에 올라오는 고객불만을 실시간으로 분석하면 적절한 대처가 가능함(참고) BA – Business Analytics

• 기존 DW & OLAP의 한계

Page 5: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

빅데이터 분석기술

• Hive(http://hadoop.apache.org/hive/) : 빅데이터 다차원 분석

– Data warehouse system으로 Hadoop compatible file systems에 저장된 large datasets에 대하여 간편한 data summarization, ad-hocqueries, analysis 기능을 제공함 (OLAP)

– SQL-like 언어로 하둡상에서 맵리듀스 처리를 간단하게 작성, 실행할수 있는 툴

– Open source (Apache License), ANSI SQL 지원

– Facebook의 Main Data Warehousing System으로 활용됨

• Pig(http://hadoop.apache.org/pig/)– 스크립트 언어 형태로 MapReduce 프로그램을 개발할 수 있는 플랫폼으로 현재 Hadoop의 서브 프로젝트

– Cascading과 유사하게 고수준의 처리를 위한 쉬운 문법을 제공하며스크립트 형태이기 때문에 빠른 프로그래밍 및 피드백이 가능함(Yahoo에서 주도적으로 개발)

2016-09-30 5Wan-Sup Cho ([email protected])

Page 6: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

빅데이터 분석기술

• 배치 분석 : Script language

2016-09-30 6Wan-Sup Cho ([email protected])

Page 7: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

빅데이터 분석기술

• Splunk

– 빅데이터를 빠르게 처리

2016-09-30 Wan-Sup Cho ([email protected]) 7

In-Memory basedmultidimensional analysis system

인피니플럭스 (한국)

Page 8: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

빅데이터 분석기술

• R 언어 – SAS, SPSS의 대안으로 급성장

– 데이터를 다루고 분석하는데 특화된 언어

– 통계분석 (마이닝) 및 시각화를 위한 언어 혹은 개발환경으로오픈 소스임

– 수천가지 라이브러리를 사용하여 기본적인 통계분석 기법부터모델링, 최신 데이터 마이닝 기법까지 구현/개선이 가능

– 다양한 분야에 적용 가능한 마이닝 기법들을 제공함• 마케팅, 금융, CRM(고객관리), 생명공학 및 의학, GIS, Stream Data 등

– Java, C/C++, Python 등 다른 프로그래밍 언어와의 연결 용이

– 빅데이터 분석이 필요한 조직에서 대용량 데이터 통계분석과데이터 마이닝을 위한 솔루션으로 정착되고 있음

• 예: 약 30 라인으로 SNS (Twitter) 분석에서 시각화까지 구현할 수 있음

2016-09-30 8Wan-Sup Cho ([email protected])

Page 9: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

2016-09-30 9

library(twitteR)library(KoNLP)library(wordcloud)library(tm)gogamza <- getUser("gogamza")gogamza.followers <- gogamza$getFollowers()

#팔로워들의 자기 소개를 벡터에 적재 한다.followerDesc <- c()for(i in gogamza.followers){followerDesc <- append(followerDesc, i$description)

}#쓸모없는 문자들을 제거한다.followerDesc <- gsub("\n","", followerDesc)followerDesc <- gsub("\r", "", followerDesc)nouns <- Map(extractNoun, followerDesc)wordsvec <- unlist(nouns, use.name=F)#쓸모없는 문자들을 제거한다. 특히 영문자의 경우 tm의 stopwords를 활용한다.wordsvec <- wordsvec[-which(wordsvec %in% stopwords("english"))]wordsvec <- gsub("[[:punct:]]","", wordsvec)wordsvec <- Filter(function(x){nchar(x)>=2}, wordsvec)wordcount <- table(wordsvec)pal <- brewer.pal(8,"Dark2")wordcloud(names(wordcount),freq=wordcount,scale=c(4,0.5),min.freq=10,

random.order=T,rot.per=.1,colors=pal)

Example : R을 사용한 트위터 팔로워 분석과 결과 : 단 20여 line으로 결과생성 !

R 언어

Wan-Sup Cho ([email protected])

Page 10: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

빅데이터 분석기술

• 데이터 마이닝– 데이터로부터 체계적이고 자동적으로 (통계학에서 패턴 인식에 이르

는 다양한 계량 기법을 사용하여) 규칙이나 패턴을 찾아 내는 기술

– 데이터 마이닝 기법은 통계학에서 발전한 탐색적자료분석, 가설 검정,

다변량 분석, 시계열 분석, 일반선형모형 등의 방법론과 데이터베이스

측면에서 발전한 OLAP (온라인 분석 처리: On-Line Analytic

Processing), 인공지능 진영에서 발전한 SOM(Self Organizing Maps),

신경망, 전문가 시스템 등의 기술적인 방법론이 사용됨

• 빅데이터 마이닝– 빅데이터의 특징인 “대용량, 비정형, 실시간” 마이닝이 가능하도록

기존의 기법들을 확장함

– IoT/M2M 등의 보편화로 Stream Data Mining 기술의 필요성 증대

2016-09-30 10Wan-Sup Cho ([email protected])

Page 11: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

빅데이터 분석기술

• 데이터 마이닝 기술의 종류– 분류(Classification)

• 일정한 데이터 집단에 대한 특성 정의를 기준으로 분류함

• 예: 경쟁자에게로 이탈한 고객들을 분류함

– 군집화(Clustering)• 어떤 특성을 공유하는 데이터 그룹을 찾음.

• 군집화는 미리 정의된 특성에 대한 정보를 갖지 않는다는 점에서분류와 구분됨 (예 : 유사 행동 집단의 구분)

– 연관관계(Association)• 관련이 있는 (동시에 발생하는) 데이터들을 찾아냄

• 예: 장바구니에서 함께 구매되는 상품들

2016-09-30 11Wan-Sup Cho ([email protected])

Page 12: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

빅데이터 분석기술

• 데이터 마이닝 기술의 종류 (계속)

– 순차패턴(Sequencing)• 순차적으로 발생하는 데이터들을 찾아냄

• 예: 비디오 대여 순서정보

– 예측(Forecasting)• 대용량 데이터 집합내의 패턴을 기반으로 미래를 예측

• 예: 수요예측

– 텍스트 마이닝• 자연어 처리 기술을 기반으로 텍스트의 의미를 자동으로 파악함

• 예: SNS 기반의 고객감성 분석

2016-09-30 12Wan-Sup Cho ([email protected])

Page 13: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

빅데이터 분석기술

• 텍스트 마이닝– 텍스트 기반의 데이터(문서)로부터 새로운 정보를 발견하는 기술

– 다음과 같은 자연어 처리 기술도 필요함• 형태소 분석 기술 (morpheme processing technique)

• 구문 분석 기술 (syntactic processing technique)

• 문맥 처리 기술 (context processing technique)

• 의미 처리 기술 (semantic processing technique)

• 문장 합성 기술 (sentence generation technique)

• 관련분야– Data Mining : 데이터로부터 새로운 패턴이나 지식 발견

– Web Mining : 웹 상의 데이터를 분석하여 지식을 발견하는 기술

– Statistics : 통계학

– Information Retrieval : 정보 검색

– Computational Linguistic & NLP : 자연 언어 분석 및 활용 학문

2016-09-30 충북대학교 ([email protected]) 13

Page 14: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

긍부정분석

빅데이터 분석기술

• 응용분야

– SNS 분석

– 테러, 범죄, 재난

조기예측에 응용됨

2016-09-30 충북대학교 ([email protected]) 14

게시판게시판게시판

이슈탐지모니터링구어체

전처리형태소분석

개체명인식

구문분석

감성분석관계분석

수집필터링

소스데이터

사전(개체명,감성단어),동의어

“갤럭시 3 화면이 넓어 짱이다”“iPhone4 무게가 가벼워 좋아”

….갤럭시3/화면/넓다/좋다”

긍정 부정갤럭시3 30,599 1,500iPhone4 56,456 3,500

화면이 크다 45%디자인이 예쁘다 25%크기가 작다 15%화질이 좋다 15%

갤럭시3iPhone4…갤3아폰4

화면밧데리무게화질…

제품T

좋다넓다크다작다짱이다

속성T 감성단어T

Dictionary

Page 15: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

빅데이터 시각화 (visualization)

• 시각화란 ?

– 방대한 양의 자료를 분석해서 한눈에 볼 수 있도록 도표나 차트 등으로 정리하는 것

– 시각화 자체가 분석의 한

• 시각화의 효과

– 데이터로부터 정보를 습득하는 시간의 절감으로 즉각적인상황판단이 가능해짐

– 자료를 습득하는 사람의 흥미유발과 빠른 확산 촉진

– 자료를 기억하는데 기여함

• 뉴욕 타임스 (유권자 분석)

– http://www.nytimes.com/interactive/2012/11/11/sunday-review/counties-moving.html?_r=0

2016-09-30 15Wan-Sup Cho ([email protected])

Page 16: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

시각화의 예

• 시각화의 예

2016-09-30 16

나플레옹군이 러시아 원정에서 완패하고 모스크바로부터 프랑스로 복귀하는이동경로 별로 그들이 겪은 추위와 병사감소를 한눈에 시각화 (샤를 미나르, 1861 제작)

Wan-Sup Cho ([email protected])

Page 17: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

시각화의 예

2016-09-30 17* 출처: 빅데이터를 위한 데이터 시각화 (이지선)Wan-Sup Cho ([email protected])

Page 18: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

시각화 도구

2016-09-30 18* 출처: 빅데이터를 위한 데이터 시각화 (이지선)

Wan-Sup Cho ([email protected])

Page 19: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

시각화 도구

2016-09-30 19* 출처: 빅데이터를 위한 데이터 시각화 (이지선)

Wan-Sup Cho ([email protected])

Page 20: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

시각화 도구

• 시각화 도구들

– 엑셀, CVS/JSON, 구글차트 API, Flot, Rapheal, D3 (Data-Driven Documents), Visual.ly, NodeBo, R, Weka, Gephi

• 매핑 (지도) 도구

– Modest Maps, Leaflet, Polymaps, OpenLayers,Kartograph, CartoDB

2016-09-30 20Wan-Sup Cho ([email protected])

Page 21: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

Big Data 관련기술 (요약)

2016-09-30 21Wan-Sup Cho ([email protected])

Page 22: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

Big Data 관련기술 (요약)

2016-09-30 22Wan-Sup Cho ([email protected])

Page 23: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

빅데이터 저장관리를 위한 DBMSNoSQL – Not Only SQL

2016.08

충북대학교 조 완섭

비즈니스 인텔리전스

Page 24: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

목차

• 개요

• NoSQL

– 등장배경

– 특징과 유형

– NoSQL 단점

– SQL/NoSQL 차이

• MongoDB

2012-11-00 24

Page 25: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

개요

• NoSQL– Not Only SQL

– 기존 관계형 DBMS가 갖고 있는 특성을 포함하여 추가적인 특성들을지원한다는 의미

– 기존의 관계형 데이터베이스 시스템의 주요 특성인 ACID(Atomic,Consistency, Integrity, Duarabity) 특성을 제공하지 않는(read-only), 그렇지만 뛰어난 확장성과 성능을 제공하는 비관계형, 분산DBMS

– 2016년 현재 225개가 넘는 NoSQL 제품이 출시됨• http://nosql-database.org/

2012-11-00 25

Page 26: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

개요

• NoSQL (계속)– 2000년대 후반 인터넷 활성화, SNS 등이 등장하면서 비정형 데이터를 쉽게 저장하고 처리할 수 있는 DBMS의 필요성 증대 증가 =>NoSQL 개발 동기임

– NoSQL은 빅데이터라고 하는 새로운 데이터베이스 시장을 개척하고있음; 기존의 데이터는 여전히 관계형 데이터베이스로 처리하는 것이최적임; 특히 기업의 ERP나, MIS 시스템 등 데이터의 정확한 처리가필수적인 시스템에서는 앞으로도 그러할 것임

2012-11-00 26

Page 27: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 등장배경

• NoSQL 등장의 4가지 요인– 빅데이터의 저장과 관리

• 한 대의 컴퓨터에 저장할 수 없을 정도로 큰 데이터

• 클라우드/하둡 등에 저장된 데이터의 관리 필요성

– 비정형 데이터

• 구글 문서, 동영상 등 다양한 데이터 저장관리 필요

– 빠른 수집, 저장, 처리, 분석 필요성

– 수많은 사용자 지원 (구글, 페이스북 등)

• 수천만(억)명을 동시에 active한 상태로 서비스

– 뛰어난 확장성 (Scale-up)

• 응용 프로그램의 변화없이 필요한 만큼의 하드웨어 추가 가능 (클라우드)

• NoSQL => “Cloud DB”라고도 부름

2012-11-00 27

Page 28: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 등장배경

• RDB vs. NoSQL 데이터 분담 추세

2012-11-00 28

NoSQL

Relational DB

Page 29: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 특징

• NoSQL은 단순 검색 및 추가 작업에 대하여 뛰어난 응답속도와 처리효율을 제공하며, 다음과 같은 특징을 가짐– 관계형 모델을 사용하지 않으며 테이블 간 연결해서 조회할 수 있는 조인 기능을 제공하지 않는 경우가 많음

– 제한된 SQL 지원 : 데이터 조회를 위해 직접 프로그래밍 필요

– 하나의 DB가 여러 데이터베이스 서버 (클러스터링) 상에서 동작

– 관계형 데이터베이스에서는 지원하는 데이터 처리 완결성(Transaction ACID 지원) 미 보장 => CAP 기반임

– 데이터의 스키마와 속성들을 다양하게 수용하고 동적으로 정의할 수있음 (Schemaless)

– 데이터베이스의 중단 없는 서비스와 자동 복구 기능 지원

– 대다수의 제품이 Open Source로 제공

– 대다수의 제품이 고확장성, 고가용성, 고성능 특성을 가짐

2012-11-00 29

Page 30: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 특징

• Relational DB

– 모든 데이터를 테이블(들)에 저장하고 관리함

2012-11-00 30

Page 31: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 특징

• Relational DB– ACID 특성을 보장함으로써 데이터베이스 트랜잭션이 안전하게수행됨을 보장함

– ACID 특징 : 트랜잭션을 정상적으로 처리하기 위한 4가지 요건• 원자성(Atomicity)

– 트랜잭션과관련된작업들이부분적으로실행되다가중단되지않는것을보장하는능력이다 (all or nothing)

• 일관성(Consistency)– 트랜잭션이실행을성공적으로완료하면언제나일관성있는데이터베이스상태로유지하는것을의미한다.

• 고립성(Isolation)– 트랜잭션을수행시다른트랜잭션의연산작업이끼어들지못하도록보장하는것을의미한다.

• 지속성(Durability)– 성공적으로수행된트랜잭션은영원히반영되어야함을의미한다.

– NoSQL은 ACID 성질을지원하지않음 => CAP 이론에기반

2012-11-00 31

Page 32: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 특징

• CAP 이론 : 분산 혹은 확장형 시스템을 위한 성질– Consistency : 모든 노드가 동시에 동일한 데이터를 조회함을 보장함

– Availability : 성공 또는 실패를 막론하고 모든 요청에 대한 응답 보장

– Partition Tolerance : 미리 예측할 수 없는 데이터 손실 또는 시스템구성요소 중 일부의 실패에도 전체 시스템은 항상 정상 작동을 보장

• NoSQL 시스템들은 CAP 중에서 2개 성질을 만족하도록 구성– CP 유형 : 데이터 무결성을 만족시킴

• MongoDB, Hbase등

– AP 유형 : 성능을 위해 무결성을 희생시키는 방식

• Cassandra, CouchDB 등

– 실제로 CA 유형은 많지 않음

• GraphDB : Neo4j, FlockDB 등

• HP의 Vertica

2012-11-00 32

Page 33: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 활용시 고려사항

• NoSQL 도입시 예상되는 리스크– 비용

• 오픈소스를 주로 활용하지만 충분한 CPU 코어수, 메인 메모리와하드 디스크 등을 필요로 하는 경우가 많으므로 고비용

• 복합적인 서버의 호스팅과 운영 비용도 필요함

– 지원• 상용 솔루션의 경우 전화 한통으로 해결되는 것이 시간과 비용을들여 해결해야 하는 경우도 있음

– 제한된 질의어• SQL과 조인 등의 연산을 지원하지 않은 경우가 많음

– 데이터 모델링• 컬럼 디자인 등 데이터 모델링이 NoSQL 성능에 직접적인 영향을미치므로 관계 DB 모델링과는 다른 전문성이 필요함

– 제품이 너무 다양하여 적합한 제품 선정이 어려움

2012-11-00 33

Page 34: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 유형 (5가지)

2012-11-00 34

출처http://highlyscalable.wordpress.com

Page 35: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 유형

• Key-value DB– 데이터를 Key (고유한 값)와 Value의 쌍으로 저장하는 유형

– 특정 Key를 기준으로 랜덤 액세스할 때 유용하지만 Key 들 사이에연속성이 없어 range scan시 성능 저하 가능성이 있음

– SimpleDB, Dynamo, Riak, Redis 등의 제품

• Ordered Key-value DB– Key 들 사이에 연속성을 주어 range scan 시 성능을 개선함

– 디스크에 Key-Value 쌍들을 순차적으로 저장함

– BerkeleyDB, Tokyo Cabinot 등

2012-11-00 35

Value는Binary 혹는 Text 형태

Page 36: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 유형

2012-11-00 36

• BigTable 방식– Key-value 방식에서 Value 부분을 2~3단계의 구조화된 값을 저장할수 있도록 확장함

– 구글이 발표한 논문에서 출발했으며, HBase, Cassandra 등의 제품에이 방식에 해당함

Page 37: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 유형

2012-11-00 37

• Document 방식– Value 부분에 문서 (JSON, XML 유형)를 저장하는 방식으로 Value 부분에 데이터 구조는 깊이 제한이 없음

– MongoDB, CouchDB, ElasticSearch 등

Page 38: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 유형

• Graph databases– 실세계 정보를 표현하기 위해 노드, 에지, 속성 등을 포함한 그래프 구조를 사용하는 데이터베이스 [Wikipedia]

– 종류 : Neo4j, Allegrograph (RDF를 저장용 그래프 DB)

2012-11-00 38

(출처) http://tech.kakao.com/

Relational DB ?

?

Graph DB ?

Page 39: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 유형

• Graph DB 예제

2012-11-00 39

SNS 데이터저장관리에 유용함

Page 40: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 유형

• Graph DB 사례 – Gene Ontology

2012-11-00 40

Page 41: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

NoSQL 단점

• Narrow Focus– NoSQL databases는 다양한 기능보다는 빅데이터 저장에 중점을 둠;예를들어 트랜잭션 기능이 필요한 경우에는 맞지 않음

• Open-source– 오픈소스는 장점도 있지만 신뢰성, 사용 편의성 등의 측면에서 단점도 있음; 특히 표준 SQL 등이 없으므로 상호 비교하거나 호환성에 한계가 있음

• Management Challenge– NoSQL은 빅데이터를 가능한 간단하게 관리할 수 있도록 지원하지만 하부 시스템의 복잡도로 인해 관리가 복잡함 (RDBMS보다)

• GUI is not Available– NoSQL을 위한 편리한 GUI가 부족함

• Backup– 데이터베이스 벡업 기능이 부족함; 특히 MongoDB

• Large Document Size– MongoDB나 CouchDB는 데이터를 JSON (document) format 으로 저장하며, 크기에 제한이 있음 (default = 16M, 크기를 늘릴 수 있으나 늘리는연산이 매우 느림)

2012-11-00 41

Page 42: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

SQL – NoSQL 차이

• Database Types– SQL: SQL database들은 표준화되어 있으며, 제품마다 minordifferences 만 존재함

– NoSQL: 4가지 유형으로 구분됨, Key-Value pair, Column Based,Document Type and Graph database.

• Schemas– SQL: SQL database는 엄격한 스키마를 기반으로 구축됨 (데이터베이스 구조와 데이터 타입이 미리 정의된 후에 데이터 입력이 가능함)

– NoSQL: NoSQL은 schema-less database이므로 미리 구조를 정의할필요가 없고, 다른 구조의 데이터를 함께 저장할 수도 있음

2012-11-00 42

Page 43: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

SQL – NoSQL 차이

• Scaling– SQL: SQL database는 scaling up (vertical) 방식으로 확장이 가능함;즉 CPU, 메모리, 하드 디스크를 추가하는 방식으로 확장하게 됨

– NoSQL : NoSQL database는 scaling out 방식으로 확장가능; 즉, 기존 시스템에 new node (server)를 추가하고, 부하를 전체 노드들로분산시키는 방식으로 확장함

• Data Manipulation– SQL: 표준화된 명령어인 Select, Insert, Update, Delete 등으로 데이터를 조작함

– NoSQL: Object Oriented APIs (MongoDB의 경우,db.collection_name.find(), db.collection_name.remove())를 사용하여데이터 조작하며, No standard SQL

2012-11-00 43

Page 44: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

SQL – NoSQL 차이

• Transaction Management– SQL: SQL databases는 트랜잭션의 ACID 성질을 지원하며, 수준높은 데이터베이스 consistency를 보장

– NoSQL: 트랜잭션 개념을 지원하지 않거나 일부만 지원하며, 제품에 따라 차등적임

• Development Model– SQL: 오픈소스와 상용제품이 혼재함

– NoSQL: open-source 제품임

• Replication– SQL: SQL databases 에서 Replication은 상당히 어려운 작업임 (scale up 방식이므로)

– NoSQL: NoSQL 은 automatic replication을 지원함 (scale out 방식이므로)

2012-11-00 44

Page 45: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

MongoDB

Page 46: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

개요

• MongoDB는 문서지향 데이터베이스– 관계형 DB의 행 대신에 문서(document) 개념을 사용함

– 해외에서 꾸준한 투자를 바탕으로 개선이 이루어지고 있으며, 최근에는 금융권에서의 도입사례로 이어지고 있음

– 핵심 개념

• Database

– Collection의 모음임

• Collection

– Relational model의 table에 해당하는 개념으로 document 들의 모음임

– 효과적인 관리를 위해 유사한 구조의 문서들을 하나의 collection으로 모음

• Document

– Relational model의 raw에 해당하는 개념으로 정렬된 key-value 의 집합임

• Extent 는 데이터가 저장되는 논리적인 단위임

2012-11-00 46

Page 47: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

MongoDB - 복제구조

• Availability 확보방안– MongoDB의 high availability (안정성)는 replica set을 통해 달성

– 즉, 데이터 일관성을 위해 모든 변경은 primary DB로 요청되고, 비동기적으로 다른 secondary DB들로 복제됨

2012-11-00 47

message

Page 48: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

MongoDB - Sharding

• Sharding (샤딩설정)– 데이터를 분할해서 여러 시스템에 저장하는 방식

– Scale-out 방식으로 확장성을 실현하는 주요 기술

2012-11-00 48

Page 49: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

MongoDB

• MongoDB 설치와 간단한 활용

– 설치 : 유튜브 동영상 참고• https://www.youtube.com/watch?v=IXBdX3IiQbM

– MongoDB GUI tool• MongoBooster : 최근에 개발된 제품으로 GUI 를 활용하여MongoDB를 편리하게 활용할 수 있도록 함 (비상용인 경우 무료)

• RDB와 MongoDB 비교

2012-11-00 49

MongoDB : SQLDatabase : databasecollection : tabledocument : rowfield : : -key:value} : -

Page 50: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

MongoDB

• MongoDB 활용하기– MongoDB 서버 실행 (설치후 도스 실행창에서)

$ mongd

– MongoDB 클라이언트 - 서버 연결(설치후 도스 실행창에서)

$ mongo

– MongDB에 생성된 DB list 보기

> show dbs

bands 0.203125GB

movies (empty)

scores (empty)

– Database내의 collections 보기

2012-11-00 50

> use moviesswitched to db movies> use scores> db.dropDatabase(){"dropped" : "scores", "ok" : 1 }

> show collections (혹은)> db.getCollectionNames()

Page 51: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

MongoDB

• 데이터베이스 (자동) 생성– MongoDB에서는 create database 명령을 사용할 필요가 없음;database를 선택하면서 기 생성된 databas가 아니라면 바로MongoDB에서 해당 database를 생성함

– 아래에서 movies DB가 자동생성될 뿐 아니라 comedy 콜렉션 (테이블)까지 자동생성되고, document (레코드)가 insert 됨 =>schemaless

• Create/Add data in MongoDB

2012-11-00 51

> use moviesswitched to db movies> db.comedy.insert({name:”The MongoDB”, year:2016})

> db.comedy.insert({name:"Wayne's World", year:1992})> db.comedy.insert({name:'The School of Rock', year:2003})

Page 52: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

2012-11-00 52

db.users.insertMany([

{_id: 1,name: "sue",age: 19,type: 1,status: "P",favorites: { artist: "Picasso", food: "pizza" },finished: [ 17, 3 ],badges: [ "blue", "black" ],points: [

{ points: 85, bonus: 20 },{ points: 85, bonus: 10 }]

},{_id: 2,name: "bob",age: 42,type: 1,status: "A",favorites: { artist: "Miro", food: "meringue" },finished: [ 11, 25 ], badges: [ "green" ],points: [

{ points: 85, bonus: 20 },{ points: 64, bonus: 12 }]

}]

);

MongoDB

users 컬렉션은다수의 속성을 가지며각 속성은 다양한 유형으로정의되어 있음

Document

Page 53: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

MongoDB

• Read/update data from MongoDB

2012-11-00 53

> db.comedy.find()> db.comedy.find().limit(2)> db.comedy.findOne()> db.comedy.find({year:{$lt:1994}})> db.comedy.find({year:1992})> db.comedy.find({year:{'$lt':1994}}, {name:true})> db.comedy.update({name:"Bill & Ted's Excellent Adventure> db.comedy.count({})> db.comedy.count({year:{$gt:1990})

Page 54: 비즈니스인텔리전스-다차원분석contents.kocw.net/KOCW/document/2016/chungbuk/chowanseop/5-1.pdf · 비즈니스인텔리전스-다차원분석 •DataWarehouse(DW),OLAP

MongoDB

• 수많은 도서

– 교보문고 검색

• Python 등 프로그래밍 언어와 통합된 사용방법

– Mongodb and Python : Patterns and Processes for thePopular Document-Oriented Database

2012-11-00 54