Debezium の RHEL へのインストール

Red Hat Integration 2021.Q1

テクノロジープレビュー - Red Hat Enterprise Linux (RHEL) 上の Debezium 1.4 向け

概要

本ガイドでは、AMQ Streams を使用して RHEL に Red Hat Debezium をインストールする方法を説明します。

前書き

重要

テクノロジープレビューの機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat はテクノロジープレビュー機能を実稼働環境に実装することは推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。サポート範囲の詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

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

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

第1章 Debezium の概要

Red Hat Debezium は、データベース操作をキャプチャーし、行レベル操作のデータ変更イベントレコードを作成して、Kafka トピックに変更イベントレコードをストリーミングする分散型プラットフォームです。Red Hat Debezium は Apache Karaf に構築され、AMQ Streams とデプロイおよび統合されます。

Debezium によって、データベーステーブルの行レベルの変更がキャプチャーされ、対応する変更イベントが AMQ Streams に渡されます。アプリケーションはこれらの 変更イベントストリーム を読み取りでき、発生順に変更イベントにアクセスできます。

Debezium には、以下を含む複数の用途があります。

  • データレプリケーション
  • キャッシュの更新およびインデックスの検索
  • モノリシックアプリケーションの簡素化
  • データ統合
  • ストリーミングクエリーの有効化

Debezium は、以下の共通データベースのコネクター (Kafka Connect をベースとする) を提供します。

  • MySQL
  • PostgreSQL
  • SQL Server
  • MongoDB
  • Db2

    重要

    Debezium Db2 コネクターはテクノロジープレビュー機能です。テクノロジープレビューの機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat はテクノロジープレビュー機能を実稼働環境に実装することは推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。サポート範囲の詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

Debezium は、Red Hat Debezium のアップストリームコミュニティープロジェクトです。

第2章 Debezium コネクターの RHEL へのインストール

コネクタープラグインで Kafka Connect を拡張して、AMQ Streams 経由で Debezium コネクターをインストールします。AMQ Streams のデプロイ後に、Kafka Connect で Debezium をコネクター設定としてデプロイできます。

2.1. 前提条件

Debezium のインストールには、以下が必要です。

  • x86_64 アーキテクチャーの Red Hat Enterprise Linux バージョン 7.x または 8.x。
  • 管理者権限 (sudo アクセス)。
  • AMQ Streams 1.6 on Red Hat Enterprise Linux がホストマシンにインストールされている。

  • AMQ Streams のインストール時に作成された kafka ユーザーのクレデンシャル。
  • AMQ Streams クラスターが稼働している。

    • 単一の ZooKeeper および単一の Kafka ノードが含まれる実稼働ではない、基本的な AMQ Streams クラスターを実行するための手順は、Running a single node AMQ Streams cluster を参照してください。
注記

以前のバージョンの AMQ Streams を使用している場合は、AMQ Streams 1.6 にアップグレードする必要があります。アップグレードの手順は、AMQ Streams and Kafka upgrades を参照してください。

その他のリソース

  • AMQ Streams のインストール方法については、Installing AMQ Streams を参照してください。

2.2. Kafka トピック作成に関する推奨事項

Debezium は、データの保存に複数の Kafka トピックを使用します。トピックは、管理者が作成するか、ブローカー設定プロパティー auto.create.topics.enable を使用してトピックの自動作成を有効にし、Kafka 自身が作成する必要があります。

以下のリストで、トピックの作成時に考慮すべき制限および推奨事項を説明します。

MySQL、SQL Server、および Db2 コネクターのデータベース履歴トピック
  • 無限または非常に長期の保持期間
  • 3 以上の実稼働でのレプリケーション係数
  • 単一パーティション
その他のトピック
  • 特定のレコードの 最後の 変更イベントのみを保持するために Kafka ログの圧縮 が有効になっている場合は、Apache Kafka で min.compaction.lag.ms および delete.retention.ms トピックレベルの設定を設定します。コンシューマーがすべてのイベントを受信し、マーカーを削除するために十分な時間を確保する必要があります。よって、シンクコネクターで予想される最大ダウンタイムよりも大きな値を設定します。たとえば、コネクター更新時のダウンタイムを考慮します。
  • 実稼働でレプリケートされます。
  • 単一パーティション。

    単一パーティションルールを緩和できますが、アプリケーションはデータベースの異なる行に対して順不同のイベントを処理する必要があります。単一行のイベントは、引き続き完全に順序付けされます。複数のパーティションを使用する場合、Kafka がキーをハッシュ化してパーティションを決定するのがデフォルトの動作になります。その他のパーティションストラテジーでは、SMT (Simple Message Transform、シンプルメッセージ変換) を使用して各レコードにパーティション番号を設定する必要があります。

