database vs 몽고 - 카산드라를 사용하지 않을 때?





8 Answers

분산 데이터 시스템을 평가할 때는 CAP 정리를 고려해야합니다. 일관성, 가용성 및 파티션 허용 오차 중 두 가지를 선택할 수 있습니다.

카산드라는 최종 일관성을 지원하는 파티션 허용 시스템입니다. 자세한 내용은 필자가 쓴이 블로그 게시물 : Visual Guide to NoSQL Systems를 참조하십시오 .

db

최근 Cassandra 와 관련된 이야기가 많이있었습니다.

트위터, 디그, 페이스 북 등 모든 사람들이 그것을 사용합니다.

언제 그것이 의미가 있습니까 :

  • 카산드라 (Cassandra)
  • 카산드라를 사용하지 마십시오.
  • Cassandra 대신 RDMS를 사용하십시오.



NoSQL의 일반적인 개념은 애플리케이션에 가장 적합한 데이터 저장소를 사용해야한다는 것입니다. 재무 데이터 테이블이 있으면 SQL을 사용하십시오. 관계형 스키마에 매핑하기 위해 복잡하거나 느린 쿼리가 필요한 객체가있는 경우 객체 또는 키 / 값 저장소를 사용하십시오.

물론 실제로 발생하는 실제 문제는 그 두 극단 사이의 어딘가에 있지 않으며 어느 솔루션도 완벽하지 않습니다. 각 상점의 기능과 다른 상점의 사용 결과를 고려해야하며 이는 해결하려는 문제점에 매우 중요합니다.




카산드라를 배치하는 중에 누군가와 대화하면 다 - 대 - 우를 잘 처리하지 못합니다. 그들은 초기 테스트를하기 위해 해킹 작업을하고 있습니다. 나는 이것에 관해 Cassandra 컨설턴트와 이야기를 나누었고 당신이이 문제를 가지고 있다면 추천하지 않을 것이라고 말했다.




@Paco 거품을 터뜨리는 것은 유감이지만 특히 재무 데이터의 경우 트랜잭션 일관성이 매우 중요합니다. 카산드라 (Cassandra)와 같은 데이터베이스에서 강조된 것처럼, 실패한 스크립트는 부작용을 남길 수 있습니다. 부작용은 업데이트 된 테이블과 그렇지 않은 테이블을 포함 할 수 있습니다. 한 예 : £ 100은 사용자 1의 계정에서 사용자 2의 계정으로 이동합니다. 트랜잭션은 각 계정에 대해 기록되어 하나에서 제거되고 다른 계정에 추가되었음을 표시합니다. 물론 그것은 당신의 디자인에 달려 있습니다. 다른 시나리오에서는 은행에 지불합니다. 한 계정에서 자금을 제거하고 다른 계정에 추가해야합니다. 일관성이 부족하면 돈이 시스템에서 누락되거나 중복 계산 될 가능성이 있습니다. 어느 쪽이든, 은행은 문제가 있음을 발견합니다.

트랜잭션 일관성이 비즈니스에 결정적인 경우가 많이 있습니다. 앱이 안전하고 효과적인 방식으로 처리되거나 데이터베이스가 완전히 처리해야하며 후자는 '안전한'옵션입니다.

캐서 앤드라를 통한 조인 지원 부족으로 다른 적절한 앱을 함께 사용하지 않는 한 그 사용법이 제한됩니다. 그 메모에서 트리거 기능, 외래 키 등이 부족합니다. 궁극적으로 당신이 필요로하는 것까지 모두 내려갑니다. 예를 들어 검색 공급자이고 거대한 고객 기반을 보유하고 있다면 Cassandra가 가장 적합 할 것입니다. OLTP와 일부보고 사례 또는 작은로드 볼륨의 경우 요구 사항에 대한 완전한 불일치 일 수 있습니다.




실제 사례를 읽으십시오.

http://planetcassandra.org/apache-cassandra-use-cases/

이 기사의 내용 : http://planetcassandra.org/blog/post/agentis-energy-stores-over-15-billion-records-of-time-series-usage-data-in-apache-cassandra

그들은 DB 동기화가 너무 느리기 때문에 MySql을 선택하지 않은 이유를 자세히 설명합니다.

Cassandra는 Amazon Dynamo 및 기타 고 가용성 NoSQL 데이터베이스와 같습니다.

안정성, 고 가용성 기능. 백업은 최대한 빨리 수행됩니다. 읽고 쓰기

BigTable 클론 인 HBase 보다 좋습니다. [위키 http://en.wikipedia.org/wiki/Apache_Cassandra]

결론 은 다음과 같습니다.

We looked at HBase, Dynamo, Mongo and Cassandra. 

Cassandra was simply the best storage solution for the majority of our data.



카산드라는 다음과 같은 경우에 좋은 선택입니다 :

  1. DB에서 ACID 속성을 요구하지 않습니다.

  2. DB에 많은 양의 글이있을 것입니다.

  3. Big Data, Hadoop, Hive 및 Spark와 통합해야한다는 요구 사항이 있습니다.

  4. 실시간 데이터 분석 및 보고서 생성이 필요합니다.

  5. 인상적인 내결함성 메커니즘이 필요합니다.

  6. 균질 시스템의 요구 사항이 있습니다.

  7. 튜닝을위한 많은 커스터마이징 요구 사항이 있습니다.




DataStax에 따르면, 카산드라는 필요가있을 때 최고의 사용 사례가 아닙니다.

1- 하이 엔드 하드웨어 장치. 2- 롤백 기능이없는 ACID 호환 (은행 거래)




Apache cassandra는 많은 상용 서버에서 대량의 구조화 된 데이터를 관리하기위한 분산 데이터베이스로서 고 가용성 서비스와 단일 실패 지점을 제공하지 않습니다.

archichecture는 순전히 cap theorem에 기반을두고 있습니다. cap theorem은 유용성과 파티션 공차이며 흥미롭게도 결국 일관되게 발생합니다.

사용하지 마세요, 클러스터의 랙에 데이터 볼륨을 저장하지 않는다면 사용하지 마세요. 시계열 데이터를 저장하지 않으면 사용하지 마십시오. 서버를 패터닝하지 않으면 사용하지 마십시오. 강력한 일관성이 필요한 경우에는 사용하지 마십시오.




Related