私は、Cassandra で単純なモデルを作成するタスクを与えられました。ただし、ほとんど SQL のバックグラウンドしか持たないため、それを理解するのに少し苦労しています。
基本的に、その更新を定期的にリッスンしているフィードのリストがあります。これは、RSS、JSON、ATOM、XML など (フィードによって異なります) にすることができます。
私たちがやりたいことは、各フィードの新しい項目を定期的にチェックし、データをいくつかの形式 (JSON や RSS など) に変換して、Cassandra ストアに保存することです。
したがって、RBDMS では、構造は次のようなものになります。
Feed:
feedId
name
URL
FeedItem:
feedItemId
feedId
title
json
rss
created_time
Cassandra でそのデータをモデル化して、作成された降順 (おそらく最も一般的なクエリ) で特定のフィードの x 量のアイテムを取得するなどの単純なことを容易にする方法について混乱しています。
この例では、フィード アイテム ID を持つ時間ベースの UUID としての created_time を格納する複合キーを持つことに言及している 1 つの戦略について聞いたことがありますが、まだ少し混乱しています。
たとえば、キーが基本的に feedId である一連の行があるとします。上記のように、各行内に一連の列を格納します。問題は、実際のデータ (つまり、JSON、RSS、タイトル) がどこに行くのかということです。その「レコード」のすべてのデータを列の値として保存する必要がありますか?
複合キーのアイデアが好きなので、幅の広い行と狭い(短い?)行を混同していると思いますが、各レコードに他のデータも保存したいので、2つを融合する方法がわかりません...