我们即将启动一个新项目,其中需求之一就是使用NoSQL解决方案。由于我们依赖于aws,90%的机会将成为Amazon DynamoDB。我们正在研究DynamoDB存储之上的TitanDB(图形)。关系数据模型到NoSQL,Amazon DynamoDB
数据模型包括:
- 用户角色,权限,令牌存储
- 多个关系像数据与一对多/一对一的关联
任务,我们去解决:
- 在数据之上构建报告。某些报告可以从不同的实体包括字段通过范围(从 - 到)
- 过滤
- 排序,计数,分页
- 所有上述可同时
体积的被施加的数据:
- 数据量不是那么大,我们不流事件实时
假设: 据我了解,我们需要创建我们要建立(合并来自不同的“表”的数据)的报告,非规范化的观点 - 保持数据的拷贝在多个表中。 或 我们需要使用Elasticsearch或其他解决方案进行索引。
图形数据库经验看起来很疯狂,但提供了一个清晰的数据模型,其中每个实体与另一个实体有关系。需要知道查询的db api的局限性。
问题:
- 什么是是非关系数据库管理关系型数据,并保持一致的最佳途径?
- 是否有任何事务支持(例如在DynamoDB中)保持数据一致(在数据更新过程中,由于非规范化,我们应该将数据写入多个表)?
- 这是一个很好的解决方案,与Elasticsearch集成并向其发出搜索请求,然后通过数据库中的id获取数据?迪纳摩