すべてのプロダクト
Search
ドキュメントセンター

:MySQL からのデータ同期のためのデータソースの設定

最終更新日:Apr 10, 2025

MySQL から単一テーブルのデータをリアルタイムで同期する前に、このトピックに記載されている操作を参照してデータソースを設定できます。データソースの設定には、ネットワーク環境、ホワイトリスト、および権限が含まれます。ソース MySQL データソースとデスティネーションデータソースを設定する必要があります。

前提条件

データソースを設定する前に、次の操作が実行されていることを確認してください。

  • データソースを準備する: MySQL データベースとデスティネーションデータソースが準備されています。デスティネーションは、MaxCompute、Hologres、Elasticsearch、DataHub、または Kafka にすることができます。

  • リソースの計画と準備: Data Integration 専用のリソースグループが購入および設定されています。詳細については、「リソースの計画と設定」をご参照ください。

  • ネットワーク環境の評価と計画: データ統合を実行する前に、ビジネス要件に基づいてネットワーク接続方法を選択し、その方法を使用してデータソースを Data Integration 専用のリソースグループに接続する必要があります。データソースと Data Integration 専用のリソースグループが接続された後、このトピックに記載されている操作を参照して、vSwitch やホワイトリストなどのアクセス設定を行うことができます。

    • データソースと Data Integration 専用のリソースグループが同じリージョンと仮想プライベートクラウド (VPC) にある場合、それらは自動的に接続されます。

    • データソースと Data Integration 専用のリソースグループが異なるネットワーク環境にある場合は、VPN ゲートウェイなどの方法を使用して、データソースとリソースグループを接続する必要があります。

背景情報

ソースからデスティネーションにデータを同期する前に、データソースと Data Integration 専用のリソースグループが接続されていることを確認してください。さらに、アカウントを作成し、そのアカウントにデータソースへのアクセスを承認する必要があります。

  • データソースと Data Integration 専用のリソースグループが同じ VPC にある場合は、Data Integration 専用のリソースグループの CIDR ブロックをデータソースのホワイトリストに追加する必要があります。これにより、Data Integration 専用のリソースグループがデータソースにアクセスできるようになります。Synchronize data in a single table from MySQL in real time

  • アカウントを作成し、アカウントに権限を付与する

    データ同期プロセス中に、データソースへのアクセス、ソースからのデータの読み取り、およびデスティネーションへのデータの書き込みに使用できるアカウントを作成する必要があります。

  • バイナリロギング機能を有効にする

    ソースデータソースが MySQL データベースの場合は、バイナリロギング機能を有効にする必要があります。バイナリログは、すべてのテーブルスキーマへの変更とテーブルデータの変更を記録します。CREATE や ALTER などのステートメントを実行して、テーブルスキーマに対する操作を実行できます。INSERT、UPDATE、DELETE などのステートメントを実行して、テーブルデータに対する操作を実行できます。バイナリログを使用して、データベースの変更履歴の表示、増分データのバックアップとデータベース内のデータの復元、プライマリデータベースからセカンダリデータベースへのデータのレプリケーションを行うことができます。

    バイナリログの形式:

    • ステートメント: SQL ステートメントベースのレプリケーション。この形式のバイナリログは、データエントリの変更に実行された SQL ステートメントを記録します。

    • 行: 行ベースのレプリケーション。この形式のバイナリログは、行のデータエントリに関する変更の詳細のみを記録します。

    • 混合: 混合モードでのレプリケーション。このモードは、ステートメント形式と行形式を組み合わせたものです。ほとんどの場合、ステートメント形式のバイナリログは、関数など、データエントリの変更に実行された SQL ステートメントを記録するために使用されます。この形式のバイナリログを使用してプライマリデータベースからセカンダリデータベースへのデータレプリケーションを実装できない場合は、行形式に切り替えます。MySQL は、実行される各 SQL ステートメントに基づいて、使用する形式を決定します。

制限事項

  • MySQL からのデータのリアルタイム同期は、MySQL バイナリログへのリアルタイムサブスクリプションに基づいて実行されます。MySQL からのリアルタイムデータ同期は、MySQL 5.X または 8.X を実行する ApsaraDB RDS for MySQL データソースのみをサポートします。MySQL からのリアルタイムデータ同期は、MySQL を実行する PolarDB-X 1.0 データソースをサポートしていません。MySQL を実行する PolarDB-X 1.0 データソースからデータをリアルタイムで同期する場合は、「DRDS (PolarDB-X 1.0) データソース」を参照して、PolarDB-X 1.0 データソースを追加し、そのデータソースのリアルタイム同期ノードを設定できます。

  • リアルタイム同期機能を使用して、XA ROLLBACK ステートメントが実行されたデータを同期することはできません。XA PREPARE ステートメントが実行されたトランザクションデータについては、リアルタイム同期機能を使用してデータをデスティネーションに同期できます。後で XA ROLLBACK ステートメントがデータに対して実行された場合、データへのロールバックの変更はデスティネーションに同期されません。同期するテーブルに XA ROLLBACK ステートメントが実行されたテーブルが含まれている場合は、XA ROLLBACK ステートメントが実行されたテーブルを削除し、削除したテーブルを再度追加して、ソースの完全なデータを初期化し、増分データを同期する必要があります。

  • 現在のワークスペースとは異なる Alibaba Cloud アカウントに属する ApsaraDB RDS for MySQL インスタンスを MySQL データソースとして DataWorks に追加し、MySQL データソースのデータ同期ノードを設定する場合、Data Integration 専用のリソースグループ のみを使用してノードを実行できます。共有リソースグループ for Data Integration を使用してノードを実行する場合、リソースグループは MySQL データソースのデータにアクセスできません。

