Cen*_*ion 34 amazon amazon-web-services amazon-dynamodb
我知道整个设计应该基于自然聚合(文档),但是我正在考虑为本地化(lang,key,text)实现一个单独的表,然后在其他表中使用键.但是,我无法找到任何关于这样做的例子.
任何指针可能会有所帮助!
Rei*_*hes 33
您是对的,DynamoDB不是设计为关系数据库,不支持连接操作.您可以将DynamoDB视为一组键值对.
您可以在多个表中使用相同的键(例如document_ID),但DynamoDB不会自动同步它们或具有任何外键功能.一个表中的document_ID虽然名称相同,但在技术上与另一个表中的不同.由应用程序软件决定是否同步这些密钥.
DynamoDB是一种考虑数据库的不同方式,您可能需要考虑使用托管关系数据库,例如Amazon Aurora:https://aws.amazon.com/rds/aurora/
需要注意的一点是,Amazon EMR确实允许加入DynamoDB表,但我不确定您的需求是什么:http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EMRforDynamoDB.html
Ani*_*han 16
更新:此答案完全符合定义的社区准则,而不是仅谈论商业解决方案的非答案。
我在这个领域多次看到的一个解决方案是从 DynamoDB 同步到一个单独的数据库,该数据库更适合您正在寻找的操作类型。
我写了一篇关于这个主题的博客,比较了我见过的人们解决这个问题的各种方法,但我将在这里总结一些关键的要点,这样你就不必阅读所有内容。
(完全披露:我在产品团队 @ Rockset 工作)查看博客以了解有关各个方法的更多详细信息。
Llo*_*oyd 15
使用DynamoDB,而不是加入我认为最好的解决方案是将数据存储在您打算稍后读取的形状中.
如果您发现自己需要复杂的读取查询,那么您可能已陷入期望DynamoDB表现得像RDBMS的陷阱,但事实并非如此.转换并整形您编写的数据,使读取变得简单.
这些天磁盘比计算便宜得多 - 不要害怕反规范.
小智 5
您必须查询第一个表,然后使用下一个表的get请求遍历每个项目。
其他答案不能令人满意,因为1)不回答问题,更重要的是2)您如何在知道表的未来应用之前设计表?技术债务太高,无法合理地涵盖无限的未来可能性。
我的回答效率极低,但这是当前提出的问题的唯一解决方案。
我热切期待一个更好的答案。
| 归档时间: |
|
| 查看次数: |
30739 次 |
| 最近记录: |