일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 우리들교회
- nodeJS
- Big Data
- Deep learning
- R
- data science
- 주일설교
- Artificial Intelligence
- Machine Learning
- 빅데이터
- No SQL
- 확률
- node.js
- 통계
- 김양재 목사
- 빅데이타
- 빅 데이타
- 빅 데이터
- Statistics
- probability
- 김양재
- MongoDB
- 데이터 과학
- 김양재 목사님
- 인공지능
- c++
- 몽고디비
- WebGL
- openCV
- 딥러닝
- Today
- Total
목록MongoDB (56)
Scientific Computing & Data Science
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 12, 2014프로젝트 파일 다운로드이번 글에서는 Node.js를 이용한 서버 스크립팅과 Node.js 상에서 구동되는 MongoDB 모듈인 Mongoose를 이용하여 회원 관리 및 블로그 포스팅 기능이 포함된 웹 페이지를 만들어 보도록 하겠다.서버 응답에 대하 클라이언트-사이트 HTML 렌더링 방식은 HTML5의 JavaScript 형식을 지원하는 "ejs(Embedded JavaScript)"가 활용되었다. 이를 위해, Node.js의 ejs 엔진 모듈이 사용되었다. 차례사전 이해 요구사항사전 준비사항MongoDB 설치 및 실행Node.js 설치 및 실행웹 페이지 전체 구조프로젝트 폴더 전체 구조Node.js 패키지 모듈 설치전체 논리 흐름app.jsindex.j..
by Geol Choi | March 10, 2014이번 글에서는 "데이터베이스 간 참조"에 대하여 알아보도록 하겠다. 도큐먼트를 참조하는 방법은 크게 두 가지가 있는데, 하나는 수동 참조(Manual Reference)이며 다른 하나는 "DBRef"를 사용하는 것이다.그러면 각각에 대하여 자세히 알아보자. 수동 참조수동 참조 방식은 참조할 다른 도큐먼트의 아이디(ObjectID)를 도큐먼트 내 하나의 키(key)로 저장하는 것이다. 즉, 키 값인 아이디를 통해 참조할 도큐먼트를 얻어내어 해당 도큐먼트의 다른 데이터를 얻는 방식이다. 이 방법은 간단한 방식으로 대부분의 경우에서 사용된다.'백문이 불여일견'이므로 예제(예제는 MongoDB의 공식문서를 참조하여 작성하였다)를 통해 자세히 설명하도록 하겠다...
by Geol Choi | March 6, 2014이번 글에서는 비교적 큰 사이즈의 바이너리 파일을 저장하는 메커니즘인 "GridFS"에 대해 알아보도록 하겠다.예를 들어, 블로그 같이 글을 작성하는 사이트를 만들어 DB와 연동할 경우 텍스트만이 아닌 이미지, 또는 특정 어플리케이션의 바이너리를 저장해야 할 것이다. MongoDB는 이러한 바이너리 파일을 효율적으로 관리하는 메커니즘을 제공하는데 이것이 GridFS이다. GridFS를 사용해서 파일을 저장해야 하는 이유를 들면 다음과 같다:GridFS는 MongoDB를 위해 설정한 "replication"이나 "autosharding"을 활용한다. 이는 패일오버(Failover) 및 스케일아웃(Scale-out)을 하는데 매우 쉽다. (Replicatio..
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 | March 2, 2014앞의 글에서 설명했던 집합(aggregation) 연산자인 count, distinct, group으로 할 수 있는 모든 것 뿐만 아니라 더 많은 일들을 맵리듀스를 통해 할 수 있습니다. 특히 다중의 서버를 통해 집합 연산자를 쉽게 병렬로 처리할 수 있습니다. 맵리듀스는 문제를 여러 개의 덩어리로 분할하고, 각 덩어리를 다양한 머쉰으로 전송하고, 각 머쉰이 문제의 각 부분을 해결하도록 합니다. 모든 머쉰에서 처리가 모두 마무리되면 솔루션 결과를 모두 모아서 전체적인 솔루션으로 합칩니다.맵리듀스는 다음과 같은 절차로 처리됩니다.(1) 첫번째 단계는 "맵(Map)"이며, 이는 연산을 컬렉션 내의 각 도큐먼트로 매핑하는 것입니다. 이 연산은 "아무 것도 하지 ..
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..
by Geol Choi | February 9, 2014이전 글에서 약속하였듯이 이번 글에서는 "$snapshot" 쿼리 옵션에 대해서 자세히 알아보도록 하겠다. 일반적인 데이터 처리 절차는 다음과 같다: MongoDB로부터 도큐먼트를 불러오고, 이에 대한 처리를 한 후, 처리에 대한 결과를 다시 저장한다. 예를 들어 다음 코드를 살펴보자.cursor = db.myCollection.find(); while (cursor.hasNext()) { var doc = cursor.next(); doc = process(doc); db.myCollection.save(doc); } 위의 코드 내용을 살펴보면,변수 "cursor"에 myCollection으로부터 검색된 도큐먼트를 저장하였으며,"cursor"에 저..