2016-03-21 10 views
1

私はCassandraを初めて使用しています。私はテーブルを作成し、いくつかのデータを挿入しました。データを選択したいので、出力で計算されたカラムが必要です。なぜCassandraは更新ステートメントでudfを許可しないのですか?

私はユーザー定義関数concatを作成しました。これは2つの文字列を連結し、結果を返します。次に、この関数はSELECT文でデータを正しく表示することに気付きました。しかし、私はUPDATEステートメントで使用すると動作しません:

つまり、これは動作します。

select concat(prov,city), year,mnth,acno,amnt from demodb.budgets; 

が、これはそうではありません。また

update demodb.budgets set extra=concat(prov,city) where prov='ON'; 

我々は単に以下のように、(任意の計算なしで)同じタイプの別の列に一つの列の値を割り当てる場合、UPDATEも動作しません。

update demodb.budgets set extra=city where prov='ON'; 

また、単純な算術演算でさえUpdate文では機能しません。

つまり、これも機能しません。

update demodb.budgets set amnt = amnt + 20 where prov='ON'; 

ここでamntはシンプルなダブルタイプのコラムです。

(私はこれを見たとき、それは簡単な計算を行うことができない場合、私は何ができるすべてはほとんど私の髪を引っ張っていないと言って、私はカサンドラで作業することができない、私はちょうどそれをしたくない場合)

ことができる人どのように私は希望の更新を達成することができます助けてください?

+0

最初にカサンドラと仕事をしたいのですが?あなたの '選択 'はどうですか、あなたはそれらに満足していますか? –

+0

私はカッサンドラと仕事をしています。会社はそれを使いたいと思っています。私の上司は私にそれを尋ねてきました。 –

+0

私はもっと大きな画像を把握したいと考えていました... –

答えて

0

あなたの質問に対する基本的な答えはです。書き込み前の読み取りは、カサンドラの大きな反パターンです。

分散環境での並行性の問題が重要なポイントです。

More info

関連する問題