문제

누군가 나에게 말할 수 있는지 궁금합니다 MongoDB 또는 couchdb 준비가되었습니다 생산 환경.

나는 지금이 스토리지 솔루션을보고 있습니다 (현재 MongoDB를 선호합니다). 그러나이 프로젝트는 아주 어리기 때문에 관리자가 이것을 채택해야한다고 설득하기 위해 열심히 노력해야 할 것을 예견합니다. 새로운 기술.

내가 알고 싶은 것은 다음과 같습니다.

  1. 오늘날 생산 환경에서 Mongodb 또는 CouchDB를 누가 사용하고 있습니까?

  2. MongoDB/CouchDB를 어떻게 사용하고 있습니까?

  3. 이 새로운 스토리지 메커니즘을 채택했을 때 어떤 문제가 발생 했습니까 (그리고 어떻게 극복 했는가)?

  4. 다루어야 할 마이그레이션 문제를 어떻게 처리 했습니까?

  5. 공유하고 싶은 솔루션 중 하나에 대한 좋은/나쁜 경험이 있습니까?

도움이 되었습니까?

해결책

저는 10GEN (MongoDB의 개발자)의 CTO이므로 약간 편향되어 있지만 MongoDB를 생산에 사용하는 몇 가지 사이트도 관리합니다.

비즈니스 사람 현재 1 년 넘게 생산에서 Mongo를 사용하고 있습니다. 그들은 사용자와 블로그 게시물에서 사이트의 모든 이미지에 이르기까지 모든 것을 사용하고 있습니다.

Shopwiki 실시간 분석 및 캐싱 레이어를 포함하여 몇 가지에 사용하고 있습니다. 그들은 상당히 큰 데이터베이스에 초당 1000 개가 넘는 글을 수행하고 있습니다.

당신이 가면 MongoDB 제작 배포 페이지 생산에서 몽고를 사용하는 사람들이 보입니다.

생산 배포 규모 또는 범위에 대해 궁금한 점이 있으면 사용자 목록에 게시하면 기꺼이 도와 드리겠습니다.

다른 팁

그만큼 BBC 그리고 meebo.com 생산에 CouchDB를 사용하면 내 고객 중 하나도 마찬가지입니다. 다음은 Couch를 사용하는 다른 사람들의 목록입니다. 야생의 couchdb

주요 과제는 문서를 구성하고 관계형 데이터 측면에서 생각을 중단하는 방법을 아는 것입니다.

Sourceforge MongoDB를 사용합니다. 보다 이 프레젠테이션 또는 여기를 읽으십시오.

우리는 Shops (70.0000 품목/상점, 모든 품목의 총 4 백만 개의 속성, 품목 간의 교차 연결)를위한 MySQL의 교체 제로 CouchDB를 실행하고 있습니다.

우리의 목표는 다음과 같습니다.

  1. 마스터 -DB에서 다른 문서가있는 여러 클라이언트로의 쉬운 복제.

  2. "이 속성에 몇 개의 부품이 있습니까? 해당 조건에 맞는 필터"와 같은 빠른 사전 계산 데이터

사리:

  1. 우리 상점은 이제 MySQL보다 훨씬 빠르게 실행되고 있습니다 (MySQL-Database는 1-3 일의 사전 계산 (따라서 한 달에 두 번 업데이트)이 필요하므로 제품 계산 및 필터링을위한 데이터를 준비하고 CouchDB는 5 시간이 필요합니다. 우리는 매일 밤 제품 데이터를 업데이트 할 수 있습니다)
  2. (필터링 된) 데이터 배포 및 상점 노드에 대한 백업 설정은 빠르고 쉽습니다.

