我们目前正在Azure上运行,我们有一个包含数亿行的表。此表是静态的,将每周刷新一次。我们已经查看了ColumnStore索引,但不幸的是,它还不是Azure,所以下面是我的问题,
- ColumnStore索引在Azure中可用吗
- 如果没有,我们还能用什么其他技术来获得同样的性能ColumnStore索引所能提供的好处
- 使用Azure表存储可以获得相同的查询性能吗
我是Azure和Columnar数据库的新手,所以如果我问这些问题,请耐心等待。:)
- 关于
ColumnStore
,如果您已经购买了许可证,您可以向开发团队查询或在ScottGu的博客等博客上询问。从那里,只有你才会知道任何功能发布 - Azure数据库是为可扩展性而设计的。您需要非常明智地使用
Partition Key
。Partition Key
就像一本书的索引,所以如果你想在书中搜索什么,你可以快速参考索引并快速到达页面。换句话说,您可以根据特定的标准对数据进行分组,并将其存储在一个分区中。因此,如果您有相同的条件,您的查询将只命中一个分区。分区的问题是,对于一个表,你可以有任何数量的分区,但不一定所有分区都位于同一台机器甚至同一个场上。因此,当您在设计糟糕的Azure表上启动查询时,它可能会命中多个服务器,从而导致性能不佳。阅读真实世界:为Windows Azure表存储设计可扩展分区策略
希望你得到你想要的。
正如Amar所指出的,请关注团队博客,了解最新的功能发布。SQL Azure的目标是让它最终成为最先发现新功能的地方。然而,事情还需要一段时间才能实现。
至于你的表现问题,没有简单的答案。Windows Azure资源是为规模而设计的,不一定是高性能。因此,在设计解决方案时要考虑到您的规模/容量目标。对于您的情况,我鼓励您考虑表存储,但这将取决于访问频率和您需要对数据进行的查询类型。如果您必须对不同建模的数据的冗余副本进行mave,或者甚至可能运行parallel查询和聚合结果,请不要感到惊讶。这就是表存储的使用方式。它比SQL Azure更便宜,而且这种价格差异使冗余的专用数据模型成为可能。
这种方法还必须与重新培训开发人员以停止使用RDBMS术语进行思考的成本进行权衡。:)