Microsoft PowerPoint - 4주차.pptx

Similar documents
슬라이드 1

Microsoft PowerPoint - 3주차.pptx

슬라이드 1

빅데이터_DAY key

PowerPoint 프레젠테이션

DBMS & SQL Server Installation Database Laboratory

NoSQL

Intra_DW_Ch4.PDF

DB진흥원 BIG DATA 전문가로 가는 길 발표자료.pptx

Microsoft PowerPoint - CNVZNGWAIYSE.pptx

CONTENTS Volume 테마 즐겨찾기 빅데이터의 현주소 진일보하는 공개 기술, 빅데이터 새 시대를 열다 12 테마 활동 빅데이터 플랫폼 기술의 현황 빅데이터, 하둡 품고 병렬처리 가속화 16 테마 더하기 국내 빅데이터 산 학 연 관

MySQL-.. 1

Microsoft Word - th1_Big Data 시대의 기술_ _조성우

김기남_ATDC2016_160620_[키노트].key

DW 개요.PDF

비식별화 기술 활용 안내서-최종수정.indd

5 주차 -mongodb 설치잠깐! CAP 이론 NoSQL이나온이유와 MongoDB NoSQL의데이터저장구조에따른세가지분류 RDBMS와 NoSQL특성비교 RDBMS와 NoSQL의사용시기 MongoDB 소개및특징 MongoDB와 RDBMS와의공통 MongoDB CRUD

ETL_project_best_practice1.ppt

KCC2011 우수발표논문 휴먼오피니언자동분류시스템구현을위한비결정오피니언형용사구문에대한연구 1) Study on Domain-dependent Keywords Co-occurring with the Adjectives of Non-deterministic Opinion

Ubiqutious Pubilc Access Reference Model

Cover Story Oracle Big Data Vision 01_Big Data의 배경 02_Big Data의 정의 03_Big Data의 활용 방안 04_Big Data의 가치

빅데이터분산컴퓨팅-5-수정

Cloud Friendly System Architecture

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤


[Brochure] KOR_TunA

Tablespace On-Offline 테이블스페이스 온라인/오프라인

ecorp-프로젝트제안서작성실무(양식3)

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

RED HAT JBoss Data Grid (JDG)? KANGWUK HEO Middleware Solu6on Architect Service Team, Red Hat Korea 1

Oracle Apps Day_SEM

Portal_9iAS.ppt [읽기 전용]

歯목차45호.PDF

초보자를 위한 분산 캐시 활용 전략

초보자를 위한 ADO 21일 완성

CRM Fair 2004

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

2017 1

금오공대 컴퓨터공학전공 강의자료

출원국 권 리 구 분 상 태 권리번호 KR 특허 등록

슬라이드 제목 없음

I. - II. DW ETT Best Practice

PowerPoint Presentation

RUCK2015_Gruter_public

빅데이터시대 Self-BI 전략 이혁재이사 비아이씨엔에스

Chapter 5 비즈니스인텔리젼스의기초 : 데이터베이스와정보관리

dbms_snu.PDF

Microsoft PowerPoint - 10Àå.ppt

Service-Oriented Architecture Copyright Tmax Soft 2005

슬라이드 1

Microsoft PowerPoint Python-DB

PowerPoint 프레젠테이션

놀이동산미아찾기시스템

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

歯CRM개괄_허순영.PDF

빅데이터처리의핵심인 Hadoop 을오라클은어떻게지원하나요? Oracle Big Data Appliance Solution 01 빅데이터처리를위한전문솔루션이 Oracle Big Data Appliance 군요. Oracle Big Data Appliance 와함께라면더이

PowerPoint Presentation

lecture01

Spring Boot/JDBC JdbcTemplate/CRUD 예제

자연언어처리

쉽게 풀어쓴 C 프로그래밊

wtu05_ÃÖÁ¾

Windows 8에서 BioStar 1 설치하기

