如何根据用户定义的类型的一部分在Cassandra中创建实现的视图以过滤



我有一个带有列(ID作为主键,myudt(的表,其中myudt是用户定义的类型。现在,我想根据Myudt的一部分进行查询。根据以下讨论,似乎一种方法是使用实体视图,但是如何使用?有人可以举个例子吗?

如何通过用户定义类型中的字段过滤Cassandra查询

当我尝试下面的事情时,它会失败:

创建实现的视图my_view 作为选择 myud.fname 从 source_table id并非null而Myudt不是null,而Myudt.fname不是null 主键(myudt.fname,id(;

我在cqlsh中遇到的错误是:

errormessage代码= 2000 [CQL查询中的语法错误]消息="行7:28不匹配输入'。期待'('(...不是null主键(Myudt [。] fname ...("

实现的视图功能被追溯地分类为实验性,不建议用于新生产用途,https://www.mail-archive.com/user@cassandra@cassandra.apache.org/msg54073.html。因此,最好远离他们。

在UDT的一部分上搜索,打败了将它们合并在一起的目的。设计数据模型基于其必须提供的查询,而不是反之亦然。通过创建另一个表以根据您关心的UDT列提供查询来复制数据。

最新更新