2011-01-31 5 views
5

통계 데이터를 저장하기위한 데이터베이스를 선택해야합니다 (사실 이것은 일련의 타임 스탬프 값 데이터입니다). 사실상 모든 데이터베이스에서이 문제를 처리 할 수 ​​있지만 두 가지 요구 사항이 있음을 이해합니다.Erlang에서 통계를 저장하기위한 최상의 데이터베이스

  • 데이터 (10 기가 바이트)를 많이 처리하고 을 빠르게 연결할 수 있어야합니다.
  • 안정적이고 유지되어야하며 얼랭의 편리한 인터페이스 인 이 있어야합니다.
  • 파이썬에서 사용할 수 있어야합니다. 크기가 한계에 도달하면 다시 쓰는 기존 데이터 과 함께 덮인 크기 수집 :
  • 는 MongoDB의에서 " 컬렉션 출장"라는 것은 같은 을 할 수 있어야합니다.

나는 몽고에 대해 생각했지만 emongo는 약간 죽은 것 같습니다. 마지막 커밋은 7 개월 전이었습니다.

+0

CouchDB를 살펴 보았습니까? –

+0

네,하지만 다른 대안에 대해 듣게되어 기쁩니다. – lambdadmitry

답변

1

postgresql 및 pgsql 드라이버는 최상의 솔루션이라고 생각합니다.

+1

귀하의 조언을 설명해 주시겠습니까? – lambdadmitry

+0

저는 프로젝트에서 mnesia와 couchdb를 사용합니다.이 db는 대용량 데이터 세트에는 적합하지 않습니다. 그렇다면 postgresql에는 python에 대한 드라이버가 있습니다.나는 무겁게 메시지 서버에서 내 작품 pgsql/erlang를 사용하고 postgresql 아직 불만이되지 않았습니다 – 0xAX

+0

통계 데이터를 처리하는 관계형 데이터베이스를 사용하는 것이 좋지 않을 거라고 생각, 그냥 완전히 다른 접근 방식입니다 – keymone

1

디스크의 파일을 회전 시키면 요구 사항이 충족됩니다. 요점은 데이터를 빠르게 검색하고 싶지 않다는 것입니다.

0

redis은 꽤 가까운 경쟁자입니다.

현재 유일한 제한은 데이터 집합의 크기입니다. 데이터 집합의 크기는 메모리에 모두 저장하거나 키 공간 만 메모리에 저장해야하는 VM 방법을 사용해야합니다 (단, 실제 데이터가 좋을 수도 있지만) 시작 시간이 매우 느립니다.

개발자 인 Antirez는 문제를 해결할 수있는 diskstore이라는 백엔드로 백엔드를 다시 쓰고 있습니다. 아직 구운 것은 아니지만이 프로젝트에 많은 확신을 가지고 있습니다.

캡핑 된 컬렉션에 대해 redis는이를 처리하기위한 직접적인 방법이 없습니다. 그러나 LTRIM 함수를 사용하면 도움이 될 수 있습니다.

3

Riak (여기는 Riak comparison to MongoDB입니다). Erlang으로 작성되었으며, 분산되어 있으며 내결함성이 있고 선형으로 확장됩니다. Erlang, Javascript, Java, PHP, Python, Ruby에 대해서는 clients입니다. REST 인터페이스, protobuf 인터페이스 및 기타 여러 기능 (Map Reduce, 링크, 복제, 사전/사후 커밋 훅). 오픈 소스이며 Basho에 의해 유지 관리됩니다. Basho는 Riak의 commercial offering을 가지고 있지만 (예 : 다중 사이트 복제, SNMP 모니터링 등) 몇 가지 추가 기능이 있지만 OS 버전에 큰 가치가 있습니다.

필요에 따라 두 가지 기술을 결합하는 것이 좋습니다. 예를 들어 속도를 내기 위해 과 같은 메모리 저장소를 사용하여 시스템을 정면으로 조사하고 Riak을 사용하여 데이터를 유지할 수 있습니다. Redis + Riak은 꽤 달콤한 스택입니다.

+0

바쇼에는 그들을 위해 일하는 영리한 사람들이 있습니다. 질소 명성의 녹슨 Klophaus와 Webmachine들. Oh yea와 rebar도 Basho에서 나왔다 (dizzyd!). –

관련 문제