5.3.4.2.3. イベントの削除


これまでは、イベントの 作成 および 更新 の例を確認することができます。以下の例は、同じテーブルの 削除 イベントの値を示しています。繰り返しになると、値の schema 一部は create および update イベントと全く同じになります。

{
  "schema": { ... },
  },
  "payload": {
    "before": {
      "id": 1005,
      "first_name": "john",
      "last_name": "doe",
      "email": "noreply@example.org"
    },
    "after": null,
    "source": {
      "version": "1.1.2.Final",
      "connector": "sqlserver",
      "name": "server1",
      "ts_ms": 1559730445243,
      "snapshot": false,
      "db": "testDB",
      "schema": "dbo",
      "table": "customers",
      "change_lsn": "00000027:00000db0:0005",
      "commit_lsn": "00000027:00000db0:0007",
      "event_serial_no": "1"
    },
    "op": "d",
    "ts_ms": 1559730450205
  }
}

payload 部分を確認すると、イベントペイロードの 作成 または 更新 との違いが複数あります。

  • op フィールド値は d、この行が削除されたことを表しています。
  • この before フィールドには、データベースのコミットで削除された行の状態が表示されます。
  • after フィールドは null で、行が存在しなくなったことを表します。
  • source フィールド構造には、、および change_lsn フィールドの変更を除き、前 ts_ms commit_lsn と同じ値の多くが含まれます。
  • ts_ms、Debezium がこのイベントを処理したタイムスタンプを示しています。

このイベントにより、コンシューマーがこの行の削除を処理するのに使用できるすべての情報が提供されます。

SQL Server コネクターのイベントは、Kafka ログの圧縮 と連携するように設計されています。これにより、すべてのキーの少なくとも最新のメッセージが保持されていれば、古いメッセージを削除することができます。これにより、Kafka はストレージ領域を回収でき、トピックに完全なデータセットが含まれ、キーベースの状態のリロードに使用できます。

行が削除されても、上記の delete イベント値はログの圧縮でも機能します。これは、Kafka が同じキーで以前のメッセージをすべて削除できるためです。しかし、メッセージ値が Kafka null では、同じキーを持つ すべてのメッセージ が削除できる場合にのみ使用されます。これを可能にするため、SQL Server コネクターは、常に同じキーではなく null 値を持つ特別な tombstone イベントで delete イベントに従います。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.