Debezium の RHEL へのインストール
Red Hat Enterprise Linux (RHEL) での Debezium 1.7 の使用
概要
前書き
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージをご覧ください。
第1章 Debezium の概要
Debezium for Red Hat Integration は、データベース操作をキャプチャーし、行レベル操作のデータ変更イベントレコードを作成して、Apache Kafka トピックに変更イベントレコードをストリーミングする分散型プラットフォームです。Debezium は Apache Karaf に構築され、AMQ Streams とデプロイおよび統合されます。
Debezium によって、データベーステーブルの行レベルの変更がキャプチャーされ、対応する変更イベントが AMQ Streams に渡されます。アプリケーションはこれらの 変更イベントストリーム を読み取りでき、変更イベントが発生した順にアクセスできます。
Debezium は、Debezium for Red Hat Integration のアップストリームコミュニティープロジェクトです。
Debezium には、以下を含む複数の用途があります。
- データレプリケーション。
- キャッシュの更新およびインデックスの検索。
- モノリシックアプリケーションの簡素化。
- データ統合。
- ストリーミングクエリーの有効化。
Debezium は、以下の共通データベースのコネクター (Kafka Connect をベースとする) を提供します。
- Db2
- MySQL
- MongoDB
- Oracle (テクノロジープレビュー)
- PostgreSQL
- SQL Server
第2章 Debezium コネクターの RHEL へのインストール
コネクタープラグインで Kafka Connect を拡張して、AMQ Streams 経由で Debezium コネクターをインストールします。AMQ Streams のデプロイ後に、Kafka Connect で Debezium をコネクター設定としてデプロイできます。
2.1. 前提条件
Debezium のインストールには、以下が必要です。
- Red Hat Enterprise Linux が実行しています。
-
管理者権限 (
sudo
アクセス)。 - AMQ Streams 2.0 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 2.0 にアップグレードする必要があります。アップグレードの手順は、「AMQ Streams and Kafka upgrades」を参照してください。
関連情報
- Red Hat Enterprise Linux で Debezium を実行するためにサポートされている構成については、Debezium Supported Configurations page を参照してください。
- AMQ Streams のインストール方法については、Installing AMQ Streams を参照してください。
2.2. Kafka トピック作成に関する推奨事項
Debezium は、データを複数の Apache Kafka トピックに保存します。トピックは、管理者が事前に作成する必要があります。または、Kafka Connect を設定して トピックを自動的に設定します。
以下のリストで、トピックの作成時に考慮すべき制限および推奨事項を説明します。
- MySQL、SQL Server、Db2、および Oracle コネクターのデータベース履歴トピック
- 無限または非常に長い保持期間。
- 3 以上の実稼働環境でのレプリケーション係数。
- 単一パーティション。
- その他のトピック
指定のレコードの 最後の 変更イベントのみが保存されるように Kafka ログコンパクション を有効にする場合は、Apache Kafka で以下のトピックプロパティーを設定します。
-
min.compaction.lag.ms
トピックコンシューマーがすべてのイベントを受信してマーカーを削除するのに十分な時間を確保するには、シンクコネクターに予想される最大ダウンタイムよりも大きい値を前述のプロパティーの値に指定します。たとえば、シンクコネクターに更新を適用する際に発生する可能性のあるダウンタイムについて考えてみましょう。
-
- 実稼働でレプリケートされます。
単一パーティション。
単一パーティションルールを緩和できますが、アプリケーションはデータベースの異なる行に対して順不同のイベントを処理する必要があります。単一行のイベントは、引き続き完全に順序付けされます。複数のパーティションを使用する場合、Kafka がキーをハッシュ化してパーティションを決定するのがデフォルトの動作になります。その他のパーティションストラテジーでは、単一メッセージ変換 (SMT: Single Message Transformations) を使用して、各レコードにパーティション番号を設定する必要があります。
2.3. AMQ Streams on RHEL での Debezium のデプロイ
この手順では、Red Hat Enterprise Linux で Debezium のコネクターを設定する方法を説明します。コネクターは、Apache Kafka Connect を使用して AMQ Streams クラスターにデプロイされます。Kafka Connect は Apache Kafka と外部システムとの間でデータをストリーミングするためのフレームワークです。Kafka Connect は、スタンドアロンモードではなく分散モードで実行する必要があります。
この手順では、AMQ Streams がインストールされ、ZooKeeper および Apache Kafka が稼働していることを仮定します。
手順
- Red Hat カスタマーポータルの Red Hat Integration のダウンロードサイト にアクセスし、Debezium コネクターまたは使用するコネクターをダウンロードします。たとえば、Debezium 1.7 MySQL Connector をダウンロードして、Dabezium を MySQL データベースと使用します。
/opt/kafka
で、他の Kafka Connect プラグインに対してディレクトリーが作成されていない場合は、connector-plugins
ディレクトリーを作成します。$ sudo mkdir /opt/kafka/connector-plugins
Debezium コネクターアーカイブの内容を
/opt/kafka/connector-plugins
ディレクトリーに展開します。この例では、MySQL コネクターの内容が展開されます。
$ sudo unzip debezium-connector-mysql-1.7.2.Final.zip -d /opt/kafka/connector-plugins
- インストールするコネクターごとに、前述の手順を繰り返します。
kafka
ユーザーに切り替えます。$ su - kafka $ Password:
Kafka Connect プロセスが実行中の場合は、停止します。
次のコマンドを入力して、Kafka Connect が分散モードで実行されているかどうかを確認します。
$ jcmd | grep ConnectDistributed
プロセスが実行中の場合、コマンドはプロセス ID を返します。次に例を示します。
18514 org.apache.kafka.connect.cli.ConnectDistributed /opt/kafka/config/connect-distributed.properties
プロセス ID を指定して
kill
コマンドを入力し、プロセスを停止します。次に例を示します。$ kill 18514
/opt/kafka/config/
のconnect-distributed.properties
ファイルを編集し、Debezium コネクターの場所を指定します。plugin.path=/opt/kafka/connector-plugins
分散モードで Kafka Connect を起動します。
$ /opt/kafka/bin/connect-distributed.sh /opt/kafka/config/connect-distributed.properties
Kafka Connect が実行されます。起動中に、Debezium コネクターは
connector-plugins
ディレクトリーからロードされます。- 各 Kafka Connect ワーカーノードに対して 6 から 8 を繰り返し行います。
Kafka Connect の更新
デプロイメントを更新する必要がある場合は、/opt/kafka/connector-plugins
ディレクトリーの Debezium コネクター JAR ファイルを修正してから、Kafka Connect を再起動します。
次のステップ
『Debezium User Guide』には、変更データキャプチャーに各コネクターとそのソースデータベースを設定する方法が記載されています。設定が終了したら、コネクターはソースデータベースに接続し、挿入、更新、削除された各行または各ドキュメントのイベントを生成します。
付録A サブスクリプションの使用
AMQ Streams は、ソフトウェアサブスクリプションによって提供されます。サブスクリプションを管理するには、Red Hat カスタマーポータルでアカウントにアクセスします。
アカウントへのアクセス
- access.redhat.com に移動します。
- アカウントがない場合は、作成します。
- アカウントにログインします。
サブスクリプションのアクティベート
- access.redhat.com に移動します。
- サブスクリプション に移動します。
- Activate a subscription に移動し、16 桁のアクティベーション番号を入力します。
zip および tar ファイルのダウンロード
zip または tar ファイルにアクセスするには、カスタマーポータルを使用して、ダウンロードする関連ファイルを検索します。RPM パッケージを使用している場合は、この手順は必要ありません。
- ブラウザーを開き、access.redhat.com/downloads で Red Hat カスタマーポータルの Product Downloads ページにログインします。
- INTEGRATION AND AUTOMATION まで下方向にスクロールします。
- Red Hat Integration をクリックして、Red Hat Integration ダウンロードページを表示します。
- コンポーネントの Download リンクをクリックします。
改定日時: 2022-04-16 18:47:45 +1000