MySQL から Hologres へデータを同期する場合、データ同期タスクに求められるネットワーク環境とアカウント権限を準備するため、データソースのネットワーク、ホワイトリスト、および権限を設定する必要があります。
前提条件
データソースを設定する前に、以下の準備が完了していることを確認してください。
- データソースの準備:ソースとなる MySQL データソースと、送信先となる Hologres データソースを購入済みであること。
- リソースの計画と準備:Data Integration 専用リソースグループを購入し、設定済みであること。詳細については、「リソースの計画と設定」をご参照ください。
- ネットワーク環境の評価と計画:データ統合の前に、ビジネス要件に基づき、データソースと Data Integration 専用リソースグループ間のネットワーク接続を確立する必要があります。ネットワーク接続後、本記事を参照して vSwitch やホワイトリストなどのアクセス設定を行ってください。
- データソースと Data Integration 専用リソースグループが同一リージョン内の同じ VPC にある場合、デフォルトで接続されています。
- データソースと Data Integration 専用リソースグループが異なるネットワーク環境にある場合は、VPN ゲートウェイなどの方法で接続する必要があります。
- データベースのバージョンが MySQL
5.xまたは8.xであることを確認します。以下のステートメントを実行してバージョンを確認できます。select version();説明 DataWorks での MySQL からのリアルタイムデータ同期は、MySQL へのリアルタイムサブスクリプションを利用します。この機能は、MySQL5.xまたは8.xを実行する ApsaraDB RDS for MySQL インスタンスのみをサポートします。PolarDB-X 1.0 はサポートされていません。現在のデータベースが MySQL5.xまたは8.xを実行する ApsaraDB RDS for MySQL インスタンスでない場合は、サポートされているバージョンに切り替えてください。そうしない場合、データ統合タスクは失敗します。
背景情報
ソースデータソースから送信先データソースへデータを同期する場合、データソースと 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 へのリアルタイムサブスクリプションを利用します。この機能は、MySQL
5.xまたは8.xを実行する ApsaraDB RDS for MySQL インスタンスのみをサポートします。PolarDB-X 1.0 インスタンスを MySQL データソースとして設定しないでください。代わりに、直接 PolarDB-X 1.0 データソースとして設定できます。詳細については、「PolarDB-X 1.0 データソースの設定」をご参照ください。 - XA ROLLBACK はサポートされていません。XA PREPARE によって準備されたトランザクション内のデータについては、リアルタイム同期によってデータが送信先に書き込まれます。XA ROLLBACK が実行された場合、リアルタイム同期は準備されたデータをロールバックしません。XA ROLLBACK シナリオを処理するには、XA ROLLBACK の影響を受けるテーブルをリアルタイム同期タスクから手動で削除し、テーブルを再度追加してから、完全なデータ初期化と増分データ同期を実行する必要があります。
- 別の Alibaba Cloud アカウントに属する MySQL インスタンスをデータソースとして追加する場合、このデータソースを使用する同期タスクは Data Integration 専用リソースグループ でのみ実行できます。このデータソースへのアクセスに Data Integration 用共有リソースグループを使用することはできません。
操作手順
- ホワイトリストの設定
ご利用の Data Integration 専用リソースグループが配置されている VPC の CIDR ブロックを MySQL のホワイトリストに追加します。
- Data Integration 専用リソースグループの VPC 情報を表示して記録します。
- DataWorks コンソールにログインします。
- 左側のナビゲーションウィンドウで、[リソースグループ] をクリックします。
- [専用リソースグループ] タブで、対象のリソースグループを見つけ、[操作] 列の [情報を表示] をクリックします。
- 表示されたダイアログボックスで、[Elastic IP アドレス (EIP)] と [CIDR ブロック] をコピーしてデータベースのホワイトリストに追加します。
- [専用リソースグループ] タブで、対象のリソースグループを見つけ、[操作] 列の [ネットワーク設定] をクリックします。
- [VPC バインディング] タブで、[vSwitch の CIDR ブロック] を表示し、データベースのホワイトリストに追加します。
- 記録した Data Integration 専用リソースグループの Elastic IP アドレス (EIP) と CIDR ブロックを MySQL クラスターのホワイトリストに追加します。
- Data Integration 専用リソースグループの VPC 情報を表示して記録します。
- アカウントの作成と権限の付与
データベースのログインアカウントを準備する必要があります。このアカウントには、
SELECT、REPLICATION SLAVE、REPLICATION CLIENT権限が必要です。- アカウントの作成
詳細については、「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 に追加し、データ同期ソリューションを作成する際にそれらを関連付けることができます。
データソースの追加方法の詳細については、「データソースの追加」をご参照ください。