次の方法で共有


MySQL データベース CDC ソースをイベントストリームに追加する

Note

この記事には、Microsoft が使用しなくなった SLAVE という用語が使われています。 ソフトウェアからこの用語が削除された時点で、この記事から削除します。

この記事では、MySQL Change Data Capture ソースをイベントストリームに追加する方法について説明します。 現在、MySQL Database CDC は、データベースにパブリックにアクセスできる次のサービスからサポートされています。

  • Azure Database for MySQL
  • Amazon RDS for MySQL
  • Amazon Aurora MySQL
  • Google Cloud SQL for MySQL (GCP)

このガイドでは、Azure Database for MySQL CDC を例として使用します。

MySQL データベース CDC ソースがイベントストリームに追加されると、指定したテーブルに対する行レベルの変更がキャプチャされます。 その後、これらの変更をリアルタイムで処理し、別の宛先に送信して詳細な分析を行うことができます。

Note

このソースは、ワークスペース容量の次のリージョンではサポートされていません: 米国西部 3スイス西部

前提条件

  • 共同作成者以上のアクセス許可を使用した Fabric 容量ライセンス モード (または試用版ライセンス モード) でのワークスペースへのアクセス。
  • MySQL データベースのインスタンス (Azure Database for MySQL - フレキシブル サーバー内のデータベースなど) へのアクセス。
  • これは、パブリックにアクセス可能である必要があります。ファイアウォールの内側にあっても、仮想ネットワークで保護されてもなりません。
  • イベントストリームがない場合は、イベントストリームを作成します。

MySQL を設定します。

コネクタは Debezium MySQL コネクタを使用して、MySQL データベースの変更をキャプチャします。 Messaging Connector が変更をキャプチャできるすべてのデータベースに対して適切な権限を持つ MySQL ユーザーを定義する必要があります。 管理者ユーザー を直接使用して、通常は適切な特権を持つデータベースに接続することも、次の手順に従って新しいユーザーを作成することもできます。

Note

新しいユーザーまたは管理者アカウントと対応するパスワードは、後で Eventstream 内のデータベースに接続するために使用されます。

  1. コマンド プロンプトで mysql 、MySQL ユーザーを作成します。

    mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'password';
    
  2. 必要な権限をユーザーに付与します。

    mysql> GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%';
    

    Note

    Amazon RDS や Aurora などのホストされているオプションと同様に、グローバル読み取りロックが使用できない場合は、テーブルレベルのロックを使用して一貫性のあるスナップショットが作成されます。 この場合は、ユーザーに LOCK TABLES アクセス許可を付与する必要があります。 さらに、スナップショット中の FLUSH 操作をサポートするには、RELOAD または FLUSH_TABLES 権限の付与も必要になる場合があります。

  3. ユーザーのアクセス許可を最終処理します。

    mysql> FLUSH PRIVILEGES;
    

ユーザーまたは管理者に必要な特権が付与されているかどうかを確認するには、次のコマンドを実行し、手順 2 で必要な特権を表示する必要があります。

SHOW GRANTS FOR user;

必要なアクセス許可をユーザーに付与する方法の詳細については、「MySQL 用 Debezium コネクタ: Debezium ドキュメント」を参照してください。

binlog を有効にする

MySQL レプリケーションのバイナリ ログを有効にする必要があります。 バイナリ ログには、変更を反映するためのレプリケーション ツールのトランザクションの更新が記録されます。 このセクションでは、構成手順 示す例として、Azure Database for MySQL CDC を使用します。

  1. Azure portal の Azure Database for PostgreSQL サーバーのページで、[設定] の下の [サーバー パラメーター] を選択します。

  2. プロジェクト パラメーター ページで、次の設定を完了し、保存を選択します。

    • binlog_row_imageの場合は、[完全] を選択します

    • binlog_expire_logs_secondsの場合は、バイナリ ログ ファイルが消去されるまでにサービスが待機する秒数を設定します。 (必要な場合) の値を、環境内のプレフィックスと一致するように変更します (例:86400 )。

    サーバー パラメーターの下のレプリケーションの binlog 設定のスクリーンショット。

MySQL DB (CDC) をソースとして追加する

イベントストリームにまだソースを追加していない場合は、[外部ソースの使用] タイルを選択します。

[外部ソースの使用] タイルの選択を示すスクリーンショット。

既に公開されているイベントストリームにソースを追加する場合は、編集モードに切り替え、リボンの [ソースの追加] を選択してから、[外部ソース] を選択します。

[ソースの追加] の [外部ソース] メニューの選択を示すスクリーンショット。

[データ ソースの選択] ページにおいて、[MySQL DB (CDC)] タイルで [接続] を探して選択します。

イベントの取得ウィザードでのソースの種類としての MySQL DB (CDC) の選択を示すスクリーンショット。

MySQL DB (CDC) の構成と接続

  1. [接続] 画面の [接続] で、[新しい接続] を選択してクラウド接続を作成します。

    [接続] ページを示すスクリーンショット。

  2. MySQL DB の次の 接続設定接続資格情報 を入力し、それから 接続を選択します。

    • サーバー: MySQL データベースのサーバー アドレス (例: my-mysql-server.mysql.database.azure.com)。

    • データベース: データベース名 (my_database など)。

    • 接続名: 自動生成されるか、この接続の新しい名前を入力できます。

    • UsernamePassword: MySQL データベースの資格情報を入力します。 サーバー管理者アカウントまたは必要な権限を付与して作成されたユーザー アカウントを入力してください。

      Azure MySQL DB (CDC) の接続設定のスクリーンショット。

  3. MySQL DB CDC データ ソースを構成するには、次の情報を入力し、[次へ]選択します。

    • テーブル: テーブル名の一覧をコンマで区切って入力します。 各テーブル名は、my_database.users<database name>.<table name>形式に従う必要があります。

    • サーバー ID: MySQL クラスター内のサーバーとレプリケーション クライアントごとに一意の値を入力します。 既定値は 1000 です。

    • ポート: 既定値は変更しません。

      Azure MySQL DB (CDC) 接続の [テーブル]、[サーバー ID]、[ポート] の選択のスクリーンショット。

    ソース名を編集するには、右側の [ストリームの詳細] セクションで、[ソース名]鉛筆ボタンを選択します。

    Note

    リーダーごとに異なるサーバー ID を設定します。 binlog を読み取るすべての MySQL データベース クライアントには、サーバー ID と呼ばれる一意の ID が必要です。 MySQL サーバーはこの ID を使用して、ネットワーク接続と binlog の位置をメインします。 同じサーバー ID を共有するジョブが異なると、間違った binlog 位置から読み取る可能性があります。 そのため、リーダーごとに異なるサーバー ID を設定することをお勧めします。

  4. 確認と接続 ページで、MySQL DB CDC ソースの概要を確認した後、[ の追加] を選択して構成を完了します。

    [追加] ボタンが選択された [確認と接続] ページのスクリーンショット。

Note

1 つのイベントストリームでのソースと宛先の合計数は 11 個までです。

更新されたイベントストリームを表示する

  1. MySQL DB (CDC) ソースが、編集モードのでイベントストリームに追加されていることがわかります。

    [発行] ボタンが強調表示されている編集モードで追加された Azure MySQL DB CDC ソースのスクリーンショット。

  2. [発行] を選択して変更を発行し、イベントストリームへの MySQL DB CDC データのストリーミングを開始します。

    追加された Azure MySQL DB CDC ソースのライブ モードのスクリーンショット。

その他のコネクタ。