AWS - 在 DynamoDB 表中放置一个 GeoPoing 并对其进行查询 - node.js
Posted
技术标签:
【中文标题】AWS - 在 DynamoDB 表中放置一个 GeoPoing 并对其进行查询 - node.js【英文标题】:AWS - Put a GeoPoing in DynamoDB Table and query against it - node.js 【发布时间】:2016-11-22 18:34:31 【问题描述】:Amazon 现在在 DynamoDB 中有 support for geospatial indexing,但似乎没有太多文档说明如何使用 node.js SDK 做到这一点。
我正在尝试了解如何:
-
将 GeoPoint (geohash) 值放入 DynamoDB 表中的项目中
和
-
如何在表格中查询某个位置(纬度、经度)半径内的所有项目
我见过this article,但不确定它如何应用于 node.js 并且找不到任何示例
【问题讨论】:
【参考方案1】:AWS 没有为 node.js 提供地理空间索引库。他们只有你提到的java版本。 您可以将 java 库与 lambda 函数一起使用(我试过了),但该库已过时且未维护(上次提交是 3 年前) 我的pull request 被忽略了。 即使我自己解决了问题,我也遇到了this one 之类的问题。
回答您的问题 1 和 2:AWS 写信给 a document series,介绍了他们的库计算地理哈希的方式以及它如何在 DynamoDB 上执行查询。在这里总结太多了。
AWS 缺乏维护和支持以及我遇到的问题让我得出结论,AWS 放弃了地理查询 DynamoDB 的想法。此外,我找不到其他成功应用此库的开发人员。
我目前的解决方案是基于 CloudSearch。我将项目(及其位置)写入 DynamoDB 表。我使用 DynamoDB 流将表中的所有更改上传到 CloudSearch。 CloudSearch 具有开箱即用的地理查询功能。
【讨论】:
我熟悉 Cloudsearch,但它不适合我的需求,因为在上传文档和它在索引中可用之间有一小段延迟。 是的,是的。我也对此进行了调查***.com/questions/37131035/…我的用例不是那么关键。以上是关于AWS - 在 DynamoDB 表中放置一个 GeoPoing 并对其进行查询 - node.js的主要内容,如果未能解决你的问题,请参考以下文章
无法使用Lambda Python 3.6 Boto3在现有DynamoDB表中放置新项目[关闭]
如何在 AWS 放大 DynamoDB 架构中设置嵌套字段的限制?
如何在 AWS lambda 函数中设置 dynamo db 触发器
如何使用 AWS Lambda 按名称查询 dynamoDB 表