• 검색 결과가 없습니다.

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

N/A
N/A
Protected

Academic year: 2022

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

Copied!
54
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

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

• 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 (wscho@cbnu.ac.kr)

(2)

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

• 다차원 분석절차

의사결정 요구사항은 ?

관련 데이터 확보는 ?

• ETL 도구 활용

데이터 저장방법은 ?

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

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

데이터 분석 기법은 ?

• 다차원 분석

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

분석결과의 시각화 방법은 ?

• 직관적인 의사결정이 가능하도록 시각화

2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 2

(3)

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 (wscho@cbnu.ac.kr)

Q1

Jan

다차원 분석사례

다차원 모델링

- Cube 모델

(4)

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

2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 4

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

분석대상 주로 과거데이터를 분석하여 현

황을 분석하는 정적 보고서 작성 과거와 현재 데이터를 실시간 수집하여 새로운 정보를 발견하고, 가까운 미래를 예측함

데이터특성 정형 데이터 위주의 적은 데이터

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

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

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

현재 실시간으로 발생하는 데이터를 바로 수집, 연계통합, 분석함으로써 미래 예측

- 대형사고가 터지기 전에 30개의 작은 사고 가 있고, 그전에 300개 징후가 있음 (빅데이 터로 예측하자 !)

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

(참고) BA – Business Analytics

• 기존 DW & OLAP의 한계

(5)

빅데이터 분석기술

