MongoDB는 생각보다 많이 파일디스크립터를 사용합니다.(커넥션풀의 소켓이나 인덱스를 생성할 때 임시파일을 많이 사용함)그래서 저는 쉘스크립트를 작성해서 파일개방수를 모니터링하고 있는데스크립트는 아래와 같이 간단합니다. ex) mongos_mon.sh-------------------------------------------------------pid=`cat /log/pid/mongos.pid`while truedols -l /proc/$pid/fd|wc -lecho '-------------------------'sleep 30done------------------------------------------------------- >컴퓨터 프로그래밍 분야에서 파일 서술자(file descript..
MongoDB 3.6 기준으로 mongoexport, mongoimport 사용시에 null 값을 갖는 필드를 csv로 저장한 후에불러올 때 null값 그대로 옮겨지지 않습니다.문자열 필드일 경우 {name:null} -> {name:""} 값으로 되어 버립니다.MongoDB에서는 null과 ""는 다르게 인식하니 혼란이 생길 수 있습니다.Json으로 export 받고 import하면 null값 그대로 옮겨 집니다.다만, Json으로 export하면 "_id"필드가 무조건 저장이 됩니다.개인적으로는 csv가 불필요한 오버헤드도 없어서 null 문제 빼고는 선호하는 편입니다.
MongoDB와 같은 NoSQL의 최대 장점이자 단점은 Schema-Free입니다. 즉 데이터를 넣을 공간을 미리정의할 필요가 없다는 것이죠.그래서 도큐먼트마다 필드의 갯수나 타입도 다양하게 저장해서 활용할 수 있습니다.스키마가 없으니 데이터를 저장할 때 편하지만, 개발자 실수로 원하지 않은 도큐먼트가추가되는 일이 흔히 발생합니다.MongoDB에서는 RDBMS의 제약조건과 비슷한 기능으로 이런 단점을 보완할 수 있습니다."collMod" 명령으로 컬렉션에 유효성을 추가할 수 있는데, "collMod"는 'dbAdmin' 역할이 필요합니다. 해당 데이터베이스 유저중 하나에 'dbAdmin' 역할(role)를 부여하고, 그 계정으로 접속한 다음에유효성을 추가하면 됩니다.예시로 member라는 컬렉션에 no라..
csv 파일을 특정 컬렉션에 import 할 때 필드의 데이터 타입이 원하지 않게 들어가는 경우가 있습니다.예를 들어 123 값을 숫자가 타입이 아니라 문자열 데이터로 넣어야 하는데 별도 지정이 없으면 숫자로 들어가는 경우가 있습니다.csv 파일에서 필드의 구분은 ","로 할 뿐 각각의 데이터가 문자열인지 숫자인지 구분이 안되기 때문에아래와 같이 두가지 방법으로 이것을 해결할 수 있습니다. 첫번째 방법csv 파일 첫번째 줄에 필드명과 데이터 타입을 아래와 같이 넣어 주면 됩니다.---------------------- a.csv ----------------------------------member_no.string(), name.string()1234,홍길동------------------------..
if~ 문과 같은 조건문을 MongoDB에서는 아래과 같이 사용하실 수 있습니다.{ $cond: { if: , then: , else: } }또는{ $cond: [ , , ] } 위 구문처럼 $cond 오퍼레이터를 사용하면 else if 를 사용할 수 없습니다.else if 처럼 다중 비교문이 필요하다면 $switch 오퍼레이터를 사용해야 합니다.{ $switch: { branches: [ { case: , then: }, { case: , then: }, ... ], default: }}$cond와 $switch는 aggregate stage에서 $group, $project 모두에서 사용할 수 있습니다.
몽고디비로 빅데이터 분석시스템을 아직까지 구축 중에 있습니다.한정적인 자원으로 수행하다 보니 생각보다 더딥니다.프로젝트 막바지에 다다르니 "설계"의 중요성이 새삼 다시 되새겨 졌습니다.NoSQL이지만 데이터모델링이 잘 되어야 쌓아둔 데이터를 쉽게 활용할 수 있고,몽고디비 버전마다 조금씩 다른 특성을 최대한 파악하고 시작해야 삽질을 최대한 피할 수 있습니다.다른 NoSQL제품에 비해 몽고디비가 완성도가 높아 그나마 비교적 프로젝트를 진행할 수 있었습니다.끝으로 몽고디비에 관심이 있으신 분은 유튜브에서 아래 영상을 보시면 많은 도움이 되니 꼭 보시길 추천 드립니다.https://youtu.be/EE8ZTQxa0AM
소스코드 받을 수 있는 곳 = https://www.mongodb.com/download-center#previous 몽고디비는 오픈소스 NoSQL 제품입니다.상용버전인 "Enterprise Server"는 소스가 공개되어 있지 않지만, 무료 버전인 "Community Sever"의 소스는 공개되어 있습니다.몽고디비는 버전 넘버링에서 두번째 숫자가 짝수이면 안정버전, 홀수이면 개발버전입니다.바이너리 파일로는 3.7.x가 있는데, 개발버전이라 소스는 안정버전인 3.6.x가 공개가 되어있습니다.3.x 버전을 사용하시려면 3.6.x 버전으로 내려 받으시면 됩니다.C++언어로 작성이 되었네요.현재 가장 최신 버전인 4.0.1 버전과 회사에서 사용중인 3.6.x에서 가장 최신인 3.6.7 버전을 다운로드 받았습니..
URL = https://www.percona.com/blog/2016/08/12/tuning-linux-for-mongodb/ MongoDB를 가장 많이 설치하는 OS는 리눅스 입니다.샤드클러스터 및 레플리카셋을 구성해서 고가용성을 확보하는 것도 중요하지만,그에 앞서 우선 MongoDB가 최상의 상태로 동작할 수 있도록 리눅스시스템 설정 값을 튜닝해서 먼저 적용해 주어야 합니다.실제 프로젝트를 진행하다 보니 설정 값의 차이로 인해서 성능이 극과 극을 달리는 경우가 있었습니다.대다수의 NoSQL 제품이 기술지원 및 컨설팅 받기가 쉽지 않기 때문에 많은 기술적 검토와 POC가 이루어져야성공적으로 도입해서 사용할 수 있습니다.
- Total
- Today
- Yesterday
- node.js
- 화분벌레
- 로니카 BCS
- 르세라핌
- 파나소닉 비데 DL-EH10KWS
- 별이 빚나는 밤
- 증권정보포털
- JMW 헤어드라이기기
- Pixel Pals
- 루미큐브 종류
- Sybase IQ
- 카카오 에드
- 매직 트랙패드2
- 고체 향수
- 코라나 19
- weka
- Life Chair
- 빈센트 반 고흐
- 유가바이트디비
- 배당급
- 남설 팔찌
- 오미크론
- GKRS
- yugabyteDB
- 별잉 빛나는 밤
- 홈 오피스
- 톡토기
- 브리다 정수기
- 솔리드 쿨론
- VARIDESK
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |