単一の MySQL テーブルからリアルタイムでデータを同期するには、データ同期ノードを実行する前に、データソースのネットワークとホワイトリストを設定する必要があります。このトピックでは、データ同期のためのネットワーク環境とアカウント権限の準備方法について説明します。
前提条件
データソースを設定する前に、以下の準備が完了していることを確認してください:
- データソース:ソース MySQL データベースと送信先データソースがプロビジョニングされていること。送信先データソースは、MaxCompute、Hologres、Elasticsearch、DataHub、または Kafka が利用可能です。
- Data Integration 専用リソースグループが必要です。必要に応じて購入および設定できます。詳細については、「リソースの計画と設定」をご参照ください。
- ネットワーク環境の評価と計画:Data Integration を実行する前に、データソースと Data Integration 専用リソースグループ間のネットワーク接続を確立する必要があります。このトピックでは、vSwitch やホワイトリストなどの特定のアクセス設定の構成方法について説明します。
- データソースと Data Integration 専用リソースグループが同じリージョンかつ同じ VPC にある場合、デフォルトで接続されています。
- データソースと Data Integration 専用リソースグループが異なるネットワーク環境にある場合は、VPN ゲートウェイなどの方法を使用して接続する必要があります。
背景情報
データ同期を成功させるには、Data Integration 専用リソースグループがデータソースへのネットワーク接続を持ち、権限関連のアクセス制限が存在しないようにする必要があります。
- 例えば、同じ VPC 環境を使用する場合、Data Integration 専用リソースグループが存在する VPC の CIDR ブロックをホワイトリストに追加する必要があります。これにより、リソースグループがデータソースにアクセスできるようになります。

-
データソースにアクセスするための専用アカウントを作成する必要があります。このアカウントは、統合中のデータ抽出および書き込み操作の実行に使用されます。
-
ソースデータソースが MySQL の場合、バイナリログを有効にする必要があります。バイナリログは、データベーステーブル構造へのすべての変更 (CREATE や ALTER 操作など) と、データの変更 (INSERT、UPDATE、DELETE 操作など) を記録します。バイナリログを使用すると、データベースの変更履歴の表示、増分バックアップと回復の実行、およびプライマリ/セカンダリデータベースのレプリケーション設定が可能になります。
バイナリログには以下のフォーマットがあります:- Statement:ステートメントベースのレプリケーション。バイナリログは、データを変更する各 SQL ステートメントを記録します。
- Row:行ベースのレプリケーション。バイナリログは SQL ステートメントのコンテキストを保存せず、変更された行のみを記録します。
- Mixed:混合モードのレプリケーション。このモードは、Statement と Row フォーマットの組み合わせです。ほとんどの場合、ステートメントは Statement フォーマットで記録されます。操作が Statement フォーマットでレプリケートできない場合は、Row フォーマットが使用されます。MySQL は、各 SQL ステートメントにどのフォーマットを使用するかを自動的に決定します。
制限事項
- DataWorks での MySQL データのリアルタイム同期は、MySQL のリアルタイムサブスクリプションに基づいています。この機能は、ApsaraDB RDS for MySQL でホストされている MySQL
5.xまたは8.xのデータソースのみをサポートします。PolarDB-X インスタンスを MySQL データソースとして設定しないでください。PolarDB-X インスタンスからデータを同期するには、「PolarDB-X データソースの設定」をご参照いただき、直接 PolarDB-X データソースとして設定してください。 - XA ROLLBACK はサポートされていません。XA PREPARE 状態のトランザクションデータについては、リアルタイム同期によってデータが送信先に書き込まれます。XA ROLLBACK が実行された場合、ロールバック操作は同期されません。XA ROLLBACK のシナリオを解決するには、影響を受けるテーブルをリアルタイム同期ノードから手動で削除し、再度追加してから、新しい完全データ初期化と増分同期を実行する必要があります。
- 別の Alibaba Cloud アカウントの MySQL データソースを使用するには、Data Integration 専用リソースグループでデータ同期ノードを実行する必要があります。Data Integration 用共有リソースグループは、このデータソース内のデータにアクセスできません。
操作手順
- ホワイトリストの設定
Data Integration 専用リソースグループの VPC の CIDR ブロックを、ご利用の MySQL データベースのホワイトリストに追加します。
- 専用リソースグループのネットワーク情報を表示して記録します。
- DataWorks コンソールにログインします。
- 左側のナビゲーションウィンドウで、[リソースグループ] をクリックします。
- Exclusive Resource Group タブで、対象のデータ統合リソースグループの [情報を表示] をクリックします。
- [EIP] と Network segment をコピーして、ご利用のデータベースのホワイトリストに追加します。
- Exclusive Resource Group タブで、対象のデータ統合リソースグループの [ネットワーク設定] をクリックします。
- [VPC バインディング] タブで、ネットワークセグメントの切り替え を表示し、データベースのホワイトリストに追加します。
- 記録した Elastic IP (EIP) アドレスと Data Integration 専用リソースグループの CIDR ブロックを、ご利用の MySQL クラスターのホワイトリストに追加します。
- 専用リソースグループのネットワーク情報を表示して記録します。
- アカウントの作成と権限の付与
データ同期用のデータベースログインアカウントを作成します。このアカウントには、
SELECT, REPLICATION SLAVE, REPLICATION CLIENT権限が必要です。- アカウントの作成
詳細については、「ApsaraDB RDS for MySQL のアカウント作成」をご参照ください。
- 権限の付与
次のコマンドを実行して、アカウントに必要な権限を付与できます。または、アカウントに
SUPER権限を付与することもできます。コマンドを実行する際、'sync_account'を作成したアカウントに置き換えてください。-- 同期アカウントを作成し、任意のホストからのログインを許可するパスワードを設定します。パーセント記号 (%) は任意のホストを指定します。 CREATE USER 'sync_account'@'%' IDENTIFIED BY 'password'; -- 同期アカウントに SELECT、REPLICATION SLAVE、REPLICATION CLIENT 権限を付与します。 GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync_account'@'%';*.*構文は、すべてデータベースのすべてのテーブルに対する権限をアカウントに付与します。特定のデータベースの特定のテーブルに権限を付与することもできます。例えば、test データベースの user テーブルに権限を付与するには、次のステートメントを実行します:GRANT SELECT, REPLICATION CLIENT ON test.user TO 'sync_account'@'%';。説明REPLICATION SLAVE権限はグローバル権限であり、特定のデータベースの特定のテーブルに付与することはできません。
- アカウントの作成
- MySQL バイナリログの有効化
バイナリログが有効になっているかを確認し、そのフォーマットを照会します:
- 次のコマンドを実行して、バイナリログが有効になっているかを確認します。
show variables like "log_bin";コマンドが ON を返した場合、バイナリログは有効です。
- セカンダリデータベースを使用してデータを同期する場合、次のコマンドを実行して、そのバイナリログが有効になっているかを確認します。
show variables like "log_slave_updates";コマンドが ON を返した場合、セカンダリデータベースのバイナリログは有効です。
次のコマンドを実行して、バイナリログのフォーマットを確認します。show variables like "binlog_format";返された値はフォーマットを示します:- ROW が返された場合、バイナリログのフォーマットは ROW です。
- STATEMENT が返された場合、バイナリログのフォーマットは STATEMENT です。
- MIXED が返された場合、バイナリログのフォーマットは MIXED です。
- 次のコマンドを実行して、バイナリログが有効になっているかを確認します。
次のステップ
設定が完了すると、ソースと送信先のデータソースとリソースグループ間のネットワーク接続が確立され、アクセス制限がなくなります。その後、ソースと送信先のデータソースを DataWorks のデータソースリストに追加できます。これにより、データ同期ノードを作成する際の関連付けが簡素化されます。データソースの追加方法の詳細については、「データソースの追加」をご参照ください。