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

Similar documents
PowerPoint 프레젠테이션

DBMS & SQL Server Installation Database Laboratory


JDBC 소개및설치 Database Laboratory

쉽게 풀어쓴 C 프로그래밊

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

MongoDB Trends and Introduction 우정웅연구원 Dec. 02, 2014

Ubiqutious Pubilc Access Reference Model

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

Microsoft PowerPoint - CNVZNGWAIYSE.pptx

NoSQL

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

Microsoft PowerPoint - 10Àå.ppt

REDIS 이해와 활용

[Brochure] KOR_TunA

Spring Data JPA Many To Many 양방향 관계 예제

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

Microsoft PowerPoint - Java7.pptx

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

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

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

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

슬라이드 1

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Windows 8에서 BioStar 1 설치하기

PowerPoint 프레젠테이션

Microsoft PowerPoint Python-DB

JVM 메모리구조

PowerPoint Presentation

<4D F736F F D20BBE7BABB202D20C3D6BDC54954B5BFC7E2>

Spring Boot/JDBC JdbcTemplate/CRUD 예제

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

Ç¥Áö

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

슬라이드 1

슬라이드 1

PowerPoint Template

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

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx

Cloud Friendly System Architecture

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

adfasdfasfdasfasfadf

Apache Ivy

강의 개요

Beyond Relational SQL Server, Windows Server 에디션비교 씨앤토트 SW 기술팀장세원

슬라이드 1

PowerPoint 프레젠테이션

슬라이드 1

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

<3938C8A35FB0F8C7D05FC6AEB7BBB5E55F E F4E6F73716C5FB8A65FC0CCBFEBC7D15FC0AFB4D65FC5D7BDBAC6AE5FB9E6B9FD5F F312E687770>

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

JAVA PROGRAMMING 실습 08.다형성

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

PowerPoint 프레젠테이션

Intra_DW_Ch4.PDF

PowerPoint 프레젠테이션

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

슬라이드 1

슬라이드 제목 없음

Windows 10 General Announcement v1.0-KO

PowerPoint Presentation

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

Spring Boot

1. SNS Topic 생성여기를클릭하여펼치기... Create Topic 실행 Topic Name, Display name 입력후 Create topic * Topic name : 특수문자는 hyphens( - ), underscores( _ ) 만허용한다. Topi

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

Cache_cny.ppt [읽기 전용]

PowerPoint 프레젠테이션

wtu05_ÃÖÁ¾

5장 SQL 언어 Part II

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이

지능형 IoT 를위한빅데이터기술현황 이러한추세는 2016년가트너의 신기술하이퍼사이클 보고서에도그대로드러나있다. 하이퍼사이클상의머신러닝은디지털비즈니스혁신을위한기술로서의정점에있으며, IoT 플랫폼기술이그뒤를따르고있다. 빅데이터기반의처리기술의바탕위에서가장대두되는어플리케이션이

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Microsoft PowerPoint - 4주차.pptx


Microsoft PowerPoint - 04-UDP Programming.ppt

MS-SQL SERVER 대비 기능

Microsoft Word - src.doc

슬라이드 1

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

Windows Server 2012

<BCD2C7C1C6AEBFFEBEEE5FB1E8C1F6C5C25FC0DBC7B0C3D6C1BEBAB8B0EDBCAD2E687770>

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

<31302DB5A5C0CCC5CDBAA3C0CCBDBA20B9D720C0CEC5CDB3DDC0C0BFEB2DC3D6BFEBB6F42E687770>

오픈데크넷서밋_Spark Overview _SK주식회사 이상훈

슬라이드 1

: Hadoop 출간 은 출판 분 2013 년 10 월 3 윤 퍼플 주 울 종 종 1 1번 윤 2013 본 전부 반 부를 재 권 동를 셔 면 OpenWithNet 총 상 술 워크 (2006 년) : Hadoop 세만 NoSQL 웹 분

Samsung SDS Enterprise Cloud Networking CDN Load Balancer WAN

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

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

PowerPoint 프레젠테이션

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

BY-FDP-4-70.hwp

빅데이터 분산 컴퓨팅 -6

슬라이드 1

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

