2017-03-21 46 views
0

我有一個用例,其中我從客戶端在JSON的運行時接收屬性。Cassandra blob性能

e.g

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

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

Accourding我的使用情況下,我申請上有 "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是好主意,還是應該使用String而不是blob,而不是根據類型分析每個blob。

回答

0

是的。是個好主意。

您可以在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位。