Cassandra1.2.2を使用しています。私は、Jacksonを使用してオブジェクトをデータベースに保存するためにjsonとjavaにマッピングするのがとても簡単だと感じています。私は実際、すべてのデータに対してこれを実行したいと思っています。私の質問は、これは良い考えですか?これを私のアプリケーションに行うことの欠点は何ですか。私の最初の推測はおそらくより多くの処理オーバーヘッドですが、ジュースは絞る価値がありますか?そして、私が知る必要がある他の不利な点はありますか?
8778 次
1 に答える
13
1つの欠点は、元のデータで読み取る必要のあるデータを変更するには、逆シリアル化して変更を加え、オブジェクト全体をシリアル化して書き出すことです。Cassandraでは、書き込みは読み取りよりもはるかに効率的であるため、可能であれば書き込み前の読み取りを避けることが有益です。
別の方法は、JSONのフィールドごとに個別の列を使用することです。多次元データには複合列を使用できます。
したがって、データがある場合:
{
name: "fred"
address: "some town"
age: 42
}
アドレスを変更したい場合、これらを個別のCassandra列として使用する場合は、addressという列を挿入するだけです。JSONをシリアル化した場合は、さらに多くの作業を行う必要があります。データがライトワンスの場合、これは適用されません。
データがライトワンスの場合でも、データから1つのフィールドを読み取りたいだけの場合は、すべてを読み取って逆シリアル化するのではなく、個別に格納されている場合はその列を読み取ることができます。これは、データの一部を読み取りたい場合にのみ適用されます。
結論として、データを更新する必要がある場合、または一度にパーツを読み取るだけの場合は、個別の列を使用することでパフォーマンスが大幅に向上する可能性があります。
于 2013-03-19T17:05:50.087 に答える