2016-07-25 12 views
2

最新のCassandraリリースhttps://github.com/apache/cassandra/blob/trunk/examples/triggers/src/org/apache/cassandra/triggers/AuditTrigger.javaのサンプルトリガーコードを休止しています。基本的に同じロジックを実行しますが、スキーマにコンポジットキーが含まれているためスタックされています。Cassandra 3.xトリガーはコンポジットパーティションキーを作成します

質問は、合成キーを作成し、それをトリガー内でRowUpdateBuilderに渡すにはどうすればよいですか?

監査テーブルのスキーマは、休閑ようになります。

CREATE TABLE audit_table (

    aggregate bigint, 
    create_date timeuuid, 

    ... 

    PRIMARY KEY(aggregate, create_date) 
) WITH CLUSTERING ORDER BY (create_date ASC); 
+0

複合キーの構造は何ですか?それはクラスタリングコンポーネントを持っていますか?テーブルのスキーマを投稿してください。 – mikea

答えて

0

あなたはあなたがしてクラスタ化キーを設定するclustering関数を呼び出すことができRowBuilderUpdateだ作成した後。その後、あなたはそれを通常通り使用します。あなたはそれをトリガしたレコードからキーを取得する必要がある場合

public Collection<Mutation> augment(Partition update) { 
    ... 

    int cluster = 1; 
    ... 

    RowUpdateBuilder audit = 
     new RowUpdateBuilder(Schema.instance.getCFMetaData(auditKeyspace, auditTable), 
          FBUtilities.timestampMicros(), 
          (java.lang.Object)key); 

    audit = audit.clustering(cluster); 

    ... 
    return Collections.singletonList(audit.build()); 
} 

また、this answerをチェックしてください。

関連する問題