【问题标题】:Create materialised view without primary key column创建没有主键列的物化视图
【发布时间】:2021-01-15 19:38:00
【问题描述】:

是否可以在不使用主键的情况下创建物化视图。

用例:- 我有一个带有两个主键 user_id 和 app_id 的表,我想创建视图以基于 app_id 获取数据,而不考虑 user_id。我正在尝试创建物化视图,但如果我只保留一个主键,Cassandra 不允许我这样做。

我知道,我可以使用“允许过滤”,但这不会提供 100% 的数据准确性。

【问题讨论】:

  • 您的表有一个主键。主键有两列。

标签: sql cassandra cassandra-3.0


【解决方案1】:

在 Cassandra 中,物化视图应始终包含所有现有的主键组件,但它们的顺序可能不同。所以在这种情况下,你可以创建主键为app_iduser_id的MV,但是如果你有非常流行的应用,这可能会导致大分区。

但我建议只创建具有必要主键的第二个表,并从您的应用程序中填充它 - 它可能比物化视图更高效,因为每次插入/更新/时它都需要从磁盘读取数据删除主表中的记录。另外,考虑到 Cassandra 中的物化视图是实验性功能,存在很多问题。

【讨论】:

  • 第二张表不是老数据的解决方案,我需要维护老数据。
  • 创建第二个表并用旧数据填充它...例如使用 Spark。
  • 这不是一个好的解决方案,只是为了一份报告,我会复制数据,你的解决方案很好,但不是我正在寻找的确切解决方案。谢谢:)
  • 如果只是为了报告(你没有写目的)你还有其他方式,比如,Spark等。
猜你喜欢
  • 2019-06-06
  • 1970-01-01
  • 1970-01-01
  • 2018-02-27
  • 2018-08-24
  • 1970-01-01
  • 2021-05-04
  • 2021-05-29
  • 1970-01-01
相关资源
最近更新 更多