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位