Ken*_*ith 10 azure azure-cosmosdb
我有一个超出SQL Azure的应用程序 - 无论如何我都愿意付出代价 - 而且我对调查Azure DocumentDB感兴趣.预览显然具有明显的可扩展性限制(如描述这里,例如),但我想我大概可以摆脱那些预览期间,只要我在正确的使用它.
所以这就是我的问题.如何设计我的应用程序以利用Azure DocumentDB的内置可伸缩性?举例来说,我知道,与Azure Table中存储-这便宜,但可怕的非常有限的选择-你需要结构两步层次中的所有数据:PartitionKey和RowKey.如果你这样做(在现实世界的应用程序中几乎不可能),ATS(据我所知)在幕后移动分区,从机器到机器,这样你就可以获得接近无限的可扩展性.太棒了,你永远不必考虑它.
使用SQL Server进行扩展显然要复杂得多 - 您需要设计自己的分片系统,处理找出所讨论的分片所在的服务器,等等.可能,并且做得非常可扩展,但复杂而痛苦.
那么可扩展性如何与DocumentDB一起使用?它承诺任意可扩展性,但存储引擎如何在幕后工作?我看到它有"数据库",每个数据库都可以有一些"集合",依此类推.但是它的任意可伸缩性如何映射到这些其他概念?如果我有一个包含数亿行的SQL表,如果我将所有这些数据放入一个集合中,我是否会获得所需的可扩展性?或者我是否需要手动将其分布在多个集合中,以某种方式进行分片?或者跨多个DB?或者DocumentDB是否足够聪明,能够以多种方式从多台计算机中合并查询,而不必考虑任何问题?要么...?
我一直在环顾四周,还没有找到任何关于如何处理此问题的指导.对其他人找到的或MS建议的内容非常感兴趣.
And*_*Liu 13
更新:截至2016年4月,DocumentDB引入了分区集合的概念,允许您向外扩展并利用服务器端分区.
单个DocumentDB数据库实际上可以扩展到由集合分区的无限量的文档存储(换句话说,您可以通过添加更多集合来扩展).
每个集合提供10 GB的存储空间和不同的吞吐量(基于性能级别).集合还提供文档存储和查询执行的范围; 并且也是其中包含的所有文档的事务域.
资料来源:http://azure.microsoft.com/en-us/documentation/articles/documentdb-manage/
这是我撰写的关于在DocumentDB上为多租户应用程序扩展和分区数据的博客文章的链接.
| 归档时间: |
|
| 查看次数: |
5482 次 |
| 最近记录: |