I I-1 I-2 I-3 I-4 I-5 I-6 GIS II II-1 II-2 II-3 III III-1 III-2 III-3 III-4 III-5 III-6 IV GIS IV-1 IV-2 (Complement) IV-3 IV-4 V References * 2012.

JVM 메모리구조

Microsoft PowerPoint - 사본 - OAS09-사무자동화 기술(DB).ppt

REDIS 이해와 활용

<BFACB1B85F D333728BCDBC5C2B9CE295FC3D6C1BEC8AEC1A45FC0CEBCE2BFEB B8F1C2F7BCF6C1A42E687770>

정보기술응용학회 발표

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

위세아이텍_iOLAP_

10.ppt

PowerPoint 프레젠테이션

Microsoft Word - 조병호

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

슬라이드 1

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Microsoft PowerPoint - chap01-C언어개요.pptx

IBM Business Intelligence Solution Seminar 2005 Choose the Right Data Integration Solution ; Best Practices on EII/EAI/ETL IBM DB2 Technical Sales BI

Basic Template

DocsPin_Korean.pages

PowerPoint 프레젠테이션

untitled

Model Investor MANDO Portal Site People Customer BIS Supplier C R M PLM ERP MES HRIS S C M KMS Web -Based

따끈따끈한 한국 Azure 데이터센터 서비스를 활용한 탁월한 데이터 분석 방안 (To be named)

3 장. 데이터와경영정보시스템

슬라이드 1

목 차

MS-SQL SERVER 대비 기능

공개 SW 기술지원센터

금오공대 컴퓨터공학전공 강의자료

02-01 데이터베이스의필요성 데이터베이스의정의와특성

Microsoft PowerPoint - 27.pptx

슬라이드 1

IPAK 윤리강령 나는 _ 한국IT전문가협회 회원으로서 긍지와 보람을 느끼며 정보시스템 활용하 자. 나는 _동료, 단체 및 국가 나아가 인류사회에 대하여 철저한 책임 의식을 가진 다. 나는 _ 활용자에 대하여 그 편익을 증진시키는데 최선을 다한다. 나는 _ 동료에 대해

슬라이드 제목 없음

Microsoft Word - 김완석.doc

Transcription:

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

비즈니스인텔리전스 - 다차원분석 다차원분석절차 의사결정요구사항은? 관련데이터확보는? ETL 도구활용 데이터저장방법은? 수집된데이터를어떠한구조로저장하는가? 큐브모델 / 스타스키마형태로저장함 ; 다양한분석이용이함 데이터분석기법은? 다차원분석 데이터마이닝과통계분석 분석결과의시각화방법은? 직관적인의사결정이가능하도록시각화 2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 2

비즈니스인텔리전스 - 다차원분석 다차원분석사례 매출액 $500 억 다차원모델링 - Cube 모델 다차원분석 년도별매출액은? 2003 년분기별매출액은? 2003 년 1 분기월별매출액은? 도시별매출액은? North/South 지역별매출액은? Dallas 지역의 Product E 에대한 2003 년분기별매출액은? 도시별로 2003 년월별매출액은? 제품별, 년도별매출액은? ( 수많은분석 ) 25M 30M 20M 11M 21M Roll-up Drill-down North 20 South Cube 수백개 cubes Q1 Jan 2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 3

비즈니스인텔리전스 - 다차원분석 기존 DW & OLAP 의한계 분석대상 데이터특성 분석특성 분석의예 기존 DW & OLAP 분석 (BI) 주로과거데이터를분석하여현황을분석하는정적보고서작성 정형데이터위주의적은데이터를기존컴퓨터에서저장, 처리 온라인, 다차원분석위주 과거수년간매출정보를분석하여지역, 시간, 제품, 고객별로매출을집계함 ( 다차원분석 ) ( 참고 ) BA Business Analytics 빅데이터분석 (BA) 과거와현재데이터를실시간수집하여새로운정보를발견하고, 가까운미래를예측함 다양한유형의데이터 ( 문서, SNS, IoT, 오디오, 동영상등 ) 를클라우드등에분산저장, 분산처리함 데이터마이닝, 통계기법, 기계학습등심화분석과가시화중요 현재실시간으로발생하는데이터를바로수집, 연계통합, 분석함으로써미래예측 - 대형사고가터지기전에 30 개의작은사고가있고, 그전에 300 개징후가있음 ( 빅데이터로예측하자!) - SNS, 블로그등에올라오는고객불만을실시간으로분석하면적절한대처가가능함 2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 4

