如何在 DynamoDb 中加入两个表?

Posted

技术标签:

【中文标题】如何在 DynamoDb 中加入两个表?【英文标题】:How I can join two table in DynamoDb? 【发布时间】:2018-12-17 08:49:58 【问题描述】:

我是 DynamoDB 的新手,谁能帮我在 DynamoDB 中使用 JOIN?我使用无服务器框架和映射模板。我有 POSTUSER 的表格。 POSTuserId 字段。如何获取所有包含用户信息的帖子?在 mysql 中我可以使用 JOIN 但它在 DynamoDB 中如何工作?我阅读了 2 年前创建的 *** 中的帖子。伙计们写道,它不可用。也许有些事情已经改变了......?

【问题讨论】:

DynamoDB 不像 MySQL 那样是关系型数据库:***.com/questions/36753861/… 【参考方案1】:

DynamoDB 是一个NoSQL 数据库。这使其具有分区、令人难以置信的性能、可扩展性、可靠性等。

权衡是它不是关系数据库。因此,DynamoDB 不会执行表连接

您需要单独读取表格并在应用程序中“加入”所需数据。

例如,从Post 表中检索UserId,然后从User 表中检索给定UserId 的记录。

【讨论】:

【参考方案2】:

我找到了解决方案。 gitHub 上的用户 @eltonio450 展示了如何执行此操作。

【讨论】:

【参考方案3】:

从技术上讲,您可以使用 Amazon EMR Hadoop 在 DynamoDB 表之上创建一个 EXTERNAL Hive 表;然后使用 HiveQL 查询 Hive 表。

但是,不建议使用 Hive + DynamoDB 方法;因为 DynamoDB 专为低延迟查询而设计。 Hive 是面向批处理的。

此外,Hive 可能会在应用任何查询谓词之前向 DynamoDB 表发出扫描(本质上效率低下)请求。

【讨论】:

以上是关于如何在 DynamoDb 中加入两个表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 symfony 5 中加入两个表?

如何在 App Script 中加入两个表并将数据提取到大查询现有表中

如何在 Magento 2.3 中加入两个自定义表

如何在我的 Android 应用程序中加入两个 SQLite 表?

如何在 Spring Boot JPA 中加入两个表,我的代码出错了

如何在 C# Web API 中加入两个表