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