programing

mongodb 또는 cassandra를 사용한 공간 데이터

newstyles 2023. 7. 8. 10:40

mongodb 또는 cassandra를 사용한 공간 데이터

최소 초당 200회 이상의 쓰기와 초당 약 50회 이상의 공간 관련 데이터를 필요로 하는 > 10G와 같은 대용량 데이터를 처리하기 위한 개념 증명을 고려하고 있습니다.이것은 또한 성장하는 시스템입니다.현재 성능상의 이유로 이 대용량 데이터를 NoSql 빅테이블 종류의 db로 옮기는 것을 고려하고 있습니다.

저는 MongoDB와 카산드라를 좀 더 자세히 고려해 보았습니다.내가 읽은 바로는

Mongodb: - 쓰기 프로그램 잠금 문제가 있는 것 같습니다. - 스택 오버플로의 게시물 중 하나가 여러 서버가 필요하지 않은 경우 이 DB를 제안했습니다. - 인덱스는 메모리에 보관됩니다.따라서 인덱스 증가가 클수록 성능이 저하된다고 합니다. 장점은 Mongodb가 공간 데이터 및 인덱싱을 직접 지원하고 주변 위치 찾기 등의 기능을 제공한다는 것입니다. 이 게시물은 Cassandra 또는 MongoDB For Our Location Based Application에서 mongodb를 가장 좋은 선택으로 제안합니다.

카산드라:
관련된 dbs 중에서 가장 좋은 것 같습니다 - 읽기 성능뿐만 아니라 쓰기도 좋은 것 같습니다 - 기본적으로 공간 인덱싱을 지원하지 않지만 지오해싱을 통해 확장할 수 있습니다.

제 마음은 몽고드의 좋은 문서화와 공간 데이터에 대한 직접적인 지원 때문에 실제로 몽고드를 사랑합니다.이렇게 큰 시스템에 mongodb를 사용한 경험이 있는 사람이 있습니까?저는 사실 mongodbiostat에 공연 관련 글이 많이 올라옵니다.

mongodb가 적합하지 않다면, 누군가 카산드라를 사용하여 지오해싱에 대한 몇 가지 조언을 해줄 수 있습니까?해시 생성을 위한 링크 http://code.google.com/p/geospatialweb/ 을 보았습니다.하지만 질문 방법 등에 대한 질문이 있습니까?

저는 이것이 오래된 질문이고 당신의 질문에 직접적으로 대답하지 않는다는 것을 알고 있지만, 당신의 질문에 따라 Cassandra가 최선의 옵션이 아닐 수도 있습니다. 그리고 MongoDB에서 색인 작업을 위해 당신의 쿼리를 사용하는 것은 (제 경험으로도) 문제가 될 수 있습니다.Mongo는 무거운 지리 데이터에 대해 Cassandra보다 약간 우위에 있으며 imho에 문의합니다.

또한 ElasticSearch를 검토하는 것이 좋습니다. ElasticSearch는 데이터 모양과 쿼리 유형에 따라 가장 적합한 솔루션입니다.하지만 당신이 질문을 게시했을 때는 오늘보다 선택사항이 적었을 가능성이 높습니다.

카산드라 + 솔르를 먹어보세요.유용할 수 있습니다. http://digbigdata.com/geospatial-search-cassandra-datastax-enterprise/

고담 쿠마르, 잘 부탁드립니다.

tl;dr
엘라산드라는 카산드라와 엘라스틱 서치의 조합입니다.

미래에 대한 약간의 업데이트.

저는 현재 빅 데이터 실시간 시스템에 대한 개념을 만들고 있으며, 또한 지리 공간 데이터를 저장하고 규모에 맞게 쿼리를 수행해야 합니다.지난 며칠 동안 저는 데이터를 적절하게 배열하고 지리공간 색인과 경계 상자와 같은 쿼리를 지원할 수 있는 방법을 많이 연구했습니다.

내가 처음 읽은 것은 Postgre였습니다.SQL + Postgis이지만 가장 큰 인스턴스는 초당 최대 20만 개의 쓰기로 제한됩니다.
두 번째는 쿼리는 확장할 수 있지만 쓰기는 확장할 수 없는 지리 공간 데이터베이스인 Tile38이었습니다.이것을 사용하는 유일한 방법은 데이터를 수동으로 샤드하는 것입니다.
세 번째는 MongoDB였습니다. 왜냐하면 그곳에서 제가 필요로 하는 지리 공간 기능을 지원하는 좋은 문서를 찾을 수 있기 때문입니다. 하지만 쓰기를 확장할 수 있는지 결정하기가 어려웠습니다.
마지막 데이터베이스는 카산드라였습니다.이 데이터베이스는 수평 쓰기 스케일링 및 장애 인계로 잘 알려져 있습니다.카산드라의 단점은 데이터를 쿼리하는 것이 성능이 좋지 않고 즉시 지리적 공간을 지원하지 않는다는 것입니다.Tracker1에서 이미 제안한 것처럼 규모에 맞는 데이터를 쿼리하는 경우 ElasticSearch가 좋은 해결책입니다.오늘 저는 카산드라와 ElasticSearch로 구성된 새로운 데이터베이스를 찾았습니다. Elassandra는 규모에 맞는 쓰기와 거의 실시간으로 규모에 맞는 데이터를 읽을 수 있습니다.설치 및 유지보수를 최소화하는 최상의 솔루션입니다.

우리는 또한 현재 카산드라를 사용하고 공간 인덱스 솔루션을 찾습니다.전체 텍스트 및 속성 검색을 제공하기 위해 Lucene과 함께 사용하며 부분 인덱싱을 지원합니다.아마 당신도 이것을 확인하고 싶을 것입니다.

현재 구현은 단순 트리(그리드 기반)를 기반으로 정보를 샤딩하는 것처럼 보이며 각 샤드는 Lucene 인덱스이며 특정 크기 이상으로 커지면 인덱스가 x 또는 y로 분할됩니다.그리고 이러한 샤드는 이진 표현(그리드의 위치는 두 비트, 다음 레벨은 두 비트 등으로 구성됨)을 가지고 있기 때문에, 위치에 의해 검색이 실행되고 위치/그리드 해상도 앞에 붙는 샤드로 응답됩니다.간단한 시스템은 지금까지는 잘 작동하지만 현재는 생산적으로 사용되고 있지 않습니다.

언급URL : https://stackoverflow.com/questions/7903712/spatial-data-with-mongodb-or-cassandra