要获得我的布尔字段在cassandra中为null的所有行

问题描述 投票:0回答:1

我通过在cassandra中添加一个布尔类型的新列(比如说x)来更改表。现在,我希望所有x为空的行。SELECT * FROM mytable WHERE x为null,类似..我读过许多vslog中cassandra不支持null类型。

所以,请告诉我是否还有其他检索行的方法。

database cassandra datastax cassandra-3.0 cqlsh
1个回答
0
投票

通常,SELECT * FROM TABLE WHERE col = something通常对于Cassandra是非常糟糕的查询,直到col至少是分区键为止。由于Cassandra是分布式系统,因此需要从所有节点获取数据并返回数据。当您在Cassandra群集中有相对大量的数据时,此查询很可能会超时。

您仍然可以执行类似的查询,但是会更加复杂。您可以:

  • 将Spark与Spark Cassandra Connector一起使用(请参阅doc文件夹中的文档);
  • 通过将查询分为多个范围(覆盖各个令牌范围),可以对所有节点上的数据进行有效的扫描,因此您可以并行处理各个节点上的数据,而不会导致协调节点超负荷。我有an example of Java code可以用作基础,但Spark可能更易于实现。

P.S。我建议从Cassandra的基础知识入手,以了解其工作原理-如果您了解可以做什么和不可以做什么,将会使您的生活更加轻松。首先,您可以从DS201 course on DataStax Academy开始。

© www.soinside.com 2019 - 2024. All rights reserved.