그러나 또한 :

  1. 지도/축소 이해와 결합이없는 한계는 매우 어렵습니다.
  2. 외부 프로그램없이 "Delete Where"또는 "Update Where"와 같은 데이터에서 작동하지 않습니다.
  3. 문제가 없다면 복제는 잘 작동합니다. 그런 다음 그 이유가 무엇인지 알아 내기가 정말 어렵습니다 (초보자)
  4. 이 바이너리가없는 CouchDB의 설치 (예, 야생에는 일부가 있지만 모든 OS/버전에는 적합하지 않음)는 Linux Geek이 아니라면 어려울 수 있습니다. 그러나 CouchDB 커뮤니티는 도움이되며 (#CouchDB) 운 좋게도 무료부터 대기업에 이르기까지 서비스를 제공하는 회사 (Cloudant, Iriscouch)가 있습니다.
  5. CouchDB는 앞으로 나아가고 있으므로 많은 변화 (개선)가 진행되어 일하는 방식이 바뀔 수 있습니다. 그러나 기본적인 것들은 안정적으로 남아 있습니다.

결과적으로 : 데이터 생성 및 유지 관리를위한 데이터베이스로서 MySQL은 신뢰할 수 있고 이해하고 처리하기 쉽습니다. 나는 우리가 이것을 바꾸지 않을 것이라고 생각합니다. 그러나 나는 또한 couchdb 뷰의 힘과 복제 설정의 용이성을 놓치고 싶지 않습니다.

생산 소파는 때때로 오해와 잊혀진 로로 테이트로 인해 수개월의 작업 후에 문제를 일으켰습니다 (조회수는 너무 길거나 교수형이 걸리거나 복제 중지)이지만 데이터를 잃어 버리지 않으며 항상 쉽게 재설정 할 수 있습니다.

프로덕션에서 CouchDB를 사용하고 있습니다. 현재 원래 DB 스키마에 없었던 모든 '옵션'필드를 저장합니다. 그리고 지금 나는 모든 데이터를 CouchDB로 옮기는 것에 대해 생각하고 있습니다.

그것은 꽤 위험한 단계입니다. 첫째, 아직 v1.0이 아니기 때문입니다. 둘째, Drivespace Hungry이기 때문에. 내 계산에 따르면 CouchDB 파일 (인덱스 포함)은 동일한 행이있는 MySQL 데이터베이스보다 ~ 30 배 더 큽니다. 그러나 나는 그것이 잘 작동 할 것이라고 확신합니다.

CouchDB 0.11 (3 월 말에 출시)은 1.0의 기능성 릴리스입니다. 즉, 우리는 현재 API와 1.0에 대한 호환성을 유지할 것이므로 이제는 한동안하지 않으면 CouchDB를 다시 살펴볼 수있는 좋은시기입니다.

그만큼 CouchDB 0.11 소스 코드 릴리스는 여기에서 확인할 수 있습니다. 거기 있습니다 이진 설치자 및 기타 케이크는 여기에 연결되어 있습니다.

나는 mongodb에 대해 아무것도 모르지만 Couchdb FAQ:

CouchDB는 생산 준비가 되나요?

예, 참조하십시오 야생에서 CouchDB를 사용하는 프로젝트의 일부 목록. 또 다른 좋은 개요입니다 CouchDB 사례 연구

또한 일부 링크 :

우리는 생산에 CouchDB를 사용하며 이후 프로젝트가 Apache Umbrella 아래로 나오기 직전에 있습니다.

우리는이를 사용하여 DBMS를 사용할 수있는 모든 것을 저장하고 모든 종류의 구조화되지 않은 데이터를 저장합니다. 개인적으로, 나는 당신이 모든 종류의 데이터를 그것에 넣고 상황을 사용하여 상황에 따라 필요하지 않은 것을 컬러로 사용하는 방법을 정말로 좋아합니다.

가장 어려운 부분은 DBMS 사고 방식에서 멀어졌습니다. 우리는 스토리지 형식이 안전하기 위해 변경되었을 때 우리 자신의 마이그레이션 util을 썼으므로 실제로는 문제가되지 않았습니다.

우리는 아직 부정적인 경험을하지 않았지만 다시 한 번 우리는 어떤 종류의 큰 부하에 설정을하지 않았습니다. 나 생각한다 모든 쓰기를 얻는 단일 마스터 서버에서 복제하는 두 개의 슬레이브 유형 서버가 있기 때문에 상황이 잘 작동합니다. 복제가 올바르게 작동하기 위해 그렇게 할 필요는 없다고 확신하지만, 처음에 설정하여 붙어있는 방법입니다.

우리는 CouchDB를 사용하여 모바일 인바운드 및 아웃 바운드 메시지를 저장하고 내가 쓴 몇 가지 사용자 정의보기를 통해이 트래픽을보고합니다. 프론트 엔드는 파이썬으로 작성되었습니다. 우리는 실제 기술적 문제가 없었으며 12 월 말부터 운영되었습니다. 내가 만난 유일한 장애물은 처음에는 Mapreduce의 관점에서 생각했지만 일단 그렇게하는 방법을 알게되면 다른 모든 것이 순조롭게 진행되었습니다.

우리는 현재 제품 수입 및 조작을위한 스토리지 엔진뿐만 아니라 캐싱 레이어로 MongoDB를 사용하고 있습니다. 우리는 10 백만 개 이상의 제품 (1 억 개 이상의 속성)을 관리하고 10 개 이상의 유통 업체에 걸쳐 있으며 MongoDB가없는 전자 상거래 회사입니다.이 작업은 거의 불가능합니다.

우리는 현재 MongoDB를 LAN을 통한 협업을위한 파일 스토리지 서비스로 사용하고 있습니다. 또한 프로젝트와 같은 프로젝트 Trello MongoDB를 백엔드 데이터 스토어로 사용하고 있습니다. CouchDB를 이전에 사용했지만 생산 능력은 없었습니다.

우리는 모바일 백엔드 서비스에서 MongoDB를 사용하고 있습니다. Netmera. 모든 사용자 및 콘텐츠 데이터를 저장하는 데 사용하고 있습니다.

나는 거의 2 년 동안 생산에서 CouchDB를 사용해 왔습니다. 프로젝트가 CouchDB 구현으로 직접 시작되면 마이그레이션 작업이 없습니다. 처음부터 포장까지 단일 전자 제품의 데이터를 저장하는 데이터베이스 역할을합니다.

우리는 높은 정확도에 대한 수요로 센서를 판매하고 있기 때문에 다른 단계에서 많은 테스트를 수행하며이 모든 것이 CouchDB에 하나의 문서에 저장됩니다.

내 경험을 통해 배운 학습 곡선이 있습니다. 이는 견해를 최대한 활용하는 것입니다 (또는 영구적 인 견해라고도 함). 보기는 자주 호출되는 데이터베이스의 일부의 "작은 필터"여야합니다.

내 CouchDB Databse는 다른 거대한 회사만큼 미쳤다. 그러나 지금까지 나는 여전히 잘하고 있습니다. 현재 700MB에 24000 문서가 있습니다.

내가 좋아하는 CouchDB의 기능은 '복제', '문서의 저장 개정판'입니다.

나는 mongodb에서 많은 좋은 리뷰를 읽었으며 기회가 있다면 시도해보고 싶을 것입니다.

우리는 생산에 mongodb를 사용하고 있습니다

www.beachfront.io- SEC 당 5K에 가까운 5K 쓰기 요청 www.beachfrontbuilder.com -500 SEC 당 읽기/쓰기 요청 10M 사용자 데이터 및 OLAP 유지 관리.

데이터 보관과 관련하여 직면 한 유일한 도전은 사용자 지정 구성 요소를 구현하여 극복합니다.

이 질문은 이미 답을 받아 들였지만 이제는 며칠 더 NOSQL DB 많은 훌륭한 기능에 대한 트렌드입니다. 그것은이다 Couchbase; 그대로 실행됩니다 CouchbaseLite 모바일 플랫폼에서 Couchbase Server 서버 측에서.

다음은 Couchbase Lite의 주요 기능 중 일부입니다.

Couchbase Lite는 가벼운 문서 지향 (NOSQL)이며 모바일 앱에 임베딩하는 데 적합한 동기화 가능한 데이터베이스 엔진입니다.

가벼운 수단 :

내장 - 데이터베이스 엔진은 별도의 서버 프로세스가 아니라 앱에 링크 된 라이브러리입니다. 작은 코드 크기 - 셀 네트워크를 통해 종종 다운로드되는 모바일 앱의 중요한 코드 크기. 빠른 시작 시간 - 모바일 장치의 CPU가 상대적으로 느리기 때문에 중요합니다. 낮은 메모리 사용 - 유형의 모바일 데이터 세트는 비교적 작지만 일부 문서에는 큰 멀티미디어 첨부 파일이있을 수 있습니다. 우수한 성능 - 수치는 물론 데이터 및 응용 프로그램에 따라 다릅니다.

문서 지향 수단 :

사전 정의 된 스키마 또는 정규화를 요구하는 대신 유연한 JSON 형식의 레코드를 저장합니다. 문서에는 멀티미디어 컨텐츠와 같은 임의 크기의 이진 첨부 파일이있을 수 있습니다. 응용 프로그램 데이터 형식은 명시 적 마이그레이션없이 시간이 지남에 따라 진화 할 수 있습니다. MapReduce Indexing은 특수 쿼리 언어를 사용할 필요없이 빠른 조회를 제공합니다.

동기화 가능한 수단 :

데이터베이스의 두 사본은 효율적이고 신뢰할 수있는 입증 된 복제 알고리즘을 통해 동기화 될 수 있습니다. 동기화는 주문형 또는 연속 일 수 있습니다 (몇 초의 대기 시간). 장치는 원격 서버에서 큰 데이터베이스의 하위 집합과 동기화 할 수 있습니다. SYNC 엔진은 간헐적이고 신뢰할 수없는 네트워크 연결을 지원합니다. 앱 로직을 통해 합병을 완전히 제어하면 충돌을 감지하고 해결할 수 있습니다. 수정 트리는 데이터 손실 또는 허위 충돌없이 서버 간 서버 (여러 데이터 센터) 및 피어 투 피어를 포함한 복잡한 복제 토폴로지를 허용합니다. Couchbase Lite는 원활한 iOS (Objective-C) 및 Android (Java) 개발을위한 기본 API를 제공합니다. 또한 PhoneGap 용 Couchbase Lite 플러그인이 포함되어있어 친숙한 웹 응용 프로그램 프로그래밍 기술과 PhoneGap 모바일 개발 프레임 워크를 사용하여 개발하는 iOS 및 Android 앱을 구축 할 수 있습니다.

더 많이 탐색 할 수 있습니다 소파베이스 라이트

그리고 Couchbase 서버

이것은 다음 큰 일로갑니다.

말하기 생산, 원활한 장애 조치/복구 둘 다 아기 시터가 필요합니다.
1- Couchbase, 원활한 장애 조치/복구가 없으며 수동 개입이 필요합니다.
재조정은 너무 많은 시간이 걸리고 둘 이상의 노드가 손실되면 너무 많은 위험이 필요합니다.

2- 파편이있는 몽고, 구성 서버를 잃어버린 데이터 복구는 쉬운 작업이 아닙니다.

어도비 벽돌 사용 중입니다 MongoDB 다가오는 출시를 위해 Adobe Experience Manager (전에 데이 CQ) 핵심 DB 엔진으로.

내가 일하는 대행사의 여러 고객이 couchdb 대규모 고객을위한 프로젝트.

둘 다 위대하고 실행 가능한 DBS입니다. :)

