新しいサービス (RDBMS 以外のデータ ストアやメッセージ キューなど) を使用するときに最初に考えることの 1 つは、「データをどのように構築すればよいか?」ということです。
いくつかの紹介資料を読み、見ました。特に、たとえばKafka: a Distributed Messaging System for Log Processingを取り上げると、次のように書かれています。
- 「トピックは、メッセージが関連付けられるコンテナです」
- 「並列処理の最小単位はトピックのパーティションです。これは、トピックの特定のパーティションに属するすべてのメッセージがコンシューマー グループ内のコンシューマーによって消費されることを意味します。」
これを知った上で、トピックとパーティションの使用方法を示す良い例は何でしょうか? 何かをいつトピックにする必要がありますか? 何かをいつパーティションにする必要がありますか?
例として、私の (Clojure) データが次のようになっているとします。
{:user-id 101 :viewed "/page1.html" :at #inst "2013-04-12T23:20:50.22Z"}
{:user-id 102 :viewed "/page2.html" :at #inst "2013-04-12T23:20:55.50Z"}
トピックはに基づいている必要がありuser-id
ますか? viewed
? at
? パーティションはどうですか?
どうやって決めるの?