由于有两种方法可以支持CQL3中的宽行.一种方法是使用复合键,另一种方法是使用Map,List和Set等集合.复合键方法可以有数百万列(转换为行).这解决了我们的一些用例.
但是,如果我们使用集合,我想知道集合是否存在限制,可以存储一定数量/数量的数据(就像之前的Thrift C*一样,支持最多20亿列)
We have implemented QualifierFilter as well as ValueFilter (using BinaryComparator) of Hbase successfully and they are working fine for most of our cases. However they are failing in cases like number > -10 or number < -10
Please note that number = -10 is working perfectly fine. Also, number > 10 and number < 10 are also working fine.
如果你想看到代码,请查看以下链接:
1. QualifierFilter -相关线是126-142
2.值过滤 -相关线是107-128
根据这篇博客,如果我们想要为rowkeys存储负值,这可能是序列化的问题,我们应该编写自己的序列化器进行比较.
所以我们想知道:
1.在这种情况下是否真的有必要编写自己的序列化程序?
如果是,怎么样?任何例子都会有很大的帮助.
这可能听起来很愚蠢,因为SQL的复合主键中没有空值.但只想确认我们是否可以在CQL3中使用相同的功能?
所以,我们有一个这样的表来存储宽行:
CREATE TABLE keyspace12.colFamily1
(
id text,
colname text,
colvalue blob,
PRIMARY KEY (id,colname, colvalue)
) WITH COMPACT STORAGE
Run Code Online (Sandbox Code Playgroud)
我们在某些情况下colname为null.我能这样做吗?如果是,那怎么样?如果没有,那么存储宽列行的方法是什么?我们可以在cassandra的复合列的第一部分中有一些空值(根据Thrift的约定)?