Cassandra中的布尔值

时间:2018-10-03 13:34:11

标签: apache cassandra cassandra-3.0

我看到Cassandra布尔数据类型存在问题,

我有一个表,其中一个字段为布尔值

CREATE TABLE keyspace.issuetable (
    "partitionId" text,
    "name" text,
    "field" text,
    "testboolean" boolean,
    PRIMARY KEY ("partitionId", "name"));

现在,当我尝试插入表格时,我没有添加布尔值'testboolean'

    INSERT into keyspace.issuetable("partitionId", "name", "field")
VALUES ('testpartition', 'cluster1_name','testfiled');

问题

1)如果未在INSERT查询中添加布尔条目(例如testboolean条目),则根据数据类型,它必须为“ false”,但将其添加为 null

SELECT * FROM issuetable ;

 partitionId   | name          | field     | testboolean
---------------+---------------+-----------+-------------
 testpartition | cluster1_name | testfiled |        null

你能解释为什么吗?还请让我知道解决此问题的解决方案,我希望'false'而不是'null'

谢谢

哈里

1 个答案:

答案 0 :(得分:1)

Cassandra与传统的SQL数据库不同。它不在表中存储行。考虑Cassandra数据模型的最好方法是想象一个sortedMap<rowKey, map<columnKey, value>>

这意味着不需要任何特定的行具有与其他任何行/列相同的字段/列。在您的示例中,插入的行仅没有没有名为testboolean的属性。

要了解更多信息,我建议您参考here。 而且,不能为列设置默认值(或者只能在应用程序端设置默认值)。