Cassandra 3.0 的新特性: 物化视图

Posted OSC开源社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cassandra 3.0 的新特性: 物化视图相关的知识,希望对你有一定的参考价值。


Cassandra 数据模型的基本规则 涉及到一些基于运行于列表中的查询的手动非规范化数据。目前,不通过特定分区键来查询栏的唯一方法是使用二级指标,但是它们不能代替新表数据的非规范性,就像它们不适合高基数数据。高基数二级指标查询通常需要环中各个节点的响应,这样就会增加每个请求的延迟。相反,客户端的非规范化和多独立表的使用,意味着同样的代码可以为不同的用户重写。在 3.0 版本中,Cassandra 将引入新的特性 —— 物化视图。物化视图可以处理自动化服务端的非规范化,移除客户端处理非规范化的需求,并且能确保基库(base)和视图数据的最终一致性。这个非规范化允许每个视图数据的超快速查询使用正常的 Cassandra 读取路径。

一个例子

作为一个物化视图如何使用的例子,假设我们跟踪了几个游戏的高分玩家。我们有几个需要得到回答的疑问:

  1. 给定一个游戏,谁的分数会最高?分数是多少?

  2. 给定一个游戏和一天时间,谁的分数会最高?分数是多少?

  3. 给定一个游戏和一个月时间,谁的分数会最高?分数是多少?

物化视图保证了每个 CQL 行对应的基库和视图,所以我们需要确保视图需要的每个 CQL 行会反映在基础列表的主键上。对于第一个查询,我们需要这个游戏、玩家、和他们最高的分数。对于第二个查询,我们需要游戏、玩家、他们最高分数,还有一天、一个月、一年的最高分数。对于最终的查询,我们需要第二个查询除了天数之外的所有数据。第二个查询的数据是最严格的,所以它决定了我们使用的主键。用户可以在某天刷新他们的高分,所以我们只要在特定的日期中跟踪最高分就行了。

?

(c)2006-2024 SYSTEM All Rights Reserved IT常识