제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

27
2013년 제2회 사내 기술 세미나 - 부제: NoSQL 이해와 동향 2013.4.30

Upload: dong-han-kim

Post on 19-Jun-2015

329 views

Category:

Technology


1 download

DESCRIPTION

- NoSQL 이해와 동향

TRANSCRIPT

Page 1: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

2013년 제2회 사내 기술 세미나

- 부제: NoSQL 이해와 동향

2013.4.30

Page 2: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해

NoSQL 이해를 위해알아야할개념

NoSQL 현황 및전망

마무리

Contents

Page 3: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL 이해를 위한 알아야 할 개념

Transaction– 데이터베이스에서 행해지는 작업의 논리적 단위(Logical unit of work)

– 기술적으로 처리하는 일정한 단위의 의미가 아니라 업무적으로 의미가있는 최소의 작업 처리단위

– 트랜잭션의 단위는 업무에 의해서 판단

– 트랜잭션 제어는 Rollback, Commit로 제어

Page 4: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL 이해를 위해 알아야 할 개념ACID– RDB Transaction의 특징

작업의 논리 단위가 트랜잭션으로 적합하기 위해 가지는 속성

– Atomic(원자성)

트랜잭션과 관련된 작업들이 모두 수행되었는지 아니면 모두 실행이 안되

었는지를 보장하는 능력

예) 자금 이체는 성공할 수도 실패할 수도 있지만 원자성은 중간 단계까지

실행되고 실패하는 일은 없도록 하는 것이다.

– Consistent(일관성)

트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스

상태로 유지하는 것을 의미

예) 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜

잭션은 중단된다.

Page 5: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL 이해를 위해 알아야 할 개념ACID– Isolated(고립성)

트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미, 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼수 없음을 의미

공식적으로 고립성은 트랜잭션 실행내역은 연속적이어야 함을 의미

예) 은행 관리자는 이체 작업을 하는 도중에 쿼리를 실행하더라도 특정 계좌간 이체하는 양 쪽을 볼 수 없다.

– Durable(영속성)

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

시스템 문제,DB일관성 체크 등을 하더라도 유지되어야 함을 의미

전형적으로 모드 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되돌릴 수 있음

트랜잭션은 로그에 모든 것이 저장된 후에만 commit상태로 간주

Page 6: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL 이해를 위해 알아야 할 개념

BASE– NoSQL 제품군은 ACID 항목에서 하나 또는 그 이상을 만족하지 않음

– Basically Available

분산 시스템이기 때문에 항상 가용성을 중시

클라우드의 Basically Availability의 실현은 Optimistic Locking및 큐 등

– Soft-State

노드의 상태는 내부에 포함된 정보에 의해 결정되는 것이 아니라 외부에서전송된 정보를 통해 결정된다는 상태의 사고 방식

중요한 것은 외부에서 보내진 정보에 의해 결정된다는 것이다. 즉, 떨어진노드 간의 데이터 업데이트는 데이터가 노드에 도달한 시점에서 갱신

밖에서 받은 정보로 상태를 업데이트하므로 Soft-State라함

– Eventually Consistent

시스템상에서 일시적으로 Consistent하지 않은 상태가 되어도 일정 시간후에는 Consistent 상태가 되는 성질

Page 7: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL 이해를 위해 알아야 할 개념CAP Theorem– 분산 시스템이 갖추면 좋은 3가지 특성

Consistency(데이터일관성)

– allnodessee thesamedataat thesametime

Availability(가용성)

– nodefailuresdonotpreventsurvivors fromcontinuingtooperate

Partition Tolerance(단절내성,부분 결함 허용)

– thesystemcontinues tooperatedespitearbitrarymessage loss

– Brewer's Theorem이라고도 함

분산 시스템은 CAP특성을 동시에 다 만족하지는 못함(불가능)

한가지의 특성은 포기하고 두 가지만 전략적으로 선택해야 한다는 이론

Page 8: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해

NoSQL 정의– 비관계형, 분산, 오픈소스, 수평 확장성을 주요 특징으로 갖는 차세대

데이터베이스(www.nosql-database.org)

– 비구조적인 데이터를 저장하기 위한 분산 저장 시스템

– 학술적으로는 “Structured Storage”라고도 하며 RDB도 포함

– 기존의 관계형 데이터(테이블)가 아닌 다양한 데이터 형태를 효율적으로 처리할 수 있는 구조와 유연성을 갖춘 분산 데이터베이스

Page 9: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해NoSQL 등장 배경– 환경적 배경

데이터 규모의 확대

– 데이터의엄청난증가로인한RDBMS의수용능력을벗어남

– RDBMS의고비용을감당하기힘든업체들의데이터관리정책전환

– 웹 기반 서비스들이 글로벌로 확장, 지리적 분산(여러 지역의 데이터 센타 산재)

으로인한분산시스템의요구

웹 서비스의 구조 변화

– 웹어플리케이션특징으로,Without transactions,Without strongconsistency

