【发布时间】:2016-11-07 22:09:18
【问题描述】:
我们即将开始一个新项目,要求之一是使用 NoSQL 解决方案。 90% 的可能性是 Amazon DynamoDB,因为我们“依赖于 AWS”。我们正在研究基于 DynamoDB 存储的 TitanDB(图表)。
数据模型包括:
- 用户角色、权限、令牌存储
- 具有一对多/一对一关联的更多类似数据的关系
我们要解决的任务:
- 在数据之上构建报告。某些报告可能包含来自不同实体的字段
- 按范围过滤(从 - 到)
- 排序、计数、分页
- 以上都可以同时应用
数据量:
- 数据量不是很大,我们不是实时流式传输事件
假设: 据我了解,我们需要为我们要构建的报告创建非规范化视图(合并来自不同“表”的数据) - 将数据的副本保存在多个表中。 要么 我们需要使用 Elasticsearch 或其他解决方案进行索引。
Graph db 体验看起来很疯狂,但提供了一个清晰的数据模型,其中每个实体都相互关联。需要了解 db api 的查询限制。
问题:
- 在非关系数据库中管理关系数据并保持一致性的最佳方法是什么?
- 是否有任何事务支持(例如在 DynamoDB 中)以保持数据一致(在数据更新期间,由于非规范化,我们应该写入多个表)?
- 与 Elasticsearch 集成并向其发出搜索请求,然后通过 id 从 DB 中获取数据是否是一个很好的解决方案?
【问题讨论】:
标签: amazon-web-services transactions amazon-dynamodb consistency nosql