我最近开始了一个项目,需要以坐标的形式存储地图上的点数据。所以我计划存储每个点的纬度和经度。我正在尝试找出最适合用于此目的的 AWS 数据存储服务是什么。
我主要需要做的是能够查询特定区域内的点。因此,我的绝大多数查询看起来都像这样:
SELECT * FROM Point WHERE Point.Latitude < 40.0072 AND Point.Latitude > 39.9927 AND Point.Longitude < 40.0072 AND Point.Longitude > 39.9927
数据库可能数百万甚至数十亿点一平方英里内最多可以有几百个节点。因此可扩展性非常重要。所以我认为 DynamoDB 可能是一个不错的选择。但是,据我了解,DynamoDB 只允许您查询主键,而纬度和经度永远不会是主键。似乎 DynamoDB 的限制不允许我根据要求轻松查询数据。
那么考虑到这些要求,DynamoDB、RDS 和 ElasticSearch 等服务之间哪个是好的或最佳的选择?
答案1
我相信适用于 PostgreSQL 的 Amazon RDS支持地理空间数据后地理信息系统。
另一方面后地理信息系统比您的示例所需的功能强大得多。对于您的情况,如果您只打算执行和查询,那么简单的point_latitude
和列可能就足够了。point_longitude
<=
>=
希望有帮助:)