【问题标题】:Materialized View or Batched Statements物化视图或批处理语句
【发布时间】:2016-02-12 22:15:56
【问题描述】:

今天我在柏林参加了非常棒的 Cassandra Day,并且,就像我希望的那样,我对物化视图进行了简短的介绍。谈话结束后,我问帕特里克他更喜欢什么,他回答“批量声明”——原因:数据一致性。一批后数据肯定是写出来的。

我的用例是。我有一个体育用户表(键:userId),但我创建索引表 - 查找电子邮件、国家/地区等。

在我的应用程序中,我需要处理所有这些“索引表”,并且可能会发生有人忘记删除其中一个“索引”中的一行 - 之后......你疯了:)

我希望物化视图可以提供帮助。我有用户表并创建多个物化视图,cassandra 负责“同步”。

那么,我的问题是:您如何看待物化视图或批处理语句?其中一个比另一个有更多好处吗?

谢谢 马塞尔

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    您需要了解物化视图的所有权衡,视图的一致性保证比基表弱。阅读我的文章:http://www.doanduyhai.com/blog/?p=1930

    【讨论】:

    • 哇。这是一篇很棒且技术含量高的文章。谢谢你。
    【解决方案2】:

    已创建物化视图,以便更轻松地处理需要许多查找表的用例。在底层,批处理用于将更改应用于副本,因此使用 MV 也意味着使用批处理。不同之处在于您不必自己处理创建批次。这不仅方便,而且还可以防止在需要更新大量索引表时可能出现的简单编程错误的错误。

    首先,使用批处理手动更新索引表而不是仅使用 MV 更新基表可能看起来没什么大不了的。但是随着您的应用程序变得越来越大并且表和所需批次的数量开始增长,引入模式更改将变得更加困难。您确实需要跟踪更新数据的位置以及要更改的批次。使用 MV,对基表的所有更改都将自动传播到您的索引表。您还可以稍后在基表之上添加新视图,而无需像仅使用批处理那样手动填充索引表。

    回到你的问题,我会说是的,物化视图确实比批处理有好处。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-16
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-16
      • 2012-03-15
      相关资源
      最近更新 更多