[解決済み] Kafkaでデータモデリング?トピックとパーティション
質問
新しいサービス(非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
? パーティションはどうする?
どのように決めればいいのですか?
どのように解決するのか?
Kafkaのためにデータを構造化するとき、それがどのように消費されることを意図しているかに本当に依存します。
私の考えでは、トピックとは、同じタイプのコンシューマによって消費される、似たようなタイプのメッセージのグループ化である。
トピックはZooKeeperに登録されるため、例えば100万人のユーザーを抱え、ユーザーごとにトピックを作成する場合、あまりに多くのトピックを追加しようとすると問題が発生する可能性がある。
一方、パーティションは、メッセージの消費を並列化するための方法です。 パーティショニング機能を利用するためには、ブローカークラスタ内のパーティションの総数が、少なくともコンシューマグループ内のコンシューマの数と同じである必要があります。 コンシューマ・グループ内のコンシューマは、パーティショニングに従ってトピックの処理負担を互いに分担し、あるコンシューマは自身が割り当てられたパーティション内のメッセージにのみ関与することになります。
パーティショニングは、プロデューサー側でパーティション・キーを使って明示的に設定することもできますし、設定されていない場合は、メッセージごとにランダムなパーティションが選択されます。
関連
-
[解決済み] グループがリバランスしているため、ハートビートが失敗しました。
-
[解決済み] Kafkaメッセージにカスタムヘッダを追加する
-
[解決済み] kafkaのレプリケートパーティション下の修正
-
[解決済み] Kafkaのキー/バリューペアベースのメッセージングは何のためにあるのですか?[クローズド]
-
[解決済み] HDFスキーマレジストリとConfluentの主な違いは何ですか?
-
[解決済み] KafkaよりRabbitMQを使うべきタイミングは?[クローズド]
-
[解決済み】Kafkaトピックのパージ
-
[解決済み】Kafkaのトピックとパーティションを理解する
-
[解決済み] Kafkaでデータモデリング?トピックとパーティション
-
[解決済み] カフカ コンシューマーAPIとストリームAPI
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] kafkaとnifiの違い
-
[解決済み] kafkaのレプリケートパーティション下の修正
-
[解決済み] HDFスキーマレジストリとConfluentの主な違いは何ですか?
-
[解決済み] JAAS または Kafka の設定に serviceName が定義されていない (Kerberos ではない)
-
[解決済み] Zookeeperにアクセスせずに-zookeeperフラグを使用してKafka 0.10トピックをすべて一覧表示する
-
[解決済み] Apache Kafkaのコンテキストで「Rebalancing」とはどういう意味ですか?
-
[解決済み] KafkaよりRabbitMQを使うべきタイミングは?[クローズド]
-
[解決済み】Kafkaトピックのパージ
-
[解決済み】Kafkaのトピックとパーティションを理解する
-
[解決済み] カフカ コンシューマーAPIとストリームAPI