Cassandra blob表现

时间:2017-03-21 13:48:30

标签: java cassandra datastax

我有一个用例,我在JSON中从客户端接收运行时的属性。

例如

  • { ..., "pname" : "country", "value" : "USA", "ptype" : "String" }

  • { ..., "pname" : "gdp", "value" : 7.4 , "ptype" : "double"}

根据我的用例,我对具有 "ptype" = "double"int的行应用sum,min,max函数。

我在Cassandra表下面使用了这个来将我的上述请求映射到cassandra表。

    create table IF NOT EXISTS kspace.count_table
    (source_id bigint, name varchar, date text, pname varchar, ptype varchar, pvalue blob, 
    count counter,unique_count counter, PRIMARY 
    KEY((source_id,name,pname,ptype,date),pvalue))

我使用pvalue作为blob ,因为我在运行时从客户端接收不同数据类型的属性

我的问题是,根据我的用例使用blob是否是个好主意,或者我应该使用String代替blob而不是根据类型解析每个blob。

1 个答案:

答案 0 :(得分:0)

是。这是一个好主意。

您可以将ascii,bigint,boolean,decimal,double,float,inet,int,timestamp,timeuuid,uuid,varchar,varint插入到blob字段中。

将double或int作为blob插入是有效的内存,int只需32位而double需要64位。如果您使用ascii,每个字符需要8位,如果插入整数最大值(2147483647),则需要80位。