今天我参加了柏林真正令人敬畏的卡桑德拉日,并且像我希望的那样,对物化观点进行了一些小介绍。谈话结束后,我问帕特里克他喜欢什么,他回答“批量陈述” - 原因是:数据的一致性。在批处理之后,数据肯定会被写入。
我的用例是。我有一个p.e.用户表(Key:userId),但我创建索引表 - 查找电子邮件,国家/地区等。
在我的应用程序中,我需要处理所有这些“索引表”,它可能会发生,有人忘了可能删除其中一个“索引”中的一行 - 之后...你疯了:)
我希望,物化观点可以提供帮助。我有用户表并创建多个物化视图,cassandra负责“同步”。
所以,我的问题是:您如何看待物化视图或批量语句?有另外一种好处吗?
由于 烫发
答案 0 :(得分:1)
您需要了解物化视图的所有权衡,视图的一致性保证比基表更弱。阅读我的文章:http://www.doanduyhai.com/blog/?p=1930
答案 1 :(得分:0)
已创建物化视图,以便更轻松地处理需要许多查找表的用例。在引擎盖下,批处理用于将更改应用于副本,因此使用MV也意味着使用批处理。不同之处在于您不必自己处理批量创建。这不仅方便,而且还可以防止在您需要更新大量索引表时可能发生的简单编程错误的错误。
首先,使用批处理手动更新索引表而不是仅使用MV更新基表可能看起来没什么大不了的。但随着您的应用程序变得越来越大,表和所需批次的数量开始增长,引入架构更改将变得更加困难。您确实需要跟踪更新数据的位置以及要更改的批次。使用MV,对基表的所有更改都将自动传播到索引表。您也可以稍后在基表的顶部添加新视图,而不必像仅使用批处理那样手动填充索引表。
回到你的问题,我会说是的,物化的观点确实对批次有好处。