슬라이드 1

elastic-meetup

Transcription:

5 주차 -mongodb 설치잠깐! CAP 이론 NoSQL이나온이유와 MongoDB NoSQL의데이터저장구조에따른세가지분류 RDBMS와 NoSQL특성비교 RDBMS와 NoSQL의사용시기 MongoDB 소개및특징 MongoDB와 RDBMS와의공통 MongoDB CRUD Data Modeling 참고 MongoDB CRUD Operations MongoDB 실습설치환경구동확인 & Shell 확인참고자료 설치 http://docs.mongodb.org/manual/installation/ 잠깐! CAP 이론 NoSQL 은분산형구조를띠고있기때문에분산시스템의특징을그대로반영하는데, 그특성중의하나가 CAP 이론이다. 이이론은 2002 년버클리대학의 Eric Brewer 교수에의해발표된분산컴퓨팅이론으로, 분산컴퓨팅환경은일관성 (Consistency), 가용성 (Availability), 분산가용성 (Partitioning) 세가지특징을가지고있으며, 이중두가지만만족할수있다는이론이다. 분산시스템이추구하는데이터의특성세가지 1. CA 분류 ( 시스템이죽을지언정메시지손실은방지하는강한신뢰형 ) 2. 3. 일관성 ( Consistency) : 각각의사용자가같은데이터를볼수있다 = 모든노드가같은시간에같은데이터를보여줘야한다. 가용성 ( Availability) : 모든사용자가항상읽고쓸수있다 = 몇몇노드가다운되어도다른노드들에게영향을주지않아야한다. 분산가용성 ( Partition Tolerance) : 물리적으로분리된분산환경에서도작동한다 = 일부메시지를손실하더라도시스템은정상동작을해야한다. 분산시스템이추구하는데이터의특성은세가지중두가지만보장할수있다. 전통적인 RDBMS 가여기에해당한다. 트랜잭션이필요한경우필수적. CP 분류 ( 모든노드가함께퍼포먼스를내야하는성능형 ) 구글의 BigTable 과 HBase, MongoDB, Redis 등 AP 분류 ( 비동기화된서비스스토어에적합 ) Dynamo, Apache Cassandra, CouchDB 등

NoSQL 이나온이유와 MongoDB 과거에비해저장해야할데이터가증가함에따라 ' 데이터베이스를어떻게확장할것인가? 와같은상황에직면하게되었다. 데이터베이스의확장은더큰장비로성능확장 (scale-up) 을하거나여러장비에데이터를나누어분산확장 (scale-out) 하는두갈림길에서게된다. 성능확장 : 대형장비는대체로가격이비싸고결국에는더이상확장할수없는물리적한계에부딪히고만다. 분산확장 : 저장공간또는성능향상을위해저렴한서버를구매해서클러스터에추가하는방법. 더경제적이고확장이용이. 하지만하나의장비만관리하는것에비해수천대의장비를운영해야하기때문에관리가더어려워진다. NoSQL 중문서지향데이터모델은데이터를여러서버에더쉽게분산할수있게해준다. 문서를자동적으로재배분하고사용자요청을올바른장비에라우팅함으로써클러스터내데이터양과부하를조절할수있기때문. 클러스터에용량이더필요하다면, 새로운장비에클러스터에추가하면 MongoDB 가새로운장비에기존데이터를적절하게분산할것이다. NoSQL 의데이터저장구조에따른세가지분류 Key/Value Store 가장기본적인패턴의 Key/Value 의개념을지원한다.

<Key/Value Store 데이터구조 > Value 는 String 이나 Integer 와같은 Primitive 타입이될수도있지만, 더확장된개념을사용하는데, 그것이바로 Column Family 라는개념이다. Key 안에 (Column, Value) 조합으로된여러개의필드를갖는데이를 Column Family 라고한다. <Column Family 기반의데이터구조 > Ordered Key/Value Store Key/Value Store 의확장된형태로 Key/Value Store 와데이터저장방식은동일하나, 데이터가내부적으로 Key 순서로 Sorting 되어저장된다. NoSQL 은 RDBMS 의 Order By 와같은기능을제공하지않기때문에결과값을업데이트날짜등으로 Sorting 해서보여주는것은이 Ordered Key/Value Store 가절대적으로유리하다. 대표적인제품으로는아파치 (Apache) 의 HBase, Cassandra 등이있다. Document Key/Value Store Document 타입은 XML, JSON, YAML 과같이구조화된데이터타입으로, 복잡한계층구조를표현할수있다. Document Store 기반의 NoSQL 은제품에따라다르기는하지만대부분추가적인기능 (Sorting, Join, Grouping 등 ) 을제공한다. 대표적인제품으로는 MongoDB, CouchDB 등이있다.