빅데이터분석기술 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 5 Wan-Sup Cho (wscho@cbnu.ac.kr)

빅데이터분석기술 배치분석 : Script language 2016-09-30 6 Wan-Sup Cho (wscho@cbnu.ac.kr)

빅데이터분석기술 Splunk 빅데이터를빠르게처리 In-Memory based multidimensional analysis system 인피니플럭스 ( 한국 ) 2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 7

빅데이터분석기술 R 언어 SAS, SPSS 의대안으로급성장 데이터를다루고분석하는데특화된언어 통계분석 ( 마이닝 ) 및시각화를위한언어혹은개발환경으로오픈소스임 수천가지라이브러리를사용하여기본적인통계분석기법부터모델링, 최신데이터마이닝기법까지구현 / 개선이가능 다양한분야에적용가능한마이닝기법들을제공함 마케팅, 금융, CRM( 고객관리 ), 생명공학및의학, GIS, Stream Data 등 Java, C/C++, Python 등다른프로그래밍언어와의연결용이 빅데이터분석이필요한조직에서대용량데이터통계분석과데이터마이닝을위한솔루션으로정착되고있음 예 : 약 30 라인으로 SNS (Twitter) 분석에서시각화까지구현할수있음 2016-09-30 8 Wan-Sup Cho (wscho@cbnu.ac.kr)

R 언어 Example : R 을사용한트위터팔로워분석과결과 : 단 20 여 line 으로결과생성! 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) 2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 9

데이터마이닝 빅데이터분석기술 데이터로부터체계적이고자동적으로 ( 통계학에서패턴인식에이르는다양한계량기법을사용하여 ) 규칙이나패턴을찾아내는기술 데이터마이닝기법은통계학에서발전한탐색적자료분석, 가설검정, 다변량분석, 시계열분석, 일반선형모형등의방법론과데이터베이스측면에서발전한 OLAP ( 온라인분석처리 : On-Line Analytic Processing), 인공지능진영에서발전한 SOM(Self Organizing Maps), 신경망, 전문가시스템등의기술적인방법론이사용됨 빅데이터마이닝 빅데이터의특징인 대용량, 비정형, 실시간 마이닝이가능하도록기존의기법들을확장함 IoT/M2M 등의보편화로 Stream Data Mining 기술의필요성증대 2016-09-30 10 Wan-Sup Cho (wscho@cbnu.ac.kr)

빅데이터분석기술 데이터마이닝기술의종류 분류 (Classification) 일정한데이터집단에대한특성정의를기준으로분류함 예 : 경쟁자에게로이탈한고객들을분류함 군집화 (Clustering) 어떤특성을공유하는데이터그룹을찾음. 군집화는미리정의된특성에대한정보를갖지않는다는점에서분류와구분됨 ( 예 : 유사행동집단의구분 ) 연관관계 (Association) 관련이있는 ( 동시에발생하는 ) 데이터들을찾아냄 예 : 장바구니에서함께구매되는상품들 2016-09-30 11 Wan-Sup Cho (wscho@cbnu.ac.kr)

빅데이터분석기술 데이터마이닝기술의종류 ( 계속 ) 순차패턴 (Sequencing) 순차적으로발생하는데이터들을찾아냄 예 : 비디오대여순서정보 예측 (Forecasting) 대용량데이터집합내의패턴을기반으로미래를예측 예 : 수요예측 텍스트마이닝 자연어처리기술을기반으로텍스트의의미를자동으로파악함 예 : SNS 기반의고객감성분석 2016-09-30 12 Wan-Sup Cho (wscho@cbnu.ac.kr)

