티스토리 뷰
어쨋든 실시간으로 계속 유입되는 대용량의 데이터를 가지고 MongoDB 콜렉션(Collection)에 등록을 하지만, 결국 그 데이터를 가지고 일련의 어떤 처리를 하고 나면 더 이상 쓸모 없는 데이터이므로 삭제에 대한 이슈가 생겼다는 것이다. 이 임시적인 데이터에 대한 삭제의 방법을 아래 4가지로 나눴다.
1. 처리할때마다 한 레코드씩 삭제(remove).
2. 처리 마지막에 모든 레코드를 삭제(remove).
3. 처리 마지막에 콜렉션(collection - mongoDB에서의 테이블 개념)을 날려(drop)버리는 것.
4. 처리 마지막에 데이터베이스(database - 콜렉션들의 집합) 를 날려(drop)버리는 것.
100,000 documents (~1.5GB) 데이터를 가지고 성능 실험을 했으며, 그 결과는 다음과 같다.
Test |
처리평균시간 |
1번 결과 |
66.9 s |
2번 결과 |
23.0 s |
3번 결과 |
0.01 s |
4번 결과 |
0.22 s |
이 테스트는 아주 인위적으로 셋팅하여 실행했다. 모든 데이터 항목은 같으며, 일관되게 동일한 데이터 크기를 가지고 셋팅했다. 대용량의 컬렉션 및 데이터베이스들을 위해서는 각각의 항목을 삭제하는 것보다는 drop 시키는 게 훨씬 효율적임을 강조하고 있다. 결국 이 회사의 시스템은 데이터베이스(database) 단위로 drop 시켜 낮은 비용으로 오래된 데이터들을 처리할 수 있게 되었다.
(원문 : http://www.triggeredmessaging.com/blog/mongodb-with-high-volume-data )
- Total
- Today
- Yesterday
- MyBatis
- Oracle
- ggplot
- SVN
- 자급제폰
- docker
- MongoDB
- eclipse
- 데이터쉐어링
- 막대그래프
- python
- ktm모바일
- 알뜰요금제
- Spring
- 개러지밴드
- vagrant
- 셀프개통
- ubuntu
- heroku
- MySQL
- java
- 마인크래프트
- javascript
- Google Chart Tools
- 도넛차트
- 이클립스
- ggplot2
- 아이맥
- github
- R
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |