【发布时间】:2019-08-07 21:27:51
【问题描述】:
我正在尝试在表 Scylla 集群上创建 GSI。根据文档,我可以创建CREATE INDEX ON ks.users (email);,它将在它创建的物化视图中包含该字段和主键。有没有办法在创建此 GSI 时将其他非关键属性投影到 MV?
感谢您的帮助。
【问题讨论】:
标签: scylla
我正在尝试在表 Scylla 集群上创建 GSI。根据文档,我可以创建CREATE INDEX ON ks.users (email);,它将在它创建的物化视图中包含该字段和主键。有没有办法在创建此 GSI 时将其他非关键属性投影到 MV?
感谢您的帮助。
【问题讨论】:
标签: scylla
由于物化视图的限制,这种投影是不可能的 - 最多只能将一个非键列合并到物化视图的键中。 Scylla 的 GSI 创建一个底层物化视图,并将索引列放在 key 中,因此只能使用一个非 key 列。
我能想到的唯一解决方法是:
此外,目前在 Scylla 的索引中自定义投影的唯一选项是本地索引,其中可以确保基本分区键也用作底层视图中的分区键:CREATE INDEX ON ks.users ((userid), email)。有一天,实现通用索引会很好,这将允许以更灵活的方式自定义底层物化视图 - 总是欢迎贡献:) 尽管如此,物化视图的约束仍将适用,因此投影更多非键列用于索引只有在物化视图允许相同的情况下才能允许。
【讨论】:
Select * 直接创建包含所有列的 MV。但我不能为Create Index 做同样的事情。所以即使 MV 有这个,在创建索引时它是不可能的吗?这是正确的说法吗?