Nosql 주요 5 가지관심도 (2012 년 1 월 ~2014 년 8 월현재 ) 막대그래프차례대로 : MongoDB, Apache Cassandra, Redis, Apache Hadoop, CouchDB 관심도는 MongoDB 가가장높고, 근소한차이로 Apache Hadoop 로 NoSQL 계열중가장큰관심을받고있고, 그다음은 Redis, Apache Cassandra, CouchDB 등은상대적으로큰관심을받진못하고있다. RDBMS 와 NoSQL 특성비교 RDBMS 장점 : 데이터무결성과정합성보장, 정규화된테이블지원, 트랜잭션지원단점 : 확장성에한계존재, 클라우드분산환경에적합하지않음. NoSQL 장점 : 웹환경에서다양한정보를검색하고저장할수있음단점 : 데이터에대한무결성과정합성을보장하지않음. 데이터쓰기동작을기준으로볼때의차이 NoSQL 은데이터를먼저로그에저장하고, 그다음에메모리로이동시킨다. 그러고나서어느순간저장해야할시기가오면이를데이터베이스에저장한다.( 백그라운드스레드를통해디스크에기록한다 ) RDBMS 는 NoSQL 과반대로데이터베이스에저장한데이터를메모리에옮기고이를다시로그로저장하는순서를가진다. RDBMS 와 NoSQL 의사용시기 RDBMS 중대형데이터베이스 (10~100GB), ACID 특성을엄격히만족, 데이터가밀접하게연관, 높은사양의하드웨어사용 NoSQL 높은확장성을지원해야하고, 동시에접근이일어날수있는경우, 반드시 ACID 가보장될필요는없음. 낮은예산을가지고있지만, 확장성이높은경우를고려할때필요 ( 웹사이트나소셜서비스구성등 ) MongoDB 소개및특징 MongoDB는 Humongos라는회사의제품명이었으며현재 10gen으로회사명이변경되어운영되고있는 C++ 로구현된오픈소스 document 데이터베이스. 기본적인인터페이스로 BSON(Binary JSON) 을이용해웹에서의접근성을높이면서도커서, 참조키등기존관계형데이터베이스의 SQL 과유사한개념을유지하고있어처음접하더라도쉽게적응할수있다.

JSON Type 의데이터저장구조를제공한다. CRUD(Create, Read, Update, Delete) 위주의다중트랜잭션처리도가능하며인덱스로빠른데이터검색이가능하다. MapReduce( 분산 / 병렬처리 ) 기능을제공한다. - ' 쿼리언어 ' 로자바스크립트사용. 복잡한로직을임의로표현할수있다. 느리기때문에실시간데이터분석에는적합하지않음. Sharding( 분산 )/Replica( 복제 ) 기능을제공한다. 큰크기의객체를다룰때에는 GridFS 를사용하고, 색인을다룰때는 B- 트리를사용한다. MongoDB 와 RDBMS 와의공통 주키와색인지원 ( 필요하면다중색인도지원 ) 정렬과제한을지원하는 query 와모델제공집합연산제공 Document Collection MongoDB CRUD CRUD Concepts Read Operations Query Interface MongoDB 의 Query 를아래의 SQL 문과비교

Query Behavior limits, skips, sort orders 의쿼리를이용하여수정할수있음. Query Statements Projections : 반환할필드. Write Operations Create

위에서의 MongoDB insert 의내용은아래의 SQL 문과동일하다. Update 위에서의 MongoDB 의 update 은아래의 SQL 문과동일하다. Delete 위에서의 MongoDB 의 delete 은아래의 SQL 문과동일하다. Data Modeling

