Tagged: Database

MongoDB Index#.2 B-Tree Index

MongoDB Index#.2 B-Tree Index 이전 포스팅   B-Tree Index 이전 포스팅에서 MongoDB의 기본 인덱스는 B-Tree 인덱스로 되어 있다고 설명했습니다. B-Tree 인덱스는 MongoDB 뿐만 아니라 다양한 RDBMS들에서도 채택하고 있을 만큼 인덱싱 알고리즘 중에서 가장 일반적이고 오래된...

MongoDB Index #.1 Architecture

MongoDB Index #.1 Index 란? DBMS에서 인덱스란 컬럼과 레코드가 저장된 위치를 key-value로 관리되어지는 검색 속도를 향상시키기 위한 자료구조 입니다. 프로그래밍 언어를 공부하다 보면 SortedList와 ArrayList라는 자료구조를 접하게 되는데, DBMS의 인덱스는 SortedList와 동일한 자료 구조이며 데이터 파일은...

Elastic Search Kibana 설치 후 Stack 모니터링 설정

  Elastic Search Kibana 설치 후 Stack 모니터링 설정 지난 포스팅에 이어 Kibana 설치를 하고 엘라스틱 서치와 키바나 스택에 대한 모니터링 등록까지 진행할 예정입니다.   Kibana 설치 지난 포스팅에서 yum을 이용해 엘라스틱 서치를 설치를 했기...

MongoDB Shard Cluster 재구동 순서

  MongoDB Shard Cluster 재구동 순서 샤드 클러스터는 샤드 클러스터에 등록된 Replica Set과 Config 서버 등 다양한 리소스가 물려 있기 때문에 재구동 절차에도 신경을 써야합니다.   MongoDB Shard Cluster 종료 Mongos 종료 1.1 밸런서 비활성화...

MongoDB Aggregation

  Aggregation FIND로는 처리할 수 없는 복잡한 데이터 분석 기능을 제공하는 기능입니다. 일반적으로 SQL에서 GROUP BY 절로 처리할 수 있는 기능들을 샤딩된 환경에서 실행할 수 있게 해줍니다.   Aggregation의 목적 기존의 MongoDB에 맵리듀스라는 분석 기능을...

MongoDB의 읽기 연산

  MongoDB의 읽기 연산 읽기 작업이란 쿼리를 통해 테이터를 반환하는 핵심 연산 기능으로 쿼리는 단일 컬렉션에 도큐먼트를 선택합니다. MongoDB가 클라언트에게 반환하는 도큐먼트를 식별하는 기준(criteria) 또는 조건(conditions)들을 쿼리에서 설정할 수 있습니다. 또한 쿼리는 반환된 도큐먼트로부터 필드를...

MongoDB에서 n-gram Full text Search 이용하기

  Percona MongoDB MongoDB를 헤비하게 사용하던 K사에 다니셨던 지인분이 MongoDB 커뮤니티를 사용할 것이라면 Percona MongoDB를 사용해보는건 어떻겠냐고 추천을 해주셨습니다. K사에서도 Percona 버전을 사용했다고 하시더군요. Percona MongoDB를 추천받게 된 계기는 이렇습니다. MongoDB의 검색엔진, Full text search의...

MongoDB의 쓰기 연산

  도큐먼트 쓰기 동작 쓰기 동작은 MongoDB 인스턴스에서 데이터를 만들거나 수정하는 모든 작업을 말합니다. 쓰기 작업은 단일 컬렉션을 대상으로 하며, 단일 도큐먼트 레벨에서 원자적으로 실행됩니다. 다음은 SQL과 MongoDB의 BSON 쿼리의 비교입니다. SQL MongoDB BSON 쿼리...

MongoDB의 일반 계정 생성

  MongoDB의 일반 계정 생성 다른 데이터베이스도 그렇고, 서버를 사용하기 위한 OS에서도 그렇고 가장 기본이 되는 보안중에 하나가 유저계정과 패스워드 입니다. MariaDB나 PostgreSQL도 마찬가지 이지만, 기본적으로 DB를 생성하면 사용할 계정을 생성해 줘야합니다. MongoDB의 경우 보안을...

MongoDB 기준필드가 다른 도큐먼트 동시에 업데이트

  MongoDB 기준필드가 다른 도큐먼트 동시에 업데이트   MongoDB는 Insert 작업을 하거나 Update를 하거나 할때 여러개의 도큐먼트를 동시에 처리할 수 있는 insertMany, updateMany라는 명령어가 있습니다. 다수의 도큐먼트에 업데이트시 $set 연산자를 이용하여 기준 필드는 정하고 updateMany 명령을...

MongoDB Shard Cluster 구성하기

  MongoDB Shard Cluster 구성하기 MongoDB를 선택하는 큰 이유중에 하나는 바로 클라우드 환경에서 Scale-Out을 통한 부하 분산을 처리하기 위한 것이죠. MongoDB는 제 지인 말로 샤딩에, 샤딩을 위한, 샤딩에 의한! 데이터베이스라고 합니다. 자체적으로 Shard Cluster 기능을...

MongoDB 복제 아키텍처

    MongoDB 복제 아키텍처 MongoDB는 Secondary가 Primary에서 OpLog를 가져온 다음 OpLog를 재생해서 데이터를 동기화합니다. Secondary멤버는 Primary뿐만 아니라 다른 Secondary 멤버의 OpLog를 재생할 수도 있습니다.   OpLog OpLog는 Operation Log의 약자로, MongoDB의 복제를 위해서만 사용됩니다....

MongoDB Replica Set에 Arbiter 추가 및 멤버 제거

  MongoDB Replica Set에 Arbiter 추가 및 멤버 제거 아비터 추가하기 mongodb를 사양이 낮은 남는 서버나 다른 용도의 서버에 mongod을 띄웁니다. 한 노드에 여러개의 mongod를 포트만 다르게 해서 구동할 수 있습니다. 아비터로 쓸 mongod의 config...

MongoDB Replica Set 세부 설정값 조정하기

  Replica Set 세부 설정값 조정하기 복제에 관련된 설정된 값들, 현재 적용된 값을 확인하기 위해 지난 포스팅(MongoDB Replica Set 구성하기)에서 rs.conf() 명령어를 사용하면 된다고 했습니다. rs0:PRIMARY> rs.conf() { “_id” : “rs0”, “version” : 1, “term”...