首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中查询距离亚马逊网络服务DynamoDB 10英里内的最近位置

在Java中查询距离亚马逊网络服务DynamoDB 10英里内的最近位置
EN

Stack Overflow用户
提问于 2021-10-06 20:13:21
回答 1查看 125关注 0票数 0

我是亚马逊网络服务DynamoDB的新手,我想从DynamoDB表中找到半径r英里内的位置列表(基于纬度、经度和GeoHash)实现这一目标的最佳方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2021-10-06 23:42:43

除非你使用的是非常小的数据集,否则Dyanmo并不是真正适合的东西。

你需要的是一个加权的方向图,它将所有的点连接到所有其他的点。这种多重连接并不是发电机擅长的。实际上,你需要一个发电机,它是这样设置的:

代码语言:javascript
运行
复制
pk: a location identifier | sk: another location id-number of miles from pk

然后,您可以对给定的位置标识符执行一次查询,其中所有值都在不到几英里的范围内,您将得到答案。

你还必须查询你想要知道附近有什么的确切的点,并且你必须在db中有那个eaxact点。没有执行“接近这一点”的查询。

但是一旦你开始处理数以千计的数据点,你可能会看到一个问题。即使这些位置中的一个也必须在相同的pk下具有sk的所有其他位置才能执行该查询。所以你最终会得到:

代码语言:javascript
运行
复制
pk           | sk
location 1   | location2#miles
location 1   | location3#miles
location 1   | location4#miles
location 2   | location1#miles
location 2   | location3#miles
location 2   | location4#miles
location 3   | location1#miles... ect

这就是有向加权图对象结构的用途--该对象结构实际上很好地转换为dynamodb……(因为在花哨的引擎盖下,有向加权图形对象只是一系列属性,说明给定的其他对象有多远),但这可能是不切实际的,这取决于您试图实现的粒度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69472167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档