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

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

最終更新日:Jan 11, 2025

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

前提条件

データソースを設定する前に、以下の操作が実行されていることを確認してください。
  • データソースを準備する: ソース MySQL データソースとデスティネーション Hologres データソースが作成されています。
  • リソースを計画および準備する: Data Integration 専用のリソースグループが購入および設定されています。詳細については、「リソースの計画と設定」をご参照ください。
  • ネットワーク環境を評価および計画する: データ統合を実行する前に、ビジネス要件に基づいてネットワーク接続方法を選択し、その方法を使用してデータソースを Data Integration 専用のリソースグループに接続する必要があります。データソースと Data Integration 専用のリソースグループが接続された後、このトピックに記載されている操作を参照して、vSwitch やホワイトリストなどのアクセス設定を行うことができます。
    • データソースと Data Integration 専用のリソースグループが同じリージョンおよび仮想プライベートクラウド (VPC) 内にある場合、それらは自動的に接続されます。
    • データソースと Data Integration 専用のリソースグループが異なるネットワーク環境にある場合、VPN ゲートウェイなどの方法を使用してデータソースとリソースグループを接続する必要があります。

背景情報

ソースからデスティネーションにデータを同期する前に、データソースと Data Integration 専用のリソースグループが接続されていることを確認してください。さらに、アカウントを作成し、そのアカウントにデータソースへのアクセスを承認する必要があります。
  • データソースのホワイトリストを設定する
    データソースと Data Integration 専用のリソースグループが同じ VPC 内にある場合、Data Integration 専用のリソースグループの CIDR ブロックをデータソースのホワイトリストに追加する必要があります。これにより、Data Integration 専用のリソースグループを使用してデータソースにアクセスできるようになります。VPC connection
  • アカウントを作成し、アカウントに権限を付与する

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

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

    ソースデータソースが 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 データソースを追加し、そのデータソースのリアルタイム同期ノードを設定できます。
  • リアルタイム同期機能を使用して、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 のソース、宛先、および専用リソースグループが接続されます。その後、Data Integration の専用リソースグループを使用してデータソースにアクセスできます。DataWorks にソースと宛先を追加し、ソリューションの作成時にデータ同期ソリューションに関連付けることができます。

データソースを追加する方法の詳細については、「データソースの追加」をご参照ください。