11

CQL 3 では、次のような定義を使用して「複合」主キーを使用できます。

CREATE TABLE timeline (
    user_id varchar,
    tweet_id uuid,
    author varchar,
    body varchar,
    PRIMARY KEY (user_id, tweet_id)
);

このようなスキーマでは、パーティション キー (ストレージ エンジンの行キー) はuser_id値で構成tweet_idされ、列名には複合化されます。代わりに、私が探しているのは、パーティション キー (ストレージ エンジンの行キー) が user_id:tweet_id のような複合値を持つことです。明らかにkey = user_id + ':' + tweet_id、アプリケーションで同様のことを行うことができますが、CQL 3 でこれを行う方法はありますか?

4

2 に答える 2

15

実際、はい、できます。その機能はこのチケットに追加されました:

https://issues.apache.org/jira/browse/CASSANDRA-4179

フォーマットは次のようになります。

CREATE TABLE timeline (
    user_id varchar,
    tweet_id uuid,
    author varchar,
    body varchar,
    PRIMARY KEY ((user_id, tweet_id))
);
于 2012-12-18T22:47:21.433 に答える
2

1.2 が出るまで、答えはノーです。パーティション キーは常に最初のコンポーネントになります。あなたが言ったように、これを行う方法は複合キーを自分で作成することです。これは実際には非常に一般的であるため、これをためらうべきではありません。

于 2012-12-18T20:18:04.330 に答える