2017-01-29 5 views
-2

나는이 주제에 관한 정보를 찾으려고 노력하고 있지만, 내가 아는 대부분의 기사는 3 세 이상입니다. 나는 또한 사물의이 측면에 상당히 새롭고 누가 물을지 확신하지 못한다.GIS를위한 MongoDB와 PostgreSQL 중 선택 방법은 무엇입니까?

저는 데이터베이스 전문가가 아니지만 MongoDB를 몇 번 사용했습니다. PostgreSQL은 작은 프로젝트에 한 번만 사용되었습니다 (GIS 관련 내용이 없습니다). 그 가치가 무엇인지에 관해서는, 지금 당장 dynamoDB에 저장 한 적은 양의 데이터가 있습니다. 거기에 대한 지리 도서관,하지만 그것은 자바에서만 사용할 수 있으며 자바 잘 모르겠습니다.

사용 사례가 매우 간단합니다. 사용자 프로필 데이터 외에도 사용자가 추가 한 마커를 쿼리 할 수 ​​있기를 원합니다. 인증 된 사용자의 현재 X2 마일 이내의 마커 latLng 등 마커는 그 데이터를 추가 한 사용자, 제목, 설명 등 latLng 이외의 다른 데이터를 가지고 있습니다.

내 목표는 결과를 반환 할 수 있습니다. 웹 API를 사용하여 가까운 위치에서 가장 먼 위치까지 현재 위치의 X 마일 내에있는 마커로 클라이언트 측에 전달할 수 있습니다. 이를 위해 Mongo와 PostgreSQL 사이에서 무엇부터 시작하는 것이 좋을까요?

+0

지형 확장이있는 데이터베이스가 더 빠르지 만 특별한 데이터베이스는 필요하지 않습니다. [Haversine 수식] (http://stackoverflow.com/q/27928/472495)을 사용할 수 있습니다. WHERE 절에 거리 필터를 추가 할 수있는 SQL 구현이 있습니다. – halfer

답변

2

PostgreSQL의 당신에게 전체 (지리)을 제공 할 수 있습니다 PostGis을 통해 공간의 기능, 당신은 하지는 응용 프로그램에서 그렇게 많이 필요 수도있다.

(lat, lng) 반경 내에서 사용자를 빠르게 찾으려면 GIST indexes과 함께 earthdistance module을 사용할 수 있습니다.

자세한 내용은 How can I speed-up my query on geo-location processes을 확인하십시오.

도 확인하십시오. Searching in a Radius using Postgres.


MongoDB를 에서, 당신은 geoNear 기능과 PostgreSQL에서 2dsphere Indexes


Querys을 사용하는 것은 매우 빠르고 매우 유연, 그들은 매우 잘 확장 할 수 있습니다. MongoDB를 사용했을 때보 다 조금 더 설정해야합니다.

어쨌든, 기본 기능은 모두 사용할 수 있으며 다른 모든 요인을 고려 결정해야합니다 :

  • 잘 구조화 된 데이터를인가하고,이 구조 내에서 몇 가지 변화와를? (더 많은 SQL 측면에서)
  • ACID (원 자성, 일관성, 격리, 내구성) 보장이 필요합니까? (SQL 측에서 더 많이)
  • 거대한 수평 스케일링이 필요합니까? (MongoDB쪽에 더 많이)
  • 한 번에 여러 테이블을 쿼리해야합니까? (SQL 측)
  • 다른 언어보다 JavaScript 및 JSON이 더 편하다고 느끼십니까? (MonboDB +)
  • (등, 등) 많은 다른 사람의 사이도 Postgres Outperforms MongoDB and Ushers in New Developer RealitySystem Properties Comparison MongoDB vs. PostgreSQL

확인합니다.

+0

Joanolo에게 감사드립니다. 나는 내 질문에 많은 상처를 받았다는 것을 알고 있지만 솔직히 말하면 이런 종류의 정보를 쉽게 찾을 수 있고 또한 소화하기에 충분히 간단하다는 것을 알기가 어렵다. 귀하의 답변에 감사드립니다. – scarywolfman

+0

한 번 더 질문 할 수 있습니다. 지금은 관계형 데이터베이스가 필요 없다고 생각합니다. 따라서 MongoDB를 설치하고 사용하기 쉽기 때문에 MongoDB에 기대고 있습니다. 초기 글쓰기 (새로운 마커 생성)와 많은 읽기를 기대하지만, 삭제 외에 기존 마커에 대한 많은 업데이트는 기대하지 않습니다. 필자의 데이터 모델은 필요에 따라 데이터베이스에 대해 많이 알지 못하기 때문에 PoC를 구축 할 수있는 간단한만큼 충분히 간단하다고 생각합니다. 포스트그레스로 전환 할 수 있습니다. 이것이 유효한 접근이라고 생각하십니까? 감사합니다 – scarywolfman

+0

개념 증명을 사용하는 경우, 일반적으로 기본적인 필요 사항은 * 빠른 속도로 수행 *,이 경우 가장 빨리 작업 할 수있는 도구를 선택하십시오. 이전 배경에 많이 달려 있습니다. 당신이 accostumed 도구의 종류. 그러나 조심하고 PoC에 가장 적합한 것이 생산에서 가장 좋은 것이라고 생각하는 함정에 빠지지 마십시오 ... – joanolo