2.3. AMQ Streams on RHEL での Debezium のデプロイ

この手順では、Red Hat Enterprise Linux で Debezium のコネクターを設定する方法を説明します。コネクターは、Kafka Connect を使用して AMQ Streams クラスターにデプロイされます。Kafka Connect は Apache Kafka と外部システムとの間でデータをストリーミングするためのフレームワークです。Kafka Connect は、スタンドアロンモードではなく分散モードで実行する必要があります。

この手順では、AMQ Streams がインストールされ、ZooKeeper および Kafka が稼働していることを仮定します。

手順

  1. Red Hat カスタマーポータルの Red Hat Integration のダウンロードサイト にアクセスし、Debezium コネクターまたは使用するコネクターをダウンロードします。たとえば、Debezium 1.4.0 MySQL Connector をダウンロードして、Dabezium を MySQL データベースと使用します。
  2. /opt/kafka で、他の Kafka Connect プラグインに対してディレクトリーが作成されていない場合は、connector-plugins ディレクトリーを作成します。

    $ sudo mkdir /opt/kafka/connector-plugins
  3. Debezium コネクターアーカイブの内容を /opt/kafka/connector-plugins ディレクトリーに展開します。

    この例では、MySQL コネクターの内容が展開されます。

    $ sudo unzip debezium-connector-mysql-1.4.0-plugin.zip -d /opt/kafka/connector-plugins
  4. インストールするコネクターごとに、上記のステップを繰り返し行います。
  5. kafka ユーザーに切り替えます。

    $ su - kafka
    $ Password:
  6. Kafka Connect がすでに分散モードで稼働しているかどうかを確認します。稼働していれば、すべての Kafka Connect ワーカーノード上で関連プロセスを停止します。以下に例を示します。

    $ jcmd | grep ConnectDistributed
    18514 org.apache.kafka.connect.cli.ConnectDistributed /opt/kafka/config/connect-distributed.properties
    $ kill 18514
  7. /opt/kafka/config/connect-distributed.properties ファイルを編集し、Debezium コネクターの場所を指定します。

    plugin.path=/opt/kafka/connector-plugins
  8. 分散モードで Kafka Connect を実行します。

    $ /opt/kafka/bin/connect-distributed.sh /opt/kafka/config/connect-distributed.properties

    Kafka Connect が実行されます。起動中に、Debezium コネクターは connector-plugins ディレクトリーからロードされます。

  9. 各 Kafka Connect ワーカーノードに対して 6 から 8 を繰り返し行います。

Kafka Connect の更新

デプロイメントを更新する必要がある場合は、/opt/kafka/connector-plugins ディレクトリーの Debezium コネクター JAR ファイルを修正してから、Kafka Connect を再起動します。

次のステップ

Debezium User Guideには、変更データキャプチャーに各コネクターとそのソースデータベースを設定する方法が記載されています。設定の終了後、コネクターはソースデータベースに接続し、挿入、更新、削除された各行または各ドキュメントのイベントを生成します。

付録A サブスクリプションの使用

AMQ Streams は、ソフトウェアサブスクリプションによって提供されます。サブスクリプションを管理するには、Red Hat カスタマーポータルでアカウントにアクセスします。

アカウントへのアクセス

  1. access.redhat.com に移動します。
  2. アカウントがない場合は、作成します。
  3. アカウントにログインします。

サブスクリプションのアクティベート

  1. access.redhat.com に移動します。
  2. サブスクリプション に移動します。
  3. Activate a subscription に移動し、16 桁のアクティベーション番号を入力します。

zip および tar ファイルのダウンロード

zip または tar ファイルにアクセスするには、カスタマーポータルを使用して、ダウンロードする関連ファイルを検索します。RPM パッケージを使用している場合は、この手順は必要ありません。

  1. ブラウザーを開き、access.redhat.com/downloads で Red Hat カスタマーポータルの Product Downloads ページにログインします。
  2. INTEGRATION AND AUTOMATION まで下方向にスクロールします。
  3. Red Hat Integration をクリックして、Red Hat Integration ダウンロードページを表示します。
  4. コンポーネントの ダウンロード リンクをクリックします。

改訂日時: 2022-12-03 12:07:15 +1000