已经有questions in the past关于为NoSQL数据库创建一个抽象层,但是它们有很大的不同,以至于不会错过它们提供的大多数功能。DynamoDb和Azure表抽象层可能存在的问题?
随着亚马逊的DynamoDb的推出,它最近发生了变化,它看起来几乎与微软的Azure Table Storage相同,所以我正在考虑开发一个开源抽象层。每个人都喜欢抽象,因为当我们试图说服雇主接受这些'新'技术时,它给了我们更多的杠杆作用。
至于我可以告诉
AzureTable.RowKey == DynamoDB.HashKey
AzureTable.PartitionKey == DynamoDB.RangeKey
任何人都可以看到可能出现什么问题,我可以通过创建这个抽象层失去什么功能?
两者似乎都以相同的方式对数据进行分区,并且它们的查询看起来很相似。
我注意到的第一件事是,微软的C#SDK需要你的类,而亚马逊的C#对象持久化框架使用的HashKey
和RangeKey
性能属性从TableServiceEntity
派生。
你是否开始构建这个抽象层,并且它是否可用开源? – 2014-02-28 02:31:55
我不认为这是一个好主意,很简单,因为Azure Tables是一个宽列存储,而AWS DynamoDB是一个文档存储。在这种情况下,您应该考虑Azure表与AWS SimpleDB或AWS DynamoDB与Azure DocumentDB。 – 2016-10-01 12:40:50
自2012年以来发生了很多变化。当时Azure DocumentDB甚至不存在! – Tim 2016-10-06 13:50:41