2017-03-21 8 views
0

私はクライアントから実行時にプロパティを受け取るユースケースがJSONです。私のユースケースにAccourdingカサンドラブロブのパフォーマンス

例えば

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

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

私は "ptype" = "double"またはintを持つ行に合計、最小、最大の機能を適用します。

私はこれをカッサンドラのテーブルの下に使用して上記の私の要求をキャッサンドラのテーブルにマッピングしました。私は、実行時にクライアントからの異なるデータ型のプロパティを受けるので、私はブロブとしてpvalueを使用していた

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)) 

私のご質問は、Stringを使用し、それぞれのタイプに応じて解析する必要がある場合は、使用するケースまたはブロブの代わりにブロブを使用することをお勧めします。

答えて

0

はい。いい考えだね。

blobフィールドにascii、bigint、boolean、decimal、double、float、inet、int、timestamp、timeuuid、uuid、varchar、varintを挿入できます。

blobとしてdoubleまたはintを挿入すると効率的ですが、intの場合は32ビット、doubleの場合は64ビットしか使用できません。 asciiを使用した場合、各文字に8ビットかかるので、整数の最大値(2147483647)を挿入すると80ビットかかります。

関連する問題