텍스트마이닝 빅데이터분석기술 텍스트기반의데이터 ( 문서 ) 로부터새로운정보를발견하는기술 다음과같은자연어처리기술도필요함 형태소분석기술 (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

빅데이터분석기술 응용분야 SNS 분석 갤럭시 3 화면이넓어짱이다 iphone4 무게가가벼워좋아. 갤럭시 3/ 화면 / 넓다 / 좋다 화면이크다 45% 디자인이예쁘다 25% 크기가작다 15% 화질이좋다 15% 긍정 부정 갤럭시3 30,599 1,500 iphone4 56,456 3,500 수집필터링 구어체전처리 형태소분석 개체명인식 구문분석 감성분석관계분석 이슈탐지모니터링 긍부정분석 게시판게시판게시판 소스데이터 사전 ( 개체명, 감성단어 ), 동의어 테러, 범죄, 재난 조기예측에응용됨 갤럭시 3 iphone4 갤 3 아폰 4 화면밧데리무게화질 2016-09-30 충북대학교 (wscho@cbnu.ac.kr) 14 제품 T 속성 T Dictionary 좋다넓다크다작다짱이다 감성단어 T

시각화란? 빅데이터시각화 (visualization) 방대한양의자료를분석해서한눈에볼수있도록도표나차트등으로정리하는것 시각화자체가분석의한 시각화의효과 데이터로부터정보를습득하는시간의절감으로즉각적인상황판단이가능해짐 자료를습득하는사람의흥미유발과빠른확산촉진 자료를기억하는데기여함 뉴욕타임스 ( 유권자분석 ) http://www.nytimes.com/interactive/2012/11/11/sundayreview/counties-moving.html?_r=0 2016-09-30 15 Wan-Sup Cho (wscho@cbnu.ac.kr)

시각화의예 시각화의예 나플레옹군이러시아원정에서완패하고모스크바로부터프랑스로복귀하는이동경로별로그들이겪은추위와병사감소를한눈에시각화 ( 샤를미나르, 1861 제작 ) 2016-09-30 Wan-Sup Cho (wscho@cbnu.ac.kr) 16

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

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

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

시각화도구들 시각화도구 엑셀, 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 20 Wan-Sup Cho (wscho@cbnu.ac.kr)

Big Data 관련기술 ( 요약 ) 2016-09-30 21 Wan-Sup Cho (wscho@cbnu.ac.kr)

Big Data 관련기술 ( 요약 ) 2016-09-30 22 Wan-Sup Cho (wscho@cbnu.ac.kr)

비즈니스인텔리전스 빅데이터저장관리를위한 DBMS NoSQL Not Only SQL 2016.08 충북대학교조완섭

목차 개요 NoSQL 등장배경 특징과유형 NoSQL 단점 SQL/NoSQL 차이 MongoDB 2012-11-00 24

개요 NoSQL Not Only SQL 기존관계형 DBMS 가갖고있는특성을포함하여추가적인특성들을지원한다는의미 기존의관계형데이터베이스시스템의주요특성인 ACID(Atomic, Consistency, Integrity, Duarabity) 특성을제공하지않는 (readonly), 그렇지만뛰어난확장성과성능을제공하는비관계형, 분산 DBMS 2016 년현재 225 개가넘는 NoSQL 제품이출시됨 http://nosql-database.org/ 2012-11-00 25

개요 NoSQL ( 계속 ) 2000 년대후반인터넷활성화, SNS 등이등장하면서비정형데이터를쉽게저장하고처리할수있는 DBMS 의필요성증대증가 => NoSQL 개발동기임 NoSQL 은빅데이터라고하는새로운데이터베이스시장을개척하고있음 ; 기존의데이터는여전히관계형데이터베이스로처리하는것이최적임 ; 특히기업의 ERP 나, MIS 시스템등데이터의정확한처리가필수적인시스템에서는앞으로도그러할것임 2012-11-00 26

NoSQL 등장배경 NoSQL 등장의 4 가지요인 빅데이터의저장과관리 한대의컴퓨터에저장할수없을정도로큰데이터 클라우드 / 하둡등에저장된데이터의관리필요성 비정형데이터 구글문서, 동영상등다양한데이터저장관리필요 빠른수집, 저장, 처리, 분석필요성 수많은사용자지원 ( 구글, 페이스북등 ) 수천만 ( 억 ) 명을동시에 active 한상태로서비스 뛰어난확장성 (Scale-up) 응용프로그램의변화없이필요한만큼의하드웨어추가가능 ( 클라우드 ) NoSQL => Cloud DB 라고도부름 2012-11-00 27

NoSQL 등장배경 RDB vs. NoSQL 데이터분담추세 NoSQL Relational DB 2012-11-00 28

NoSQL 특징 NoSQL 은단순검색및추가작업에대하여뛰어난응답속도와처리효율을제공하며, 다음과같은특징을가짐 관계형모델을사용하지않으며테이블간연결해서조회할수있는조인기능을제공하지않는경우가많음 제한된 SQL 지원 : 데이터조회를위해직접프로그래밍필요 하나의 DB 가여러데이터베이스서버 ( 클러스터링 ) 상에서동작 관계형데이터베이스에서는지원하는데이터처리완결성 (Transaction ACID 지원 ) 미보장 => CAP 기반임 데이터의스키마와속성들을다양하게수용하고동적으로정의할수있음 (Schemaless) 데이터베이스의중단없는서비스와자동복구기능지원 대다수의제품이 Open Source 로제공 대다수의제품이고확장성, 고가용성, 고성능특성을가짐 2012-11-00 29

Relational DB NoSQL 특징 모든데이터를테이블 ( 들 ) 에저장하고관리함 2012-11-00 30

Relational DB NoSQL 특징 ACID 특성을보장함으로써데이터베이스트랜잭션이안전하게수행됨을보장함 ACID 특징 : 트랜잭션을정상적으로처리하기위한 4 가지요건 원자성 (Atomicity) 트랜잭션과관련된작업들이부분적으로실행되다가중단되지않는것을보장하는능력이다 (all or nothing) 일관성 (Consistency) 트랜잭션이실행을성공적으로완료하면언제나일관성있는데이터베이스상태로유지하는것을의미한다. 고립성 (Isolation) 트랜잭션을수행시다른트랜잭션의연산작업이끼어들지못하도록보장하는것을의미한다. 지속성 (Durability) 성공적으로수행된트랜잭션은영원히반영되어야함을의미한다. NoSQL 은 ACID 성질을지원하지않음 => CAP 이론에기반 2012-11-00 31

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

NoSQL 활용시고려사항 NoSQL 도입시예상되는리스크 비용 오픈소스를주로활용하지만충분한 CPU 코어수, 메인메모리와하드디스크등을필요로하는경우가많으므로고비용 복합적인서버의호스팅과운영비용도필요함 지원 상용솔루션의경우전화한통으로해결되는것이시간과비용을들여해결해야하는경우도있음 제한된질의어 SQL 과조인등의연산을지원하지않은경우가많음 데이터모델링 컬럼디자인등데이터모델링이 NoSQL 성능에직접적인영향을미치므로관계 DB 모델링과는다른전문성이필요함 제품이너무다양하여적합한제품선정이어려움 2012-11-00 33

NoSQL 유형 (5 가지 ) 출처 2012-11-00 http://highlyscalable.wordpress.com 34

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 등 Value 는 Binary 혹는 Text 형태 2012-11-00 35

NoSQL 유형 BigTable 방식 Key-value 방식에서 Value 부분을 2~3 단계의구조화된값을저장할수있도록확장함 구글이발표한논문에서출발했으며, HBase, Cassandra 등의제품에이방식에해당함 2012-11-00 36

NoSQL 유형 Document 방식 Value 부분에문서 (JSON, XML 유형 ) 를저장하는방식으로 Value 부분에데이터구조는깊이제한이없음 MongoDB, CouchDB, ElasticSearch 등 2012-11-00 37

NoSQL 유형 Graph databases 실세계정보를표현하기위해노드, 에지, 속성등을포함한그래프구조를사용하는데이터베이스 [Wikipedia] 종류 : Neo4j, Allegrograph (RDF 를저장용그래프 DB) Relational DB?? Graph DB? ( 출처 ) http://tech.kakao.com/ 2012-11-00 38

NoSQL 유형 Graph DB 예제 SNS 데이터저장관리에유용함 2012-11-00 39

NoSQL 유형 Graph DB 사례 Gene Ontology 2012-11-00 40

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

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

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

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

MongoDB

개요 MongoDB 는문서지향데이터베이스 관계형 DB 의행대신에문서 (document) 개념을사용함 해외에서꾸준한투자를바탕으로개선이이루어지고있으며, 최근에는금융권에서의도입사례로이어지고있음 핵심개념 Database Collection 의모음임 Collection Relational model 의 table 에해당하는개념으로 document 들의모음임 효과적인관리를위해유사한구조의문서들을하나의 collection 으로모음 Document Relational model 의 raw 에해당하는개념으로정렬된 key-value 의집합임 Extent 는데이터가저장되는논리적인단위임 2012-11-00 46

MongoDB - 복제구조 Availability 확보방안 MongoDB 의 high availability ( 안정성 ) 는 replica set 을통해달성 즉, 데이터일관성을위해모든변경은 primary DB 로요청되고, 비동기적으로다른 secondary DB 들로복제됨 message 2012-11-00 47

MongoDB - Sharding Sharding ( 샤딩설정 ) 데이터를분할해서여러시스템에저장하는방식 Scale-out 방식으로확장성을실현하는주요기술 2012-11-00 48

MongoDB MongoDB 설치와간단한활용 설치 : 유튜브동영상참고 https://www.youtube.com/watch?v=ixbdx3iiqbm MongoDB GUI tool MongoBooster : 최근에개발된제품으로 GUI 를활용하여 MongoDB 를편리하게활용할수있도록함 ( 비상용인경우무료 ) RDB 와 MongoDB 비교 MongoDB : SQL Database : database collection : table document : row field : : - key:value} : - 2012-11-00 49

MongoDB 활용하기 MongoDB MongoDB 서버실행 ( 설치후도스실행창에서 ) $ mongd MongoDB 클라이언트 - 서버연결 ( 설치후도스실행창에서 ) $ mongo MongDB 에생성된 DB list 보기 > show dbs bands 0.203125GB movies (empty) scores (empty) > use movies switched to db movies > use scores > db.dropdatabase() {"dropped" : "scores", "ok" : 1 } Database 내의 collections 보기 > show collections ( 혹은 ) > db.getcollectionnames() 2012-11-00 50

MongoDB 데이터베이스 ( 자동 ) 생성 MongoDB 에서는 create database 명령을사용할필요가없음 ; database 를선택하면서기생성된 databas 가아니라면바로 MongoDB 에서해당 database 를생성함 아래에서 movies DB 가자동생성될뿐아니라 comedy 콜렉션 ( 테이블 ) 까지자동생성되고, document ( 레코드 ) 가 insert 됨 =>schemaless > use movies switched to db movies > db.comedy.insert({name: The MongoDB, year:2016}) Create/Add data in MongoDB > db.comedy.insert({name:"wayne's World", year:1992}) > db.comedy.insert({name:'the School of Rock', year:2003}) 2012-11-00 51

MongoDB db.users.insertmany( [ { _id: 1, name: "sue", age: 19, type: 1, Document status: "P", favorites: { artist: "Picasso", food: "pizza" }, users 컬렉션은 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 } ] } ] 2012-11-00 ); 52

MongoDB Read/update data from MongoDB > 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}) 2012-11-00 53

수많은도서 교보문고검색 MongoDB Python 등프로그래밍언어와통합된사용방법 Mongodb and Python : Patterns and Processes for the Popular Document-Oriented Database 2012-11-00 54