12.4. コネクターのステータスを報告する通知設定


Debezium の通知は、コネクターに関するステータス情報を取得するメカニズムを提供します。通知は、以下のチャネルに送信できます。

SinkNotificationChannel
Connect API を介して、設定されたトピックに通知を送信します。
LogNotificationChannel
通知がログに追加されます。
JmxNotificationChannel
通知は JMX Bean の属性として公開されます。
Debezium 通知の詳細は、以下を参照してください。

12.4.1. Debezium 通知形式の説明

通知メッセージには、以下の情報が含まれます。

プロパティー説明

id

通知に割り当てられる一意の識別子。増分スナップショット通知の場合、IDexecute-snapshot シグナルで送信されるものと同じです。

aggregate_type

通知が関連する集約ルートのデータ型。ドメイン駆動設計では、エクスポートされたイベントは常に集約を参照する必要があります。

type

aggregate_type フィールドで指定されたイベントに関するステータス情報を提供します。

additional_data

通知に関する詳細情報を含む Map<String,String>。例については、増分スナップショットの進行状況に関する Debezium の通知 を参照してください。

12.4.2. Debezium 通知の種類

Debezium の通知では、初期スナップショット または 増分スナップショット の進行状況に関する情報が提供されます。

初期スナップショットのステータスに関する Debezium 通知

次の例は、初期スナップショットのステータスを提供する一般的な通知を示しています。

{
    "id": "5563ae14-49f8-4579-9641-c1bbc2d76f99",
    "aggregate_type": "Initial Snapshot",
    "type": "COMPLETED" 1
}
1
type フィールドには、以下のいずれかの値を含めることができます。
  • COMPLETED
  • ABORTED
  • SKIPPED

12.4.2.1. 例: 増分スナップショットの進行状況をレポートする Debezium 通知

次の表では、増分スナップショットのステータスを報告する通知に含まれる可能性のあるさまざまなペイロードの例を紹介しています。

ステータスペイロード

Start

  {
      "id":"ff81ba59-15ea-42ae-b5d0-4d74f1f4038f",
      "aggregate_type":"Incremental Snapshot",
      "type":"STARTED",
      "additional_data":{
         "connector_name":"my-connector",
         "data_collections":"table1, table2"
      }
}

Paused

{
      "id":"068d07a5-d16b-4c4a-b95f-8ad061a69d51",
      "aggregate_type":"Incremental Snapshot",
      "type":"PAUSED",
      "additional_data":{
         "connector_name":"my-connector",
         "data_collections":"table1, table2"
      }
}

Resumed

 {
   "id":"a9468204-769d-430f-96d2-b0933d4839f3",
   "aggregate_type":"Incremental Snapshot",
   "type":"RESUMED",
   "additional_data":{
      "connector_name":"my-connector",
      "data_collections":"table1, table2"
   }
}

Stopped

{
   "id":"83fb3d6c-190b-4e40-96eb-f8f427bf482c",
   "aggregate_type":"Incremental Snapshot",
   "type":"ABORTED",
   "additional_data":{
      "connector_name":"my-connector"
   }
}

チャンクの処理

{
   "id":"d02047d6-377f-4a21-a4e9-cb6e817cf744",
   "aggregate_type":"Incremental Snapshot",
   "type":"IN_PROGRESS",
   "additional_data":{
      "connector_name":"my-connector",
      "data_collections":"table1, table2",
      "current_collection_in_progress":"table1",
      "maximum_key":"100",
      "last_processed_key":"50"
   }
}

Snapshot completed for a table

{
   "id":"6d82a3ec-ba86-4b36-9168-7423b0dd5c1d",
   "aggregate_type":"Incremental Snapshot",
   "type":"TABLE_SCAN_COMPLETED",
   "additional_data":{
      "connector_name":"my-connector",
      "data_collection":"table1, table2",
      "scanned_collection":"table1",
      "total_rows_scanned":"100",
      "status":"SUCCEEDED" 1
   }
}
1
以下の値を使用できます。
  • EMPTY - テーブルが空です。
  • NO_PRIMARY_KEY - テーブルにはスナップショットに必要なプライマリーキーがありません。
  • SKIPPED - このタイプのテーブルのスナップショットはサポート対象外です。詳細は、ログを確認してください。
  • SQL_EXCEPTION - スナップショットの処理中に SQL 例外が発生しました。
  • SUCCEEDED - スナップショットが正常に完了しました。
  • UNKNOWN_SCHEMA - テーブルのスキーマが見つかりません。既知のテーブルのリストについてはログを確認してください。

Completed

{
   "id":"6d82a3ec-ba86-4b36-9168-7423b0dd5c1d",
   "aggregate_type":"Incremental Snapshot",
   "type":"COMPLETED",
   "additional_data":{
      "connector_name":"my-connector"
   }
}

12.4.3. イベントを通知チャネルに送信できるように Debezium の有効化

Debezium が通知を発行できるようにするには、notification.enabled.channels 設定プロパティーを設定して通知チャネルのリストを指定します。デフォルトでは、以下の通知チャネルを利用できます。

  • sink
  • log
  • jmx
重要

sink 通知チャネルを使用するには、notification.sink.topic.name 設定プロパティーを、Debezium が通知を送信するトピックの名前に設定する必要もあります。

12.4.3.1. JMX Bean を通じて公開されたイベントをレポートするための Debezium 通知の有効化

Debezium が JMX Bean を通じて公開されるイベントをレポートできるようにするには、次の設定手順を実行します。

  1. JMX MBean サーバーが通知 Bean を有効化して 公開できるようにします。
  2. コネクター設定の notification.enabled.channels プロパティーに jmx を追加します。
  3. 優先する JMX クライアントを MBean サーバーに接続します。

通知は、debezium.<connector-type>.management.notifications.<server> という名前の Bean の Notifications 属性を通じて公開されます。

次の図は、増分スナップショットの開始を報告する通知を示しています。

JMX の通知属性のフィールド

通知を破棄するには、Bean で reset 操作を呼び出します。

通知は、debezium.notification タイプの JMX 通知としても公開されます。アプリケーションが MBean が発行する JMX 通知をリッスンできるようにするには、アプリケーションを通知にサブスクライブ します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.