Hive(http://hadoop.apache.org/hive/)

: 빅데이터 다차원 분석

Data warehouse system으로 Hadoop compatible file systems에 저장 된 large datasets에 대하여 간편한 data summarization, ad-hoc

queries, 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 Wan-Sup Cho (wscho@cbnu.ac.kr) 5

(6)

빅데이터 분석기술

배치 분석 : Script language

2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 6

(7)

빅데이터 분석기술

Splunk

빅데이터를 빠르게 처리

2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 7

In-Memory based

multidimensional analysis system

인피니플럭스 (한국)

(8)

빅데이터 분석기술

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

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

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

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

– 다양한 분야에 적용 가능한 마이닝 기법들을 제공함

마케팅, 금융, CRM(고객관리), 생명공학 및 의학, GIS, Stream Data 등

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

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

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

2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 8

(9)

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 (wscho@cbnu.ac.kr)

(10)

빅데이터 분석기술

데이터 마이닝

데이터로부터 체계적이고 자동적으로 (통계학에서 패턴 인식에 이르 는 다양한 계량 기법을 사용하여) 규칙이나 패턴을 찾아 내는 기술

데이터 마이닝 기법은 통계학에서 발전한 탐색적자료분석, 가설 검정, 다변량 분석, 시계열 분석, 일반선형모형 등의 방법론과 데이터베이스 측면에서 발전한 OLAP (온라인 분석 처리: On-Line Analytic

Processing), 인공지능 진영에서 발전한 SOM(Self Organizing Maps), 신경망, 전문가 시스템 등의 기술적인 방법론이 사용됨

• 빅데이터 마이닝

빅데이터의 특징인 “대용량, 비정형, 실시간” 마이닝이 가능하도록 기존의 기법들을 확장함

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

2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 10

(11)

빅데이터 분석기술

데이터 마이닝 기술의 종류

분류(Classification)

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

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

군집화(Clustering)

• 어떤 특성을 공유하는 데이터 그룹을 찾음.

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

연관관계(Association)

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

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

2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 11

(12)

빅데이터 분석기술

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

순차패턴(Sequencing)

• 순차적으로 발생하는 데이터들을 찾아냄

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

예측(Forecasting)

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

• 예: 수요예측 –

텍스트 마이닝

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

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

2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 12

(13)

빅데이터 분석기술

텍스트 마이닝

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

다음과 같은 자연어 처리 기술도 필요함

형태소 분석 기술 (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 충북대학교 (wscho@cbnu.ac.kr) 13

(14)

긍부정분석

빅데이터 분석기술

응용분야

SNS 분석

테러, 범죄, 재난

조기예측에 응용됨

2016-09-30 충북대학교 (wscho@cbnu.ac.kr) 14

게시판게시판 게시판

이슈탐지모니터링 구어체전처리 형태소

분석 개체명

인식 구문

분석 감성분석

수집 관계분석 필터링

데이터소스

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

동의어

“갤럭시 3 화면이 넓어 짱이다”

“iPhone4 무게가 가벼워 좋아”

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

긍정 부정

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

화면이 크다 45%

디자인이 예쁘다 25%

크기가 작다 15%

화질이 좋다 15%

갤럭시3iPhone4

…갤3 아폰4

화면밧데리 무게화질

… 제품T

좋다넓다 크다작다 짱이다

속성T 감성단어T

Dictionary

(15)

빅데이터 시각화 (visualization)

• 시각화란 ?

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

시각화 자체가 분석의 한

• 시각화의 효과

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

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

자료를 기억하는데 기여함

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

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

2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 15

(16)

시각화의 예

• 시각화의 예

2016-09-30 16

나플레옹군이 러시아 원정에서 완패하고 모스크바로부터 프랑스로 복귀하는

이동경로 별로 그들이 겪은 추위와 병사감소를 한눈에 시각화 (샤를 미나르, 1861 제작)

Wan-Sup Cho (wscho@cbnu.ac.kr)

(17)

시각화의 예

2016-09-30 * 출처: 빅데이터를 위한 데이터 시각화 (이지선)Wan-Sup Cho (wscho@cbnu.ac.kr) 17

(18)

시각화 도구

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

Wan-Sup Cho (wscho@cbnu.ac.kr)

(19)

시각화 도구

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

Wan-Sup Cho (wscho@cbnu.ac.kr)

(20)

시각화 도구

• 시각화 도구들

엑셀, 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 Wan-Sup Cho (wscho@cbnu.ac.kr) 20

(21)

Big Data 관련기술 (요약)

2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 21

(22)

Big Data 관련기술 (요약)

2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 22

(23)

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

2016.08

충북대학교 조 완섭

비즈니스 인텔리전스

(24)

목차

• 개요

• NoSQL

등장배경

특징과 유형

NoSQL 단점

SQL/NoSQL 차이

• MongoDB

2012-11-00 24

(25)

개요

NoSQL

Not Only SQL

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

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

2016년 현재 225개가 넘는 NoSQL 제품이 출시됨

http://nosql-database.org/

2012-11-00 25

(26)

개요

NoSQL (계속)

2000년대 후반 인터넷 활성화, SNS 등이 등장하면서 비정형 데이터 를 쉽게 저장하고 처리할 수 있는 DBMS의 필요성 증대 증가 =>

NoSQL 개발 동기임

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

2012-11-00 26

(27)

NoSQL 등장배경

NoSQL 등장의 4가지 요인

빅데이터의 저장과 관리

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

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

구글 문서, 동영상 등 다양한 데이터 저장관리 필요 빠른 수집, 저장, 처리, 분석 필요성

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

수천만(억)명을 동시에 active한 상태로 서비스 뛰어난 확장성 (Scale-up)

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

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

2012-11-00 27

(28)

NoSQL 등장배경

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

2012-11-00 28

NoSQL

Relational DB

(29)

NoSQL 특징

NoSQL은 단순 검색 및 추가 작업에 대하여 뛰어난 응답속도 와 처리효율을 제공하며, 다음과 같은 특징을 가짐

관계형 모델을 사용하지 않으며 테이블 간 연결해서 조회할 수 있 는 조인 기능을 제공하지 않는 경우가 많음

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

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

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

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

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

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

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

2012-11-00 29

(30)

NoSQL 특징

• Relational DB

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

2012-11-00 30

(31)

NoSQL 특징

• Relational DB

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

– ACID 특징 : 트랜잭션을 정상적으로 처리하기 위한 4가지 요건

원자성(Atomicity)

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

일관성(Consistency)

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

고립성(Isolation)

트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보 장하는 것을 의미한다.

지속성(Durability)

성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다.

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

2012-11-00 31

(32)

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

(33)

NoSQL 활용시 고려사항

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

비용

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

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

지원

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

제한된 질의어

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

데이터 모델링

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

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

2012-11-00 33

(34)

NoSQL 유형 (5가지)

2012-11-00 34

출처http://highlyscalable.wordpress.com

(35)

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 형태

(36)

NoSQL 유형

2012-11-00 36

BigTable 방식

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

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

(37)

NoSQL 유형

2012-11-00 37

Document 방식

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

MongoDB, CouchDB, ElasticSearch 등

(38)

NoSQL 유형

Graph databases

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

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

2012-11-00 38

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

Relational DB ?

?

Graph DB ?

(39)

NoSQL 유형

• Graph DB 예제

2012-11-00 39

SNS 데이터

저장관리에 유용함

(40)

NoSQL 유형

• Graph DB 사례 – Gene Ontology

2012-11-00 40

(41)

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

(42)

SQL – NoSQL 차이

Database Types

SQL: SQL database들은 표준화되어 있으며, 제품마다 minor differences 만 존재함

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

(43)

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

(44)

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

(45)

MongoDB

(46)

개요

MongoDB는 문서지향 데이터베이스

관계형 DB의 행 대신에 문서(document) 개념을 사용함

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

핵심 개념

Database

Collection의 모음임

Collection

Relational model의 table에 해당하는 개념으로 document 들의 모음임 효과적인 관리를 위해 유사한 구조의 문서들을 하나의 collection으로 모음

Document

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

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

2012-11-00 46

(47)

MongoDB - 복제구조

Availability 확보방안

MongoDB의 high availability (안정성)는 replica set을 통해 달성

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

2012-11-00 47

message

(48)

MongoDB - Sharding

Sharding (샤딩설정)

데이터를 분할해서 여러 시스템에 저장하는 방식

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

2012-11-00 48

(49)

MongoDB

• MongoDB 설치와 간단한 활용

설치 : 유튜브 동영상 참고

• https://www.youtube.com/watch?v=IXBdX3IiQbM –

MongoDB GUI tool

• MongoBooster : 최근에 개발된 제품으로 GUI 를 활용하여

MongoDB를 편리하게 활용할 수 있도록 함 (비상용인 경우 무료)

• RDB와 MongoDB 비교

2012-11-00 49

MongoDB : SQL

Database

:

database collection

:

table

document

:

row field

: : -

key:value}

: -

(50)

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 movies

switched to db movies

> use scores

> db.dropDatabase()

{"dropped" : "scores", "ok" : 1 }

> show collections ( 혹은)

> db.getCollectionNames()

(51)

MongoDB

데이터베이스 (자동) 생성

MongoDB에서는 create database 명령을 사용할 필요가 없음;

database를 선택하면서 기 생성된 databas가 아니라면 바로 MongoDB에서 해당 database를 생성함

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

• Create/Add data in MongoDB

2012-11-00 51

> use movies

switched 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})

(52)

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

(53)

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})

(54)

MongoDB

• 수많은 도서

교보문고 검색

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

Mongodb and Python : Patterns and Processes for the Popular Document-Oriented Database

2012-11-00 54

참조

관련 문서

제4장

업무 시스템의 이벤트 로그 데이터를 분석하여 실제 프로세스를 도출하고, 프로세스 개선을 지원하는 프로세스 마이닝 기반

향후 전문화·전업화된 농가 비중이 높아 짐에도 불구하고, 대부분의 중소농들은 관행적 농업을 수행할 것이므로 농 업소득 이외의 다양한 소득원이 개발되어야 하며,

• 분석 이미지 데이터 저장 효율 제고를 위한

• 모든 데이터 암호화, 보안 패치 자동 적용. • 자동

지역냉방 냉방용량당(RT) 전력피크 감소 효과와 발전설비 회피비용 산정 지역 냉난방 설비의 열전비율 분석 하절기 냉방부하율 분석.

그림 찬드림 성근식품 젓갈 패키지디자인

발명 영재교육 프로그램의 교육체제론적 분석.. 발명영재교육프로그램