手順

  1. MySQL データベースのホワイトリストを設定します。

    専用リソースグループが存在する VPC の CIDR ブロックを MySQL データベースのホワイトリストに追加します。

    1. Data Integration 専用のリソースグループの Elastic IP アドレス (EIP) と CIDR ブロックを表示して記録します。

      1. DataWorks コンソール にログインします。

      2. 左側のナビゲーションペインで、[リソースグループ] をクリックします。

      3. [専用リソースグループ] タブで、Data Integration 専用のリソースグループを見つけ、[アクション] 列の [情報を表示] をクリックします。

      4. [専用リソースグループ] ダイアログボックスで、[eipaddress] パラメーターと [CIDR ブロック] パラメーターの値を表示して記録します。

      5. [専用リソースグループ] タブで、Data Integration 専用のリソースグループを見つけ、[アクション] 列の [ネットワーク設定] をクリックします。

      6. 表示されるページの [VPC バインディング] タブで、Data Integration 専用のリソースグループが関連付けられている [vswitch の CIDR ブロック] を表示して記録します。

    2. 専用リソースグループの EIP と CIDR ブロックを MySQL データベースのホワイトリストに追加します。

  2. アカウントを作成し、アカウントに権限を付与します。

    MySQL データベースにログインするためのアカウントを作成する必要があります。SELECT、REPLICATION SLAVE、および REPLICATION CLIENT 権限をアカウントに付与する必要があります。

    1. アカウントを作成します。

      詳細については、「MySQL データベースにアクセスするためのアカウントを作成する」をご参照ください。

    2. アカウントに権限を付与します。

      次のコマンドを実行して、アカウントに権限を付与できます。または、SUPER 権限をアカウントに付与することもできます。具体的なステートメントを実行するときは、データ同期用のアカウント を作成したアカウントに置き換えてください。

      -- CREATE USER 'データ同期用のアカウント'@'%' IDENTIFIED BY 'パスワード'; // データの同期に使用するアカウントを作成し、パスワードを設定して、ホストからデータベースにアクセスできるようにします。% はホストを示します。
      GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'データ同期用のアカウント'@'%'; // SELECT、REPLICATION SLAVE、および REPLICATION CLIENT 権限をアカウントに付与します。

      *.* は、同期アカウントにすべてのデータベースのすべてのテーブルに対する上記の権限が付与されていることを示します。また、指定されたデータベースの指定されたテーブルに対する上記の権限を同期アカウントに付与することもできます。たとえば、user テーブルの test データベースに対する上記の権限をアカウントに付与するには、次のステートメントを実行します。GRANT SELECT, REPLICATION CLIENT ON test.user TO 'データ同期用のアカウント'@'%';

      説明

      REPLICATION SLAVE 権限はグローバル権限です。指定されたデータベースの指定されたテーブルに対するこの権限を同期アカウントに付与することはできません。

  3. MySQL データベースのバイナリロギング機能を有効にします。

    バイナリロギング機能が有効になっているかどうかを確認し、バイナリログの形式をクエリするには、次の手順を実行します。

    • 次のステートメントを実行して、バイナリロギング機能が有効になっているかどうかを確認します。

      show variables like "log_bin";

      返された結果に ON が表示されている場合、バイナリロギング機能は有効になっています。

    • セカンダリデータベースを使用してデータを同期する場合は、次のステートメントを実行して、バイナリロギング機能が有効になっているかどうかを確認します。

      show variables like "log_slave_updates";

      返された結果に ON が表示されている場合、セカンダリデータベースのバイナリロギング機能は有効になっています。

    返された結果が上記の結果と異なる場合は、MySQL ドキュメント に記載されている手順に従って、バイナリロギング機能を有効にします。

    次のステートメントを実行して、バイナリログの形式を表示します。

    show variables like "binlog_format";

    返された結果:

    • ROW: バイナリログの形式は行です。

    • STATEMENT: バイナリログの形式はステートメントです。

    • MIXED: バイナリログの形式は混合です。

次のステップ

データソースが設定され、ソースデータソース、デスティネーションデータソース、および Data Integration 専用のリソースグループが接続されると、承認されたアカウントを使用してデータソースにアクセスできます。ソースデータソースとデスティネーションデータソースを DataWorks に追加し、ソリューションを作成するときにデータ同期ソリューションに関連付けることができます。データソースを追加する方法の詳細については、「データソースの追加」をご参照ください。