본문 바로가기

mongodb

New NoSQL & mongoDB : (6) Sharding System Sharding System 이란? Sharding 의 가장 큰 목적은 파티셔닝을 통한 데이터 분산 처리와 성능 향상을 위한 Load Balancing 입니다. 또한, 빅 데이터의 효율적 관리와 백업 및 복구 전략 수립을 위한 솔루션이기도 합니다. Sharding의 목적 데이터의 분산 저장 하나의 서버에 빅 데이터를 저장, 관리하는 것은 성능 저하 문제를 유발시킵니다. 따라서, 여러대의 서버를 통하 분산 처리했을 때 가장 이상적으로 작동할 수 있습니다. 빠른 성능 분산 처리는 여러 개의 프로세스가 여러 개의 CPU를 통해 동시 작업을 수행했을 때 가장 이상적이라 볼 수 있습니다. 데이터 백업과 복구 전략의 역할 하나의 서버에 빅 데이터를 저장, 관리했을 때 서버 장애가 발생한다면 어마어마한 데이터 유실이.. 더보기
New NoSQL & mongoDB : (5) Replica & ReplicasSet Master & Slave 서버 빅 데이터의 안정한 저장과 관리 그리고 복구가 수행되기 위해서는 적절한 백업 솔루션이 필요합니다. 리프리카와 리프리카 셋 기능은 빅데이터의 백업을 통해 안정성을 보장하기 위한 솔루션 중 하나 입니다. 리프리카 기능을 위해서는 마스터 노트와 슬레이브 노드가 필요하며, 슬레이브 노드는 최소 3대 이상을 권장합니다. ReplicaSets 마스터 서버와 슬레이브 서버의 관계는 원본 데이터베이스에 대한 복제 본 데이터베이스에 동일한 데이터를 하나 더 저장해 두는 관계를 의미합니다. 그런데, 실시간으로 마스터 서버에 대한 복구 작업을 수행하는 거나 슬레이브 서버를 즉시 사용할 수 있는 것은 아닙니다. 이를 위한 기능이 리프리카셋 입니다. 리프리카셋에서 실시간으로 사용되는 메인 서버를.. 더보기
OpenSource MongoDB : (1) 소개 - MongoDB 란? 몽고DB는 NoSQL(Not only SQL) 데이터베이스로, JSON(JavaScript Object Notation) 형태의 데이터를 저장합니다. SQL을 지원하지 않기 때문에 Join 개념이 없고, 스키마는 유동적입니다. 여기서 유동적이라는 말은 몽고DB에서 저장하는 데이터 단위가 '다큐먼트'라는 것을 의미하는데, 이는 RDBMS에서 행 단위의 레코드라고 할 수 있습니다. 따라서 몽고DB의 다큐먼트 속성은 SQL처럼 정형화되어 있지 않고, 가변적이기 때문에 모든 문서 형태가 비정형 데이터를 저장하고 처리하는 데 적합합니다. 다큐먼트를 집합적으로 부를 때는 '컬렉션'이라 합니다. 컬렉션은 RDBMS에서 테이블 개념과 논리적으로 유사하지만, 데이터 구.. 더보기
New NoSQL & mongoDB : (4) Tunning 운영 단계에서 사용자가 예기치 못하는 다양한 장애와 성능 저하 현상들이 발생하고 있는데 그 원인은 다음과 같이 매우 다양합니다. Design Tuning 데이터베이스의 성능을 저하시키는 가장 큰 원인은 데이터를 저장하는 논리적 구조인 컬렉션에 대한 적절한 분석과 설계 작업이 수행되지 못했기 때문입니다. 이러한 컬렉션의 설계 문제로 인한 성능저하 원인과 문제점을 분석하고 대처하는 방법을 디자인 튜닝이라고 합니다. 1) 대용량 데이터의 INSERT가 발생하는 Collection의 경우 최초 Extent의 크기를 충분히 설계하여 Extent 증가 시 불필요한 성능 지연이 발생하지 않도록 생성해야 하며, 대용량 데이터의 Full Scan이 자주 발생하는 Collection의 경우에는 Extent가 큰 것이 유라.. 더보기
New NoSQL & mongoDB : (3) Structure - Server Structre Process 영역 Memory 영역 File 영역 - Storage Engine Memory Mapping 엔진 (MMAP) 파일 시스템 기반의 이 엔진은 1.x, 2.x 까지 사용되었습니다. 초당 10만건 이상의 빅데이터에 대한 빠른 쓰기/읽기 작업을 수행한 후 분석, 통계 작업까지 효과적으로 수행할 수 있도록 최적화된 저장 엔진 입니다. 서버 장애 시 복구 작업이 가능한 Journal 로그도 제공합니다. Single CPU 기반의 프로세싱 위주로 처리되기 때문에 CPU 개수보다 충분한 크기의 메모리 자원이 더 요구됩니다. WiredTiger 저장엔진 이는 3.x 버전부터 제공되는 파일 시스템 기반의 저장 엔진입니다. 다수의 사용자가 트랜잭션 위주의 데이터를 처리하는데.. 더보기
New NoSQL & mongoDB : (2) Index&User - Index를 사용하는 이유? 데이터 검색을 빠르게 처리하기 위해서 사용합니다. - Index 종류 각 Index 에 대한 특징은 시간이 날 때 알아봅시다. Non-Unique / Unique Index Single Field / Compound Index Multi Key Index Background Index TTL Index Sparse Index Partial Index GeoSpatial(2d) Index GeoSpatial(2dsphere) Index GeoHayStack Index Text Index Hashed Index Covered Index - 사용자 생성 및 관리 MongoDB는 RDBMS와 달리 스키마와 계정 관계 같은 것이 없습니다. 컬렉션과 별도라고 볼 수 있습니다. OS .. 더보기
New NoSQL & mongoDB : (1) 소개 New NoSQL & mongoDB - Tutorial - 특징 JSON 타입으로 데이터 저장 관리 JSON 이란 ? Java Script Object Notation Replication 및 Shard 기능으로 복제 및 분산처리 가능 또한, MapReduce 를 통해 빅데이터에 대한 빠른 추출 가능 관계형 데이터베이스의 주요기능인 CRUD 위주의 다중 트랜잭션 처리도 가능 Memory Mapping 기술을 통해 빅 데이터에 효율적 처리에 최적화된 메모리 인 데이터베이스 구조 제공 이로 인해 RDBMS에 비하여 적게는 3배 많게는 10배까지 성능 보장 - 용어 Table -> Collection Row -> Document Column -> Field Primary Key -> Object_ID Fiel.. 더보기