다음은 mongodb와 함께 생산 배포 사이트 목록입니다.

  • 뉴욕 타임즈: 사진 제출을위한 양식 구축 응용 프로그램에서 사용합니다. Mongo의 스키마 부족은 생산자가 사용자 정의 양식 필드의 조합을 정의 할 수있는 기능을 제공합니다.
  • Sourceforge: SourceForge 첫 페이지, 프로젝트 페이지 및 모든 프로젝트의 다운로드 페이지에서 백엔드 스토리지에 사용됩니다.
  • Bit.ly
  • Etsy
  • IGN: IGN의 실시간 트래픽 분석 및 RESTFUL CONNSPIN API의 파워.
  • 저스틴 TV: viritality, 사용자 유지 및 기본 솔루션이 제공 할 수없는 일반적인 사용 통계를위한 Justin.TV의 내부 분석 도구
  • 후손
  • 직관
  • 정사각형: Sharded Mongo 데이터베이스는 Foursquare에서 대부분의 데이터에 사용됩니다.
  • 비즈니스 내부자: 2008 년 초부터 사용합니다. 게시물, 댓글 및 이미지를 포함한 모든 사이트 데이터는 MongoDB에 저장됩니다.
  • github: 내부보고 응용 프로그램에 사용됩니다.
  • 시험관: 콜드 퓨전 및 SQL 서버에서 Drupal 7 및 MongoDB로 사이트를 마이그레이션했습니다.
  • Grooveshark: 현재 Mongo를 사용하여 하루에 백만 백만 이상의 고유 한 사용자 세션을 관리합니다.
  • 버즈 피드
  • 원반
  • evite: 분석 및 빠른보고에 사용됩니다.
  • Squarespace
  • 셔터 플라이: Shutterfly 내의 다양한 영구 데이터 저장 요구 사항에 사용됩니다. Mongodb는 Shutterfly가 고객과 인생에서 가장 중요한 사람들 사이의 더 깊고 개인적인 관계를 가능하게하는 타의 추종을 불허하는 서비스를 구축하도록 도와줍니다.
  • 토시
  • 이 공유
  • Mongohq: MongoDB를위한 호스팅 플랫폼을 제공하고 MongoDB를 서비스의 백엔드로 사용합니다. 호스팅 센터 페이지는 Mongohq 및 기타 MongoDB 호스팅 옵션에 대한 자세한 정보를 제공합니다.

그리고 더...

추출 : :http://lineofthought.com/tools/mongodb

다른 데이터베이스 나 도구도 확인할 수 있습니다.

MongoDB는 비즈니스 라이센스와 관련된 몇 가지 문제가 있습니다. 세부 사항은 확실하지 않지만 법무 부서는 우리가 우리 제품에서 MongoDB를 사용할 수 없다고 특정 용어로 알려주지 않았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top