我有一个带有列的表(id作为主键,myudt),其中myudt是用户定义的类型 . 现在我想根据myudt的一部分进行查询 . 基于以下讨论,似乎一种方法是使用物化视图,但如何?有人能举个例子吗?
how to filter cassandra query by a field in user defined type
当我尝试类似下面的内容时失败:
CREATE MATERIALIZED VIEW my_view AS SELECT myud.fname FROM source_table WHERE id IS NOT NULL且myudt IS NOT NULL且myudt.fname IS NOT NULL PRIMARY KEY(myudt.fname,id);
我在cqlsh中得到的错误是:
ErrorMessage code = 2000 [CQL查询中的语法错误] message =“第7:28行不匹配的输入' . '期待')'(... NOT NULL PRIMARY KEY(myudt [ . ] fname ...)“
1 回答
物化视图功能被追溯归类为实验性功能,不建议用于新的 生产环境 用途,https://www.mail-archive.com/user@cassandra.apache.org/msg54073.html . 所以最好远离他们 .
搜索UDT的一部分,首先打败了将它们组合在一起的目的 . 根据必须提供的查询设计数据模型,反之亦然 . 通过创建另一个表来根据您关心的UDT列提供查询,可以更好地复制数据 .