2017-09-07 4 views
1

ユースケースを提供:Debeziumの理解

ストリーム処理アーキテクチャ。 イベントはKafkaに入り、MongoDBシンクを持つジョブによって処理されます。

データベース名:myWebsite コレクション:users

、ジョブはusersコレクションにuserレコードをシンクします。

  1. のでDebeziumは変更usersコレクションを監視し、、すべての変更で、話題dbserver1.myWebsite.usersにカフカにイベントが生成されますか?コネクタの名前はdbserver1とします。
  2. もしそうなら、私はdbserver1.myWebsite.usersから消費し、これらのイベントに反応するカフカ消費者を持つことができますか?
  3. Debeziumが作成したイベントには、データベースレコードの値も含まれていると思います。その変更に古い値または新しい値が含まれている場合dbレコードが作成された場合、oldはnullですか?

私はこれまでの理解を確認したいと思います。 ありがとうございました!

答えて

2

答えは簡単です

  1. はい
  2. はい、それは任意のカフカの消費者やカフカストリームすることができ、またはあなたがはい、Debeziumレコードは(だけではなく)から構成されてKSQL
  3. でそれを照会することができます古い値(before)と新しい値()です。 INSERTの場合、UPDATEの場合にはafterのみが存在し、beforeafterの両方が存在し(Postgresは特別な設定が必要です)、DELETEの場合はbeforeのみが存在します。
+0

オン)の場合、名前の最初の部分は 'mongodb.name'プロパティの値として与えられます。 3)では、MongoDBのイベントには、その情報を得ることができないので、前の部分はありません。挿入イベントの場合は 'after'、更新の場合は' patch'要素があります。イベント構造については、Debezium MongoDBコネクター[documentation](http://debezium.io/docs/connectors/mongodb/#change-events-value)に詳しく説明されています。 – Gunnar