Java 卡桑德拉blob性能

Java 卡桑德拉blob性能,java,cassandra,datastax,Java,Cassandra,Datastax,我有一个用例,在这个用例中,我在运行时从JSON中的客户机接收属性 e、 g {…,“pname”:“country”,“value”:“USA”,“ptype”:“String”} {…,“pname”:“gdp”,“value”:7.4,“ptype”:“double”} 根据我的用例,我在有 “ptype”=“double”或int 我已经使用下面的Cassandra表将我的上述请求映射到Cassandra表 create table IF NOT EXISTS kspace.

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

e、 g

  • {…,“pname”:“country”,“value”:“USA”,“ptype”:“String”}

  • {…,“pname”:“gdp”,“value”:7.4,“ptype”:“double”}

根据我的用例,我在有

“ptype”=“double”
int

我已经使用下面的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。

是的。这是个好主意。

您可以在blob字段中插入ascii、bigint、boolean、decimal、double、float、inet、int、timestamp、timeuuid、uuid、varchar、varint

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