MySQL データベース CDC ソースをイベントストリームに追加する
Note
この記事には、Microsoft が使用しなくなった SLAVE
という用語が使われています。 ソフトウェアからこの用語が削除された時点で、この記事から削除します。
この記事では、Azure Database for MySQL Change Data Capture ソースをイベントストリームに追加する方法について説明します。 Microsoft Fabric イベント ストリーム用の Azure MySQL Database Change Data Capture (CDC) ソース コネクタを使用すると、Azure Database for MySQL データベース内の現在のデータのスナップショットをキャプチャできます。
監視するテーブルを指定でき、eventstream はテーブルに対する将来の行レベルの変更を記録します。 イベントストリームで変更がキャプチャされたら、この CDC データをリアルタイムで処理し、Fabric の別の宛先に送信して、さらに処理または分析することができます。
Note
このソースは、ワークスペース容量の次のリージョンではサポートされていません: 米国西部 3、スイス西部。
前提条件
- 共同作成者以上のアクセス許可を使用した Fabric 容量ライセンス モード (または試用版ライセンス モード) でのワークスペースへのアクセス。
- Azure Database for MySQL フレキシブル サーバーのインスタンス。
- これは、パブリックにアクセス可能である必要があります。ファイアウォールの内側にあっても、仮想ネットワークで保護されてもなりません。
- イベントストリームがない場合は、イベントストリームを作成します。
MySQL を設定します。
コネクタは Debezium MySQL コネクタを使用して、Azure Database for MySQL データベースの変更をキャプチャします。 Messaging Connector が変更をキャプチャできるすべてのデータベースに対して適切な権限を持つ MySQL ユーザーを定義する必要があります。 管理者ユーザーを直接使用して、通常は次のように適切な権限を持つデータベースに接続できます。 または、次の手順に従って、新しいユーザーを作成できます
Note
新しいユーザーまたは管理者アカウントと対応するパスワードは、後で Eventstream 内のデータベースに接続するために使用されます。
コマンド プロンプトで
mysql
、MySQL ユーザーを作成します。mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
必要な権限をユーザーに付与します。
mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
ユーザーのアクセス許可を最終処理します。
mysql> FLUSH PRIVILEGES;
ユーザーまたは管理者に必要な権限が付与されているかどうかを確認するには、次のコマンドを実行すると、上記の手順 2 の必要な特権が表示されます。
SHOW GRANTS FOR user;
必要なアクセス許可をユーザーに付与する方法の詳細については、「MySQL 用 Debezium コネクタ: Debezium ドキュメント」を参照してください。
binlog を有効にする
MySQL レプリケーションのバイナリ ログを有効にする必要があります。 バイナリ ログには、変更を反映するためのレプリケーション ツールのトランザクションの更新が記録されます。
Azure portal の Azure Database for PostgreSQL サーバーのページで、[設定] の下の [サーバー パラメーター] を選択します。
プロジェクト パラメーター ページで、次の設定を完了し、保存を選択します。
binlog_row_imageの場合は、[完全] を選択します。
binlog_expire_logs_secondsの場合は、バイナリ ログ ファイルが消去されるまでにサービスが待機する秒数を設定します。 (必要な場合) の値を、環境内のプレフィックスと一致するように変更します (例:86400 )。
ソースとして Azure MySQL DB (CDC) を追加する
イベントストリームにまだソースを追加していない場合は、[外部ソースの使用] タイルを選択します。
既に公開されているイベントストリームにソースを追加する場合は、編集モードに切り替え、リボンの [ソースの追加] を選択してから、[外部ソース] を選択します。
[データ ソースの選択] ページにおいて、[MySQL DB (CDC)] タイルで [接続] を探して選択します。
Azure MySQL DB (CDC) の構成と接続
[接続] 画面の [接続] で、[新しい接続] を選択してクラウド接続を作成します。
Azure MySQL DB の次の接続設定と接続資格情報を入力し、[接続] を選択します。
サーバー: My-mysql-server.mysql.database.azure.com など、Azure Database for MySQL データベースのサーバー アドレス。
データベース: データベース名 (my_database など)。
接続名: 自動生成されるか、この接続の新しい名前を入力できます。
ユーザー名 と パスワード: Azure Database for MySQL データベースの資格情報を入力します。 サーバー管理者アカウントまたは必要な権限を付与して作成されたユーザー アカウントを入力してください。
次の情報を入力して Azure MySQL DB CDC データ ソースを構成し、[次へ] を選択します。
テーブル: テーブル名の一覧をコンマで区切って入力します。 各テーブル名は、my_database.users などの形式
<database name>.<table name>
に従う必要があります。サーバー ID: MySQL クラスター内のサーバーとレプリケーション クライアントごとに一意の値を入力します。 既定値は 1000 です。
ポート: 既定値は変更しません。
ソース名を編集するには、右側の [ストリームの詳細] セクションで、[ソース名] の鉛筆ボタンを選択します。
Note
リーダーごとに異なるサーバー ID を設定します。 binlog を読み取るすべての MySQL データベース クライアントには、サーバー ID と呼ばれる一意の ID が必要です。 MySQL サーバーはこの ID を使用して、ネットワーク接続と binlog の位置をメインします。 同じサーバー ID を共有するジョブが異なると、間違った binlog 位置から読み取る可能性があります。 そのため、リーダーごとに異なるサーバー ID を設定することをお勧めします。
[確認と接続] ページで、Azure MySQL DB CDC ソースの概要を確認した後、[追加] を選択して構成を完了します。
Note
1 つのイベントストリームでのソースと宛先の合計数は 11 個までです。
更新されたイベントストリームを表示する
編集モードでイベントストリームに追加された Azure MySQL DB (CDC) ソースが表示されます。
[発行] を選択して変更を発行し、Azure MySQL DB CDC データの eventstream へのストリーミングを開始します。
関連するコンテンツ
その他のコネクタ。