我有一个用例,我在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。
答案 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位。