如何使用CQL获取一个没有空字符串的文本列的所有行?

时间:2015-09-25 02:29:47

标签: cassandra cql

我有一个名为testTable的Cassandra表:

create table testTable(
  col1 text primary key,
  col2 text
);

插入一些数据后,我希望得到col2不为空的所有行。如:

select * from testTable where col2 <> null;

从CQL参考和其他谷歌搜索结果来看,没有好的答案,我不知道是否有人告诉我该怎么做才能完成这项任务?

1 个答案:

答案 0 :(得分:1)

有关Cassandra无法解决这一问题的详细说明,请参阅此文章。 http://www.aaronstechcenter.com/null-query-cassandra.php

基本上,由于col2不是主键的一部分,因此您无法通过此列进行过滤。 Cassandra用作分布式哈希表,您可以在其中指定密钥并获取关联数据。这样,群集列中也不支持空值。

要实现您的目标,您可以过滤生成的数据集,以检查客户端中的col2是否为null或使用Spark之类的东西,但这在Cassandra中不是一件有效的事情。