제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 764 views

Internal Seminar PT File

Internal Seminar PT File

Statistics

Views

Total Views
764
Views on SlideShare
764
Embed Views
0

Actions

Likes
3
Downloads
27
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NoDerivs LicenseCC Attribution-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 2013년 제2회 사내 기술 세미나- 부제: NoSQL 이해와 동향2013.4.30
  • NoSQL의 이해NoSQL 이해를 위해 알아야 할 개념NoSQL 현황 및 전망마무리Contents
  • NoSQL 이해를 위한 알아야 할 개념Transaction– 데이터베이스에서 행해지는 작업의 논리적 단위(Logical unit of work)– 기술적으로 처리하는 일정한 단위의 의미가 아니라 업무적으로 의미가있는 최소의 작업 처리단위– 트랜잭션의 단위는 업무에 의해서 판단– 트랜잭션 제어는 Rollback, Commit로 제어 View slide
  • NoSQL 이해를 위해 알아야 할 개념ACID– RDB Transaction의 특징 작업의 논리 단위가 트랜잭션으로 적합하기 위해 가지는 속성– Atomic(원자성) 트랜잭션과 관련된 작업들이 모두 수행되었는지 아니면 모두 실행이 안되었는지를 보장하는 능력 예) 자금 이체는 성공할 수도 실패할 수도 있지만 원자성은 중간 단계까지실행되고 실패하는 일은 없도록 하는 것이다.– Consistent(일관성) 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스상태로 유지하는 것을 의미 예) 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다. View slide
  • NoSQL 이해를 위해 알아야 할 개념ACID– Isolated(고립성) 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미, 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼수 없음을 의미 공식적으로 고립성은 트랜잭션 실행내역은 연속적이어야 함을 의미 예) 은행 관리자는 이체 작업을 하는 도중에 쿼리를 실행하더라도 특정 계좌간 이체하는 양 쪽을 볼 수 없다.– Durable(영속성) 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미 전형적으로 모드 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되돌릴 수 있음 트랜잭션은 로그에 모든 것이 저장된 후에만 commit 상태로 간주
  • NoSQL 이해를 위해 알아야 할 개념BASE– NoSQL 제품군은 ACID 항목에서 하나 또는 그 이상을 만족하지 않음– Basically Available 분산 시스템이기 때문에 항상 가용성을 중시 클라우드의 Basically Availability의 실현은 Optimistic Locking 및 큐 등– Soft-State 노드의 상태는 내부에 포함된 정보에 의해 결정되는 것이 아니라 외부에서전송된 정보를 통해 결정된다는 상태의 사고 방식 중요한 것은 외부에서 보내진 정보에 의해 결정된다는 것이다. 즉, 떨어진노드 간의 데이터 업데이트는 데이터가 노드에 도달한 시점에서 갱신 밖에서 받은 정보로 상태를 업데이트하므로 Soft-State라 함– Eventually Consistent 시스템상에서 일시적으로 Consistent하지 않은 상태가 되어도 일정 시간후에는 Consistent 상태가 되는 성질
  • NoSQL 이해를 위해 알아야 할 개념CAP Theorem– 분산 시스템이 갖추면 좋은 3가지 특성 Consistency(데이터 일관성)– all nodessee thesamedata atthesametime Availability(가용성)– nodefailuresdonotpreventsurvivorsfromcontinuingtooperate Partition Tolerance(단절내성, 부분 결함 허용)– thesystemcontinuestooperatedespitearbitrarymessageloss– Brewers Theorem이라고도 함 분산 시스템은 CAP 특성을 동시에 다 만족하지는 못함(불가능) 한가지의 특성은 포기하고 두 가지만 전략적으로 선택해야 한다는 이론
  • NoSQL의 이해NoSQL 정의– 비관계형, 분산, 오픈소스, 수평 확장성을 주요 특징으로 갖는 차세대데이터베이스(www.nosql-database.org)– 비구조적인 데이터를 저장하기 위한 분산 저장 시스템– 학술적으로는 “Structured Storage”라고도 하며 RDB도 포함– 기존의 관계형 데이터(테이블)가 아닌 다양한 데이터 형태를 효율적으로 처리할 수 있는 구조와 유연성을 갖춘 분산 데이터베이스
  • NoSQL의 이해NoSQL 등장 배경– 환경적 배경 데이터 규모의 확대– 데이터의엄청난증가로인한RDBMS의수용능력을벗어남– RDBMS의고비용을감당하기힘든업체들의데이터관리정책전환– 웹 기반 서비스들이 글로벌로 확장, 지리적 분산(여러 지역의 데이터 센타 산재)으로인한분산시스템의요구 웹 서비스의 구조 변화– 웹어플리케이션특징으로,Withouttransactions,Withoutstrongconsistency– 웹 어플리케이션들의 데이터인 Non-structured data의 저장시스템으로RDBMS의부적절함(사용자의데이터요구가일관적이지않고다양해짐)
  • NoSQL의 이해NoSQL 등장 배경– 환경적 배경: RDBMS performance
  • NoSQL의 이해NoSQL 등장 배경– 기술적 배경 Google의 GFS(2003), BigTable(2006), MapReduce Framework(2004),Sawzall(2005)을 통한 대용량 데이터 처리에 대한기술공개 BigTable– 수 천대 이상의 서버에서 페타(peta) 바이트에 달하는 매우 큰 용량의 구조화 된데이터(structured data)를 관리하기 위한 분산 저장 시스템(distributedstoragesystem)– Google Analytics, Google Finance, Orkut, Personalized Search, Writely,GoogleEarth등과같은60개 이상의프로젝트에서사용중 아마존(AWS)의 Dynamo 논문 발표
  • NoSQL의 이해NoSQl 특징– 기본적으로 key & value로 저장– 분산 환경 지원– 단순한 호출 또는 프로토콜 수준의 사용인터페이스, Call levelinterface 지원(DBMS에 접근하는 표준, SQL 바인딩에 반대되는))– 막대한 양의 데이터를 처리할 수 있는 대용량 데이터의 빠른 인덱싱(인덱스와 데이터 분리 운영)– 대용량(heavy) 읽기/쓰기 성능이 좋음– 수평적 확장(horizontal scaling) 또는 scale-out 형태로 확장성 만족– 데이터의 스키마와 속성들을 동적으로 정의(Schemless)– Join 미지원으로 인한 데이터의 조합 미지원– 일반적인 관계형 DB의 ACID 트랜잭션과는 다른 "느슨한" 동시성 제어모델(BASE)– 특정한 표준에 의해 만들어진 기술이 아닌 필요에 의해 만들어진 기술
  • NoSQL의 이해NoSQL 개념적 아키텍처
  • NoSQL의 이해CAP Theorem– RDB = C+A– Cassandra = A+P– BigTable = C+P
  • NoSQL의 이해CAP Theorem 시사점
  • NoSQL의 이해C-A Traditional RDBMSs like Postgres, MySQL, etc (relational)C-PBigTable(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-PDynamo(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에 따른 분류
  • NoSQL의 이해NoSQL 분류: Data Model에 따른 분류
  • NoSQL의 이해NoSQL 분류– 대표적 NoSQL DBMS 비교
  • NoSQL의 이해NoSQL의 선택 가이드 라인
  • NoSQL의 이해SQL, NoSQL 적용 시 고려사항
  • NoSQL 현황 및 전망Hype Cycle for Big Data, 2012
  • 현황– NoSQL의 인기도(2012.3, Jaspersoft) 하둡 진영(Hbase, Hive, Avro) > 몽고 DB > 카산드라의 순서 단일 제품으로는 몽고 DB가 가장 높은 순위)NoSQL 현황 및 전망
  • NoSQL 현황 및 전망현황– 현재의 NoSQL의 자화상 NoSQL의 대부분은 오픈소스, NoSQL에는 주도적인 세력이 없음 NoSQL은 이제 인지 단계에서 벗어나 사용 단계로 발전 중 NoSQL,도입사례 고픈 유망주– DB 빅 벤더들의 신제품 출시 오라클 NoSQL 데이터베이스 2.0 출시(2013.1) IBM의 NoSQL 통합 개발 진행 중– 국내 NoSQL 시장에 대한 기대감은 물론 계속 확대 추세 도입을 고려중인 기업들 스스로가 기술적 특성에 좀더 면밀한 관심을 기울일 필요가 있다는 전문가들의 지적
  • NoSQL 현황 및 전망DB 업계의 3개 트렌드
  • NoSQL 현황 및 전망앞으로의 기업의 DB 환경– Polyglot persistence
  • 마무리NoSQL– 초고용량 데이터의 처리를 위해 특히 데이터 읽기 보다 쓰기에 중점을둔, “Shared Nothing”의 수평적 확장이 가능하며 다수 서버들에 데이터 복제 및 분산 저장이 가능한 DB 또는 이런 기술 트렌드– 아직은 불완전한 기술 : RDBMS가 기본, 모든 업무에 적용할 수 없음– 장/단점
  • To be continued…