MongoDB 는조인을지원하지않기때문에여러컬렉션에서문서를모으려면쿼리를여러번수행해야한다. 비정규화는모든데이터를하나의문서에내장하는것으로, 정규화의반대다. 최족데이터사본에대한참조를가지는문서대신에여러문서가데이터의사본을갖는다. 이는정보가변경되면여러문서가갱신되어야하지만모든관련데이터는하나의쿼리로가져올수있음을뜻한다. 일반적으로정규화는쓰기를빠르게만들고비정규화는읽기를빠르게만든다. 따라서애플리케이션에적합한타협점을찾을필요가있다. RDBMS 가데이터모델링에서부터시작해서정규화를통해 ( 중복제거 ) 테이블을만들어내고, 해당테이블을통해쿼리를수행해결과를뽑아낸다고하면, NoSQL 은이와정반대의접근이필요하다. 먼저수행할쿼리를정의하고이에맞춰데이터테이블을정의하고, 성능을높이기위해일부로중복을허용해테이블을정의해야한다. 설계주요특징 MongoDB 는데이터의중복을허용하며비정형화된설계를지향한다. MongoDB 는중첩데이터구조를설계할수있기때문에불필요한 JOIN 을최소화시킬수있다. MongoDB 는다대다관계구조를설계할수있고구축할수있다. MongoDB 는 Schema 중심으로설계하지않는다. NoSQL 은기본적으로 RDBMS 와다르다. 데이터저장방식도다르고기능도부족하기때문에, RDBMS 처럼데이터모델링을하면 100% 성능문제가생길수밖에없다. Document Structure 참조방식 (References) 내장방식 (Embedded Data)

내장방식과참조방식비교 내장방식이좋은경우 : 작은하위문서, 정기적으로변하지않는데이터, 결과적인일관성이허용될때, 증가량이적은문서, 조회하려는두번째쿼리를수행하기위해자주필요한데이터, 빠른읽기 참조방식이좋은경우 : 큰하위문서, 자주변하는데이터, 즉각적인일관성이필요할때, 증가량이많은문서, 결과에서자주제외되는데이터, 빠른쓰기 인덱스선택 데이터를모델링할때, 인덱스선택도중요한내용중하나이다. MongoDB 에서도원하는곳에색인을수행한다. _id 필드는자동으로색인찾고자하는키에대한필드는색인필요보통정렬하는필드는색인수행 인덱스생성 컬렉션당최대 64 개까지의인덱스를갖도록제한되어있다. 일반적으로주어진컬렉션에두세개이상의인덱스를갖지않는게좋다. 그러므로인덱스로어떤필드가적합한지신중히파악하는것이좋다. 복합인덱스생성 쿼리가여러정렬방향이나검색조건에여러키를가질때유리하다.

참고 MongoDB CRUD Operations Data Models CAP 정리 MongoDB - 제 13회한국자바개발자컨퍼런스책몽고디비핵심가이드책몽고디비완벽가이드 MongoDB 실습 설치 설치환경 Windows Server 2008 R2 edition Windows 64-bit Windows 32-bit ( newer than Windows XP ) Download ( http://www.mongodb.org/downloads ) 구동확인 & Shell 확인 구동확인 & Shell 확인 설치된폴더 C:\Program~~\MongoDB xx 에서편의상 C:\mongodb 로이동 Data 보관을위한폴더생성 c:\> md data

c:\> md data\db 실행시, Data 폴더지정옵션 C:\mongodb\bin> mongod.exe --dbpath c:\data\db Shell 실행 C:\mongodb\bin> mongo.exe java 에서의이용 mongodb java 에서의활용 maven dependency. <dependency> <groupid>org.mongodb</groupid> <artifactid>mongo-java-driver</artifactid> <version>2.12.3</version> </dependency> 실습및 java SRC : 몽고.txt 기타 URL https://university.mongodb.com/ https://github.com/spring-projects/spring-data-mongodb https://github.com/spring-projects/spring-data-book 참고자료 MongoDB 핵심가이드 ( 책 ) http://bcho.tistory.com/742