일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- c++
- 확률
- Artificial Intelligence
- 주일설교
- 딥러닝
- 빅 데이터
- node.js
- probability
- Statistics
- 통계
- 김양재
- 몽고디비
- data science
- R
- MongoDB
- 빅 데이타
- Deep learning
- 김양재 목사님
- 김양재 목사
- openCV
- Big Data
- WebGL
- 빅데이터
- 데이터 과학
- 인공지능
- No SQL
- nodeJS
- Machine Learning
- 우리들교회
- 빅데이타
- Today
- Total
목록No SQL (40)
Scientific Computing & Data Science
by Geol Choi | March 29, 2014MongoDB의 슬레이브 노드의 역할을 정리하면 다음과 같다: 데이터 유실 또는 마스터 노드의 다운타임에서의 패일오버 메커니즘 기능 수행백업을 위한 소스읽기 스케일아웃데이터 처리 수행 이 중 "읽기 스케일아웃"은 데이터를 읽을 때 PRIMARY(마스터)에 집중되는 부담을 SECONDARY(슬레이브)에 분산하는 것이 목적이다. 이 때 주의할 것은, MongoDB에서 데이터 복제는 비동기(Asynchronous)로 진행된다는 것이다.쓰기에 대한 연산 부담의 분산은 향후 자동샤딩(Autosharding) 부분에서 집중적으로 다루도록 하겠다.읽기 스케일아웃 방법은 다음과 같다.우선 Replica Set이 설정되어 있다고 가정한다. Replica Set을 설정하..
by Geol Choi | March 27, 2014이번 글에서는 MongoDB의 가장 중요한 개념 중 하나인 Replica Set에 대해 알아보도록 하겠다. Replica Set은 기본적으로 자동 패일오버 기능을 갖는 마스터-슬레이브 클러스터이지만, 마스터-슬레이브 클러스터의 가장 큰 차이점은 마스터 노드가 가변적이라는 것이다. 즉, 현재 마스터 노드로 지정된 인스턴스가 다운될 경우 다른 노드가 마스터 노드로 자동 지정된다는 점이다. 마스터-슬레이브 클러스터와 Replica Set과의 공통점은, 단 하나의 마스터 노드(PRIMARY 노드라고도 함)와 여러 개의 슬레이브 노드(SECONDARY 노드라고도 함)를 갖는다는 점이다. 개념적으로는 별 것 아니지만 실행에 있어서 어려움이 있을 것이란 예상이 들기..
by Geol Choi | March 26, 2014데이터베이스의 관리자 역할 중 가장 중요한 것 중 하나는 아마도 데이터를 안전하게 지키는 것이다. 이를 위해 가장 기본적인 일은 원본 데이터를 실시간에 가깝게 끊임없이 복제 데이터를 만드는 것이며, 마스터-슬레이브 복제(Master-Slave Replication) 모델이 이러한 기능을 수행하는 것이다. 즉, 원본 데이터는 마스터의 데이터베이스에 저장하고 하나 이상의 슬레이브를 만들어 각 슬레이브의 데이터베이스에 마스터의 데이터를 복제하는 것이다. 다음 그림은 클라이언트 어플리케이션과 마스터-슬레이브 간 관계를 설명한 것이다. [그림 1.] 클라이언트 어플리케이션-마스터(Primary)-슬레이브(Secondary) 간 데이터 관계. 마스터-슬레이브 복제..
by Geol Choi | March 25, 2014이번 글에서는 MongoDB의 관리자 입장에서 보안 측면을 다루도록 하겠다. 최근 금융권에서 일어나고 있는 개인정보 유출 사고를 보면 보안이 얼마나 중요한 일인지 새삼 깨닫는다. 특히 정보들이 DB에 저장될 것이므로 DB의 보안에 대한 중요성은 굳이 언급할 필요조차 없을 것이다.그러면 어떻게 하면 MongoDB가 안전한 환경에서 운용되도록 할 것인지에 대한 내용을 다루도록 하겠다. 관리자 계정MongoDB에는 admin이라는 데이터베이스가 기본적으로 존재한다. 어느 데이터베이스든 간에 사용자를 등록할 수 있지만, admin 데이터베이스에 사용자로 등록되면 일종의 관리자 권한이 부여된다. 즉, admin 외의 사용자는 다른 데이터베이스에 쓰기나 읽기가 불..
by Geol Choi | March 25, 2014 Mac에서 MongoDB 서버를 실행 후, 커맨드라인 도구로 진입할 때 다음과 같은 메시지가 출력될 경우가 있다:"WARNING: soft rlimits too low. Number of files is 256, should be at least 1000" $ mongo MongoDB shell version: 2.4.9 connecting to: test Server has startup warnings: Tue Mar 25 16:33:41.942 [initandlisten] Tue Mar 25 16:33:41.942 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, ..
by Geol Choi | March 24, 2014MongoDB를 활용한 개발자가 아닌 관리자라면 성능과 헬스를 모니터링하는 것이 중요하다. MongoDB의 모니터링 전략은 세 가지 정도로 요약할 수 있다:첫번째, 데이터베이스의 활동을 실시간으로 리포팅하는 유틸리티를 활용하는 방법이다. 이 유틸리티는 MongoDB 다운로드 패키지에 포함되어 있다.두번째, 데이터베이스 명령을 활용하는 방법이다. 이 명령을 통해 현재 데이터베이스의 상태에 대한 통계를 확인할 수 있다.세번째, MMS 모니터링 서비스(MMS Monitoring Service)를 활용하는 방법이다.MMS는 MongoDB Management Service의 약자이며, 데이터에 대한 시각화 및 경고 등을 제공하는 서비스이며, MongoDB가 제공..
by Geol Choi | March 24, 2014이번 글에서는 MongoDB를 시작하는 것에 대해 알아보도록 하겠다. 이전의 내용들을 이해하거나 실습을 통해 학습하였다면 이미 시작하는 방법을 알고있는 것이라 할 수 있지만 이번 글에서는 시작과 관련된 여러가지 옵션 또는 셋팅에 대해 좀 더 자세히 다룰 것이다. 커맨드라인에서 시작하기커맨드라인 툴(Mac OS: Terminal, Windows: cmd)에서 MongoDB를 시작할 때 "mongod"를 실행한다. 이 명령어 실행 시 자주 사용되는 옵션에 대하여 정리하였다. --dbpath데이터가 저장될 디렉터리를 지정한다. 만약 이 옵션이 생략되면 디폴트로 Linux에서는 "/dada/db", Windows에서는 "C:\data\db\"로 지정된다.mon..
by Geol Choi | March 6, 2014지금까지는 데이터가 추가되거나 삭제될 때 저장 사이즈가 동적으로 변하는 컬렉션에 대하여 다루어 왔다.MongoDB는 저장 사이즈가 고정된 다른 유형의 컬렉션을 제공하는데, 이 컬렉션을 "Capped Collections"라고 한다. 가장 큰 특징 중 하나는 "aging-out"으로써, Capped collections는 도큐먼트가 저장되는 순서 그대로 저장되며 만약 저장소("queue"라고 함)가 가득 차 있을 경우 가장 오래된 도큐먼트를 삭제하고 새로운 도큐먼트를 저장한다.따라서, 저장소의 모양을 다음과 같이 형상화 할 수 있다:[그림 1] 새로운 도큐먼트는 queue의 맨 마지막에 들어온다.[그림 2] queue가 가득차게 되면, 최고(最古)의 도큐먼..
Written by cinema4d이번 글에서는 DB 명령어에 대해 알아보도록 하겠다. 그 동안 앞선 글에서 다루지 않았던 수많은 MongoDB의 명령어에는 어떤 것들이 있는지 훑어볼 수 있는 기회가 될 것이다.(물론 하나하나 다루지는 않는다. 여기서 다루지 않은 명령어들은 MongoDB의 공식 도큐먼트 페이지를 통해 알아보기 바란다.) 우선 "db.listCommands()" 명령을 통해 DB 명령어의 리스트를 살펴보도록 하자:> db.listCommands() _isSelf: no-lock { _isSelf : 1 } INTERNAL ONLY _migrateClone: no-lock adminOnly slaveOk internal - should not be called directly _recvCh..
by Geol Choi | February 16, 2014MongoDB는 복잡한 데이터 분석을 위해 다양한 맵리듀스(Map Reduce) 등 다양한 집합(Aggregation) 도구를 제공한다. countcount 연산자는 컬렉션 내의 도큐먼트 개수를 파악할 수 있는 메써드이다.다음과 같이 "people" 컬렉션에 3개의 도큐먼트를 추가한 후,> db.people.insert({username: "user1"}); > db.people.insert({username: "user2"}); > db.people.insert({username: "user3"}); count() 메써드를 이용하여 개수를 구하면 다음과 같다:> db.people.find().pretty() { "_id" : ObjectId("5..