2017-01-10 16 views
-1

jsonデータをCassandraに変換しようとすると問題が発生します。ネストされたjsonをCassandraに変換します

JSONデータは次のようである:

{ 
    "A": { 
    "A_ID" : "1111" 
    "field1": "value1", 
"field2": "value2", 
"field3": [ 
    { 
    "id": "id1", 
    "name": "name1", 
    "segment": [ 
     { 
     "segment_id": "segment_id_1", 
     "segment_name": "segment_name_1", 
     "segment_value": "segment_value_1" 
     }, 
     { 
     "segment_id": "segment_id_2", 
     "segment_name": "segment_name_2", 
     "segment_value": "segment_value_2" 
     }, 
     ... 
    ] 
    }, 
    { 
    "id": "id2", 
    "name": "name2", 
    "segment": [ 
     { 
     "segment_id": "segment_id_3", 
     "segment_name": "segment_name_3", 
     "segment_value": "segment_value_3" 
     }, 
     { 
     "segment_id": "segment_id_4", 
     "segment_name": "segment_name_4", 
     "segment_value": "segment_value_4" 
     }, 
     ... 
    ] 
    }, 
    ... 
] 
    } 
} 

はどうもありがとうございました!

私はここで複合キーについての記事を参照してください。

https://pkghosh.wordpress.com/2013/07/14/storing-nested-objects-in-cassandra-composite_columns/

しかし、著者は完全なソリューションを与えなかったので、私はこの記事が何を意味するのか分かりません。

+0

あなたの質問は実際にはっきりしていませんか? – questionare

答えて

0

この場合、jsonの文字列全体をデータベースに保存する必要があります。

たとえば、jsonの "segement"の部分にテーブルを作成できます。

Create table segment_by_id{ 
Id text, 
Name text, 
Json text, 
PRIMARY KEY (id, name) 
WITH CLUSTERING ORDER BY (name DESC); 

このようにして、jsonパーツを分割することができます。必要に応じてプライマリとクラスタリングキーを使用して、1つのテーブルにjson全体を保存することもできます。 CassandraはLZ4圧縮を使用しているため、大容量のデータを効率的に保存できます。テーブルの圧縮アルゴリズムを使用するには、Compressionのドキュメントを参照してください。

関連する問題