메뉴 닫기

NoSQL(Not Only SQL)

nosql-databases_msdyu

 

 

 

 

 

 

 

<< NoSQL(Not Only SQL) >>

 

1. 데이터베이스라고 부르지 말 것

      ○ 비정형스키마, 비관계형, 초대용량의 데이터저장소
      ○ 필요한만큼의 기능, RDBMS는 너무 복잡하고 무거움

2. 대용량 비정형데이터를 위한 분산데이터저장소
      ○  성능향상, 분산병렬처리, 고가용성

3. NoSQL은 RDBMS와 Cache의 중간쯤에 위치

      ○ 지나치게 제한적인 RDBMS, 신뢰성에 취약한 Cache
      ○ ex) Cassandra(페이스북): 0.12ms만에 50GB를 디스크 기록, MySQL의 2500배 빠른 성능

4. 저렴한 PC 서버로 수평확장 가능한 분산아키텍처

      ○ 한두건 사라져도 아무도 모를 데이터에 RDBMS를 적용하는 것은 과잉대응, cf. Oracle RAC 솔루션
      ○ 대표주자는 Google의 BigTable 을 비롯해 MongoDB, Cassandra 등

5. 데이터 처리의 병목현상을 해결

      ○ 관계형 모델링을 구현하고 Application 내에서 처리하는 비용 절감
      ○ 도메인 모델로 Application을 단순한 구조로 구성 (모델링 사고 전환 필요)

6. 오픈소스 중심으로 발전

      ○ 아직 성장중인 미완성의 기술, 공식지원업체 없이 스스로 발전
      ○ 조건을 느슨하게 함으로써 얻을 수 있는 속도를 재발견하는 시도

7. Web2.0 이상에 적합한 데이터 솔루션

      ○ SNS 등 일부 특화 서비스에 적합하도록 개발 (아직 범용적이지 않음)
      ○ 기존 Media 콘텎츠, Social 서비스, UGC, M2M(사물통싞) 의한 데이터 폭발 대응

8. CAP 이론(분산파일시스템의 속성)

      ○ Consistency : 각각의 사용자가 항상 동일한 데이터를 조회한다.
      ○ Availability : 모든 사용자가 항상 읽고 쓸 수 있다.
      ○ Partition tolerance : 물리적 네트워크 분산 환경에서 시스템이 잘 동작한다.

9. CAP 이론과 NoSQL

      ○ CAP 중에서 C 또는 A를 일부 포기함으로써 분산 확장에 특화하여 NoSQL의 수평확장 기능을 강화

10. NoSQL의 구성요소

      ○ 분산처리시스템
             ■ 분산/복제, 버젂관리
             ■ 동기화 메카니즘
             ■ 클라이얶트 프로그래밍을 위한 API
             ■ 노드 확장, 장애 대응(Fault Tolerance)
      ○ 데이터모델
             ■ Key-Value
             ■ Column-Based
             ■ Document-Based
      ○ 병렬처리모델
             ■ MapReduce
             ■ 기본적인 Ad-hoc 질의 가능, 배치/순차 처리도 가능

11. NoSQL에 대한 현재시점의 평가
      ○ 기업 요구 수준의 SLA 제공 못함: 성공 케이스가 많지 않음
      ○ NoSQL과 Application을 연계하는 개발 비용이 크다.
             ODBC, JDBC 같은 Adapter가 없음, 직접 API 이용 코딩
      ○ Join이 없어서 다양한 데이터 연계 출력이 어려움

12. NoSQL 활용시 고려사항

      ○ RDBMS를 대체한다는 접근은 옳지 않음: CRUD 위주 접근
      ○ 성능 튜닝에 많은 시행착오 필요 (신규 실서비스 개발시 부적합)
      ○ 데이터 증가에 따른 ROI 분석 필요 (도입타당성): 장비 규모나 장애로 인한 손실 비용
      ○ RDBMS에 부적합한 경우를 해결: 확장성, 비싼 비용, 비정규화(단순화)

13. NoSQL의 주요 제품

      ○ NOSQL 제품
             ■ MongoDB
             ■ Cassandra
             ■ HBase
      ○ 분산파일시스템 제품
             ■ GFS: Google File System
             ■ HDFS: Hadoop Dist. File System
             ■ Dynamo – Amazone S2
             ■ Neptune – Naver Cloud
             ■ Tenth – Daum Cloud

14. 참고 자료 

        ○ NoSQL에 대해서#1 : http://blog.outsider.ne.kr/519?category=7
            ○ NP-Hard(그래프) : http://code-o-matic.blogspot.com/2010/07/google-file-system-bandwidth-problem.html
            ○ HBase : http://blog.naver.com/zedli?Redirect=Log&logNo=60100101537
            ○ 성능비교 : http://blog.xissy.pe.kr/?mid=blog&document_srl=4972364
            ○ 카산드라 소개 : 블로그 http://blog.naver.com/PostView.nhn?blogId=j70215&logNo=140116588786&viewDate=&currentPage=1&listtype=0
            ○ Google 
             ■ GFS : http://labs.google.com/papers/gfs.html
             ■ BigTable : http://labs.google.com/papers/bigtable.html
            ○ MongoDB
              http://www.slideshare.net/madvirus/mongo-db 
              http://www.ibm.com/developerworks/kr/library/j-javadev2-12/index.html
              http://creatorw.tistory.com/tag/mongodb%20sql
            ○ MapReduce : http://www.slideshare.net/spirosd/mapreduce-distributed-computing-on-large-commodity-clusters
            ○ Document-Oriented DB : http://tostring.kr/38
            ○ StreamSQL : http://blog.cubrid.org/web-2-0/database-technology-for-large-scale-data/

 

[polldaddy rating=”7739789″]