0

this discussion을 인식하면 추가로 스핀이 발생합니다.couchdb를 프로덕션 서버에 연결하는 대신 중개 관계형 데이터베이스를 사용하는 경우

현재 우리 조직의 엔지니어 중 제목 질문에 대해 토론하고 있습니다.

비 관계형 데이터베이스 (즉, CouchDB)를 프로덕션 서버에 연결하는 것은 결코 바람직하지 않다는 것을 의미합니다. 그의 건축 제안은 두 가지 사이의 일종의 버퍼 레이어 역할을하는 중개 관계형 데이터베이스를 소개하는 것이 었습니다 (그는 Postgres-> Flask/Django와 같은 ORM으로 SQLAlchemy를 특별히 추천했습니다)

다른 엔지니어 우리의 (상대적으로 낮은) 페이지 뷰를 감안할 때, 우리는 CouchDB에서 모든 것을 생산에 직접 할 수 있다고 주장합니다.

nonrelational -> web pagenonrelational -> relational -> web page 스키마의 장단점에 대해 자세히 알고 싶습니다.

+0

회사와 개발자가 프로덕션 환경의 특정 데이터베이스를 지원할 준비가되지 않은 경우에는 사용하지 않아야합니다. 내부적으로나 외부 지원 옵션을 사용하여 시간과 기술이 요구 사항을 충족시키지 못하는 경우 기술이 사용자의 요구를 지원한다면 준비가 된 것입니다. CouchDb는 준비가되어 있다면 프로덕션 준비가되었습니다. – WiredPrairie

답변

1

는 프로덕션 서버

이 나에게 위험 독단적 소리까지 비 관계형 데이터베이스 (즉, CouchDB를)를 훅하는 것은 좋은 방법이 아닙니다.

CouchDB와 웹 서비스간에 관계형 데이터베이스를 사용하는 데는 전혀 이유가 없습니다. 무엇을위한 '버퍼'데이터베이스가 있습니까? CouchDB가 아닌 것은 무엇입니까? 또는 관계형 DB를 사용할 수 있다면 왜 CouchDB를 사용해야할까요?

내가 생각할 수있는 반법적인 논증은 데이터에 필요한 관계형 모델링이 필요하고이를 제대로 수행하기 위해 관계형 데이터베이스로 변환해야하고 정상적인 귀하의 웹 서비스에 대한 인터페이스. 이 경우에는 독립형 관계형 데이터베이스 (또는 그래프 데이터베이스 또는 문서 저장소가 아닌 다른 데이터베이스) 만 사용해야합니다.

한편, 데이터 중복과 관련된 데이터 충돌의 잠재 성을 어떻게 든 발견하고 수정해야하며, 추가 시스템을 구축하고 유지 관리해야하는 추가 복잡성이 있습니다. 두 개의 DB를 동기화하고 데이터를 모델링하는 두 가지 방법 간의 변환 문제, CouchDB의 여러 가지 장점을 부정하는 것 (유연한 스키마, 단일 실패 지점을 제공하지 않는 데이터 복제, 임의로 구조화 된 데이터, 쉽게 확장 성, 편리한 HTTP 인터페이스 등)

저는 현재 약 20 개의 CouchDB를 성공적으로 배포하고 많은 데이터 센터에 분산되어 있으며 수천 명이 사용하고 있습니다. 서버로, 매일 수백만 명의 사용자를 지원합니다. 확실히 생산 준비 상태이며 인프라 성능 설정으로 무엇을하는지 아는 한 성능이나 안정성에 대한 실질적인 우려는 없습니다.