天蓝表存储 – Microsoft Azure DocumentDB与Azure表存储

近几年来,Microsoft提供了一个名为“表存储”(http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-tables/)的“NoSQL”键/值存储

表存储提供了高性能,可扩展性(通过分区)和相对较低的成本。表的主要缺点是只能对“分区”和“行”键进行索引,因此对值进行查询是非常低效的。

微软最近宣布推出新的“NoSQL”服务,称为“DocumentDB”(http://azure.microsoft.com/en-us/documentation/services/documentdb/)

DocumentDB不存储属性列表(如Tables),而是存储一个JSON对象。整个对象被索引 – 可以基于存储对象的每个属性和任何嵌套属性创建高效的查询。

Microsoft表示,DocumentDB也提供了高性能和可扩展性。

如果是这样 – 为什么有人会使用Table Storage over DocumentDB?听起来像DocumentDB提供与表相同的功能,但具有其他功能,如索引任何东西的能力。

如果有人可以在DocumentDB和Table Storage之间进行比较,我将很高兴,突出显示每个人的利弊。

两者都是NOSql技术,但它们有很大的不同。 Azure表是一个简单的Key / Value存储,不支持复杂的功能,如复杂的查询(大部分需要完整的分区/表扫描,无论如何都会影响您的性能和成本节省),自定义索引(索引基于PartitionKey和RowKey,您目前无法对任何其他实体属性进行索引,并且搜索除PartitionKey / RowKey之外的任何组合将需要分区/表扫描)或存储过程。您也不能批量读取多个实体的请求(尽管批处理写入请求被支持,如果所有实体都在同一个分区上)。对于Azure Table的现实应用,请参见HERE

如果您的数据需求(特别是查询)很简单(例如上面的示例),那么Azure Tables可以提供您所需要的,由于定价,性能和存储容量,您最终可能会使用DocDB。例如,Azure Tables performance target每秒执行20000次操作。尝试在DocDB上获得相同级别的性能将为您带来显着更高的service cost。此外,Azure表受Azure存储帐户(500TB)的容量限制,而DocDB存储则受您购买的容量单位的限制。

http://stackoverflow.com/questions/28928016/microsoft-azure-documentdb-vs-azure-table-storage

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:天蓝表存储 – Microsoft Azure DocumentDB与Azure表存储