我是DynamoDB的新手,有人可以在DynamoDB中使用 JOIN 帮助我吗?我使用无服务器框架和映射模板。我有 POST 和 USER 的表。 POST 具有 userId 字段。如何获取有关用户信息的所有帖子?在MYSQL中,我可以使用JOIN,但是它如何在DynamoDB中工作?我阅读了2年前创建的stackoverflow中的帖子。伙计们写道,它不可用。也许有些变化……?
答案 0 :(得分:7)
DynamoDB是 NoSQL数据库。这样就可以进行分区,出色的性能,可伸缩性,可靠性等。
需要权衡的是,它不是关系数据库。因此, DynamoDB将不会执行表联接。
您将需要分别阅读表并在应用程序中“联接”所需数据。
例如,从UserId
表中检索Post
,然后从User
表中检索给定UserId
的记录。
答案 1 :(得分:0)
我找到了解决方案。 gitHub上的@ eltonio450用户展示了如何执行此操作。
答案 2 :(得分:0)
从技术上讲,您可以使用Amazon EMR Hadoop在DynamoDB表的顶部创建一个EXTERNAL
Hive表。然后使用HiveQL查询Hive表。
但是,不建议使用Hive + DynamoDB方法;因为DynamoDB专为低延迟查询而设计。 Hive是面向批处理的。
此外,Hive可能在应用任何查询谓词之前向DynamoDB表发出扫描(本质上效率低下)请求。