2017-09-16 13 views
0

マテリアライズドビューのPKでも使用されているテーブルの値を変更することがOKであるのだろうか? そのOKならば、誰かがそれがどのように動作するかについて説明できるならば、私は感謝しますCassandra - マテリアライズド・ビューのPKに使用される表の列を更新することもできますか?

たとえば、次のテーブルを持つ(挿入、削除?):

CREATE TABLE users (
    id uuid, 
    username text, 
    category int, 
    created timestamp, 
    PRIMARY KEY (username) //Show users ASC 
) 

CREATE MATERIALIZED VIEW category_username AS 
    SELECT username, category 
    FROM keyspace.users 
    WHERE username IS NOT NULL AND category IS NOT NULL 
    PRIMARY KEY (category, username); //Show users by category ASC 

その後、私は別の何かにユーザーのカテゴリを変更彼が現時点で持っているもの:

UPDATE keyspace.users 
    SET category = 'SomeUniqueInt' 
    WHERE username = 'IAmGroot' IF EXISTS; 

category_usernameはそれに応じて更新されますか?

これはquestionの評価です。

答えて

1

標準表と同様に、カッサンドラは以前のレコードを削除して、マテリアライズド・ビューからユーザー名付きの更新済カテゴリを挿入します。カサンドラで

  1. 墓碑にはスペースを取ると、実質的に必要なストレージの量を増やすことができ墓石を作成、削除します。
  2. 墓石が多数あるテーブルを照会すると、パフォーマンスに問題が発生し、レイテンシとヒープ・プレッシャーが発生します。

ユーザカテゴリを頻繁に更新すると、墓石が生成されます。

関連する問題