Cassandraテーブルの構造の提案と照会方法
-
26-12-2019 - |
質問
次の階層を作成しようとしています。 userid rowkey、毎時時系列として、毎時の列として、毎時のアクティビティなどのユーザー固有の情報を持ちたいです。
{
UserId:long
{
Timestamp:datetime{
pageview: integer,
clicks:integer
}
}
.
supercolumns
を使用してそれを達成することが可能であることを読みましたが、同時にsupercolumns
が今古くなっていると述べました。それが本当なら、私が使うことができるすべての代替案?
あなたは私にCASSANDRAでそのような構造の種類を作成して挿入する必要がありますか。
ありがとう!
解決
これをユーザーに複合主キーを使用できます。テーブルのテーブル作成CQLクエリを追加します。クリックするにはカウンタ列を使用できます。
CREATE TABLE user_click_by_hour(
userid long,
time_stamp timestamp,
clicks int,
pageview int,
PRIMARY KEY(userid,time_stamp)
.
)
他のヒント
あなたの情報が特定の特定の使用およびアクセスされた場合たとえば、いつでも、両方のクリックとPageViewの両方が必要な場合は、JSON STORE
として使用することをお勧めします。CREATE TABLE user_click_by_hour(
userid long,
time_stamp timestamp,
val text,
PRIMARY KEY(userid,time_stamp)
)
.
valは、Clicks、PageViewなどを含むJSONオブジェクトです。
利点
1.前の列を追加するためのテーブルの変更を心配する必要はありません。これは、前のすべてのエントリ
にNULL値を追加するためのテーブルを追加します。- このデータが成長するように指定されている場合は、各ノード に1つの列メタデータが1つあるため、多くのスペースを保存するようにバインドされています。
所属していません StackOverflow