NoSQL 도입이 필요하여 관련 자료들을 좀 찾아보게 됐다.
다양한 NoSQL DB들이 있는데, 들은 풍월에 따르면 특성들이 모두 다르기 때문에 다루어야 하는 데이터와 오퍼레이션들을 확인하고 이를 잘 지원하는 DB를 선정하는 것이 중요하다고 하고, 데이터 뿐만 아니고 하드웨어 적인 특성(메모리가 많이 필요하다던지)도 고려를 해야 적절한 DB를 선정할 수 있다고 한다.
프로젝트에 맞는 NoSQL DB를 선정하는 것이 중요하여 이를 찾기 위한 관점에서 자료를 찾아보게 됐다.
0. 필요한가
기본적으로 NoSQL이 뭔지, 왜 필요한지에 대해서 MongoDB를 만드는 10gen 사이트에 잘 정리가 되어 있다.
1. 데이터베이스모델 별 분류
데이터베이스 모델 별로 분류가 가능하다고 한다.
예를 들어 잘 알려진 NoSQL DB의 경우 아래와 같은데, 모델 별로 보다 자세한 설명은 다음 링크를 참조:
- http://en.wikipedia.org/wiki/Database_model
- http://en.wikipedia.org/wiki/Column-oriented_DBMS
* Wide Column Store
- Hadoop/HBase나 Cassandra
* Document Store
- MongoDB
2. 관련 웹사이트
* 평판(Popularity) 기준 랭킹 : http://db-engines.com/en/ranking
* 모델 별 분류: http://nosql-database.org/
3. NoSQL 선정 시 고려해야 하는 사항
* Data Modeling을 이해하고, 어떤 Operation을 제공하는지 이해해야 함
* 확장성(Scalability)이 뛰어나지만, 이를 지원하기 위한 부하(여러 노드에 데이터를 분산 저장하고, 결과를 취합하기 위한)가 있음
* 실시간 보다는 배치(Batch) 형태의 도메인에 적합
4. MongoDB
* Schema Design
- http://www.10gen.com/presentations/mongodb-melbourne-2012/schema-design-example
- http://www.10gen.com/presentations/schema-design-7
- http://www.10gen.com/presentations/schema-design-6
* Capacity Planning
- http://www.10gen.com/presentations/capacity-planning
* Sharding
- http://www.10gen.com/presentations/sharding-1
* Replication
- http://www.10gen.com/presentations/replication
5. 스키마 설계 시의 고려사항
- 우선순위가 뭐냐: High Consistency, High read performance, High write performance
- 어플리케이션의 데이터 접근/조작은 어떻게 하는지: Read/Write Ratio, Types of Queries / Updates, Data life-cycle and growth, Analytics (Map REduce, Aggregation)
'Work Log > As Cybersecurity Consultant' 카테고리의 다른 글
암호 강도, 암호 알고리즘과 적절한 키길이의 선정 (0) | 2013.05.10 |
---|---|
보안 그리고 설정관리 (Configuration Management) (0) | 2013.05.10 |
[Lessons Learned] APIPA(Automatic Private IP Addressing)의 고려 (0) | 2013.05.05 |
악성코드 감염 예방을 위한 지침 - TTA 문서 (0) | 2013.05.05 |
[Lessons Learned] UAC(User Account Control) 관련 (0) | 2013.05.04 |