純粋なJSONを使用してCassandraの行を更新するのが理想的です(たとえば、「INSERT INTO <table_name> JSON '<json_object_string>';
」のCQL文に類似しています)。ただし、CQL UPDATEステートメントを介してこのような機能が存在するようには見えません。CQL(Cassandra)を使用してJSONアップデートを行うためのエレガントな方法はありますか?
私が考えた(脳死)アプローチは、関連する行を削除してから挿入し直すことでした。しかし、そのアプローチには欠点があります。つまり、それを私の配慮から除外します。
私は、 "UPDATE <table_name> SET <key1> = '<new_value1>', <key2> = '<new_value2>', ..., <keyN> = '<new_valueN>';
" CQLステートメントを利用したバージョンを実装しました。しかし、「UPDATE <table_name> JSON '<new_json_object_string>';
」のようなものがあれば、それについて本当に知りたいです。
Andy、テストを進めるときにINSERTもUPDATEを実行すると判断しました。私の現在のアプリケーションでは、この(INSERTはUPDATEを行う)ビヘイビアは、キーと値のペアが存在しない場合にINSERTだけをINSERTする必要がある場合に問題になることがあります。その場合、INSERTを許可する前にキー/値のペアが存在するかどうかを判断するために、読み込む必要があるようです。その場合は... –
既存のレコードを置き換えることに懸念がある場合は、 'INSERT INTO
Andy、まだテストしていませんが、 "INSERT INTO
機能はCQL 5.1で利用可能になりました。構文は次のとおりです。
DEFAULT UNSET
オプションは、それだけでJSON文字列で見つかった値を上書きします。たとえば、レコード内のデータを含む他の列(column3、column4など)がある場合、これらの列は、上記の挿入文を実行すると元のデータを保持します。出典
2018-03-02 21:59:53 Tanvir
関連する問題