Amazon web services 如何在AWS DynamoDB中联接表?
我知道整个设计应该基于自然聚合(文档),但是我正在考虑为本地化(lang、key、text)实现一个单独的表,然后在其他表中使用键。然而,我找不到任何这样做的例子Amazon web services 如何在AWS DynamoDB中联接表?,amazon-web-services,amazon,amazon-dynamodb,Amazon Web Services,Amazon,Amazon Dynamodb,我知道整个设计应该基于自然聚合(文档),但是我正在考虑为本地化(lang、key、text)实现一个单独的表,然后在其他表中使用键。然而,我找不到任何这样做的例子 任何提示都可能有用 没错,DynamoDB不是作为关系数据库设计的,不支持连接操作。您可以将DynamoDB看作是一组键值对 您可以在多个表中使用相同的键(例如document_id),但是DynamoDB不会自动同步它们或具有任何外键功能。一个表中的文档ID虽然名称相同,但在技术上与另一个表中的文档ID不同。由您的应用程序软件来确保
任何提示都可能有用 没错,DynamoDB不是作为关系数据库设计的,不支持连接操作。您可以将DynamoDB看作是一组键值对 您可以在多个表中使用相同的键(例如document_id),但是DynamoDB不会自动同步它们或具有任何外键功能。一个表中的文档ID虽然名称相同,但在技术上与另一个表中的文档ID不同。由您的应用程序软件来确保这些键同步
MadioDB是一种不同的数据库思维方式,您可能需要考虑使用托管关系数据库,如Amazon AuroR: < /P>
需要注意的是,Amazon EMR确实允许连接DynamoDB表,但我不确定这是您想要的:使用DynamoDB,而不是连接,我认为最好的解决方案是将数据存储在您稍后打算读取的形状中 如果您发现自己需要复杂的读取查询,那么您可能会陷入期望DynamoDB像RDBMS一样工作的陷阱,而事实并非如此。转换和塑造您所写的数据,保持读取简单
现在,磁盘比计算机便宜得多——不要害怕去规范化。您必须查询第一个表,然后在下一个表上使用get请求迭代每个项目 其他答案并不令人满意,因为1)没有回答问题,更重要的是,2)如何提前设计表格,以了解其未来的应用?技术债务太高,无法合理覆盖无限的未来可能性 我的回答效率极低,但这是目前唯一解决这个问题的方法
我急切地等待一个更好的答案 我知道我的反应有点晚,晚了几年。然而,我能够挖掘出一些关于Amazon DynamoDB&Joins的其他信息,这些信息可能会对您(或者其他个人,他们可能会在将来研究这些信息时偶然发现这个讨论)有所帮助 为了说明这一点,我在Amazon DynamoDB网站上找到了一些文档,其中指出可以使用Apache HiveQL查询语言对Amazon DynamoDB表、列和数据等执行连接 在DynamoDB中查询数据(w/HiveQL): 与Amazon DynamoDB和Apache Hive一起工作: 在Amazon EMR上使用Apache Hive处理Amazon DynamoDB数据:
如果不是原始海报的话,我希望这些信息能帮助一些人。最近,我也有同样的要求,需要使用连接和聚合功能,比如与dynamoDb一起使用avg和sum,为了解决这个问题,我使用了Cdata JDBC驱动程序,它工作得非常好。它支持连接和聚合函数。尽管如此,由于cdata的许可证成本,我也在寻找避免使用cdata的解决方案 更新:此答案完全符合已定义的社区指导原则,并非仅针对商业解决方案的非答案
在这个领域,我见过多次出现的一种解决方案是将DynamoDB同步到一个单独的数据库中,该数据库更适合您所寻找的操作类型 我写了一篇关于这个主题的文章,比较了我见过的人们解决这个问题的各种方法,但是我会在这里总结一些关键的要点,这样你就不必全部阅读了 DynamoDB二级索引 什么好?
DynamoDB+胶水+S3+雅典娜 什么好?
发电机B+蜂箱/火花 什么好?
DynamoDB+AWS Lambda+Elasticsearch 什么好?
发电机B+ 什么好?