– 웹 어플리케이션들의 데이터인 Non-structured data의 저장시스템으로

RDBMS의부적절함(사용자의데이터요구가일관적이지않고다양해짐)

Page 10: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해NoSQL 등장 배경– 환경적 배경: RDBMS performance

Page 11: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해NoSQL 등장 배경– 기술적 배경

Google의 GFS(2003), BigTable(2006), MapReduce Framework(2004),

Sawzall(2005)을 통한 대용량 데이터 처리에 대한기술공개

BigTable

– 수천대이상의서버에서페타(peta)바이트에달하는매우큰용량의구조화된

데이터(structured data)를 관리하기 위한 분산 저장 시스템(distributed

storagesystem)

– Google Analytics, Google Finance, Orkut, Personalized Search, Writely,

GoogleEarth등과같은60개이상의프로젝트에서사용중

아마존(AWS)의Dynamo논문 발표

Page 12: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해NoSQl 특징– 기본적으로 key & value로 저장

– 분산 환경 지원

– 단순한 호출 또는 프로토콜 수준의 사용인터페이스, Call level

interface 지원(DBMS에 접근하는 표준, SQL 바인딩에 반대되는))

– 막대한 양의 데이터를 처리할 수 있는 대용량 데이터의 빠른 인덱싱(인

덱스와 데이터 분리 운영)

– 대용량(heavy) 읽기/쓰기 성능이 좋음

– 수평적 확장(horizontal scaling) 또는 scale-out 형태로 확장성 만족

– 데이터의 스키마와 속성들을 동적으로 정의(Schemless)

– Join 미지원으로 인한 데이터의 조합 미지원

– 일반적인 관계형 DB의 ACID 트랜잭션과는 다른 "느슨한" 동시성 제

어모델(BASE)

– 특정한 표준에 의해 만들어진 기술이 아닌 필요에 의해 만들어진 기술

Page 13: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해

NoSQL 개념적 아키텍처

Page 14: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해CAP Theorem– RDB = C+A

– Cassandra = A+P

– BigTable = C+P

Page 15: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해

CAP Theorem 시사점

Page 16: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해

C-A Traditional RDBMSs like Postgres, MySQL, etc (relational)

C-P

BigTable(column-oriented/tabular, C++)Hypertable(column-oriented/tabular, C++)HBase(column-oriented/tabular, Java)MongoDB(document-oriented, C++)Terrastore(document-oriented)Redis(key-value, C)Scalaris(key-value, Erlang)MemcacheDB(key-value, C/C++)Berkeley DB(key-value, C/C++/Java)

A-P

Dynamo(key-value)Voldemort(key-value, Java)Tokyo Cabinet(key-value, C)KAI(key-value, Erlang)Cassandra(column-oriented/tabular, Java)CouchDB(document-oriented, Erlang)SimpleDB(document-oriented)Riak(document-oriented, Erlang)

NoSQL 분류: CAP Theorem에 따른 분류

Page 17: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해NoSQL 분류: Data Model에 따른 분류

Page 18: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해NoSQL 분류– 대표적 NoSQL DBMS 비교

Page 19: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해NoSQL의 선택 가이드 라인

Page 20: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL의 이해SQL, NoSQL 적용 시 고려사항

Page 21: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL 현황 및 전망Hype Cycle for Big Data, 2012

Page 22: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

현황– NoSQL의 인기도(2012.3, Jaspersoft)

하둡 진영(Hbase,Hive, Avro) >몽고 DB>카산드라의 순서

단일 제품으로는 몽고 DB가 가장 높은 순위)

NoSQL 현황 및 전망

Page 23: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL 현황 및 전망현황– 현재의 NoSQL의 자화상

NoSQL의대부분은 오픈소스,NoSQL에는 주도적인 세력이 없음

NoSQL은이제 인지 단계에서 벗어나 사용 단계로 발전 중

NoSQL,도입사례 고픈 유망주

– DB 빅 벤더들의 신제품 출시

오라클 NoSQL데이터베이스 2.0 출시(2013.1)

IBM의NoSQL통합개발진행중

– 국내 NoSQL 시장에 대한 기대감은 물론 계속 확대 추세

도입을 고려중인 기업들 스스로가 기술적 특성에 좀더 면밀한 관심을 기울

일 필요가 있다는 전문가들의 지적

Page 24: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL 현황 및 전망DB 업계의 3개 트렌드

Page 25: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

NoSQL 현황 및 전망앞으로의 기업의 DB 환경– Polyglot persistence

Page 26: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

마무리

NoSQL– 초고용량 데이터의 처리를 위해 특히 데이터 읽기 보다 쓰기에 중점을

둔, “Shared Nothing”의 수평적 확장이 가능하며 다수 서버들에 데이터 복제 및 분산 저장이 가능한 DB 또는 이런 기술 트렌드

– 아직은 불완전한 기술 : RDBMS가 기본, 모든 업무에 적용할 수 없음

– 장/단점

Page 27: 제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30

To be continued…