如何在DynamoDb中加入两个表?

时间:2018-07-09 15:48:01

标签: amazon-web-services amazon-dynamodb serverless-framework dynamodb-queries

我是DynamoDB的新手,有人可以在DynamoDB中使用 JOIN 帮助我吗?我使用无服务器框架和映射模板。我有 POST USER 的表。 POST 具有 userId 字段。如何获取有关用户信息的所有帖子?在MYSQL中,我可以使用JOIN,但是它如何在DynamoDB中工作?我阅读了2年前创建的stackoverflow中的帖子。伙计们写道,它不可用。也许有些变化……?

3 个答案:

答案 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表发出扫描(本质上效率低下)请求。