如何将现有的关系数据库模型转换为适合无sql数据库的模型(如Mongo DB或Amazon Dynamo DB)

Arv*_*ind 9 java sql mongodb amazon-dynamodb

我想修改现有的java购物车应用程序,使其可以使用像Amazon Dynamo DB或Mongo DB这样的nosql数据库......但是传统的MySQL数据库是一个关系数据库 - 它有复合键/主键/外键 - 在相比之下,在Amazon Dynamo DB中,有一个主键,或一个由2个字段组成的复合主键......

我有关系数据库的详细数据模型...现在我如何转换它,以便我在Amazon Dynamo DB中有一个能够使应用程序与Dynamo DB一起工作的数据库(即没有Sql数据库)?这样做时是否有任何必须记住的最佳做法/预防措施?这会涉及到重写应用程序代码的大量工作吗?或者我可以在数据库级别自己处理所有更改,而无需修改应用程序的逻辑?此外,是否有任何工具可以完成大部分/大部分工作?

Der*_*ick 2

没有自动的方法可以做到这一点。像 MongoDB 这样的 NoSQL 数据库并不像 MySQL 那样映射数据结构。有不同的性能特征和不同的数据存储方式。在某些情况下,您可以将两个 SQL 表合并为一个集合,只需将连接后的数据包含在同一文档中即可。

如何以及何时执行此操作,一切都取决于您对数据进行逻辑分组的方式,但也取决于您对数据施加的工作负载类型。例如,对于大量读取和少量写入,您可能会以与大量写入和少量读取的情况不同的方式存储数据。

除了必须重做应用程序到数据库的接口之外,您还必须重新构建数据模型。这将是与设计 SQL 结构一样多的工作,并且最好不要考虑如何在 SQL 中完成它。NoSQL 与 SQL 是两种完全不同的野兽,需要以不同的方式对待!