新しいサービス(RDBMS以外のデータストアやメッセージキューなど)を使用するときに最初に考えることの1つは、「データをどのように構造化する必要があるか」です。
私はいくつかの紹介資料を読んで見ました。特に、たとえば、Kafka:ログ処理のための分散メッセージングシステムを例にとります。
- 「トピックは、メッセージが関連付けられているコンテナです」
- 「並列処理の最小単位はトピックのパーティションです。これは、トピックの特定のパーティションに属するすべてのメッセージが、コンシューマーグループのコンシューマーによって消費されることを意味します。」
これを知って、トピックとパーティションの使用方法を示す良い例は何でしょうか?何かがトピックになるのはいつですか?何かをパーティションにする必要があるのはいつですか?
例として、私の(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
?パーティションはどうですか?
どうやって決めるの?