2017-03-31 68 views
0

我有几个与Cassandra 3.x版本中的实体化视图(MV)有关的查询。以下给出了我对物化视图如何工作的理解。任何人都可以告诉我,如果我的理解是正确的Cassandra实体化视图

1.)MV是基表的复制品。假设我有一个包含100 GB数据的基表,并且我的复制因子为3.基表上的MV只不过是另一个具有不同分区的表,占用与基表相同的存储空间。如果我为上表创建一个MV,那么我需要增加100GB * 3(复制因子)来存储新的物化视图数据?

2.)如果上述情况是有效的,那么同样的数据将会有两个写入过程发生。在INSERT的情况下,会有写入开销,因为数据将被插入到表和MV中?在更新的情况下,在MV上写入之前会有读取?

3.)基本表变化时MV的变化会发生异步?如果整个表格数据被删除,会立即反映在MV中,还是需要进行一些清理?

4.)可以避免使用MV的任何情况需要考虑?

请帮我澄清一下上面的问题吗?

在此先感谢。

回答

0

物化视图处理自动化的服务器端非规范化,消除了客户端处理这种非规范化并确保基本数据和视图数据之间最终一致性的需要。这种非规范化允许在每个视图使用正常卡桑德拉读取路径

您的问题下面回答数据的速度非常快查找:

  1. 如果您使用select *创建MV时,它会采取另外100GB的* 3存储

  2. 基本副本执行数据的本地读取,以便为视图创建正确的更新并使用批量日志提供基本表和视图之间的等效最终一致性。所以每个MV在写作时都会花费你约10%的成绩

  3. 它会立即反映出来,cassandra会负责清理。

  4. 当不使用MV:

    • 低基数数据将打造环 如果所有数据的分区键是一样的,这些节点将成为超载
    • 如果围绕热点出现会有大量的分区墓碑,性能可能受损
+0

非常感谢您的澄清。它有助于。 – mick