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

AnalyticDB:ゼロ ETL を使用したデータ同期

最終更新日:Mar 29, 2026

ETL パイプラインを構築・維持して PolarDB for MySQL から AnalyticDB for MySQL へデータを移行するには、運用上のオーバーヘッドが発生し、分析に遅れが生じます。ゼロ ETL は、PolarDB for MySQL から AnalyticDB for MySQL へデータを継続的にレプリケーションすることで、この問題を解消します。パイプラインコード、サードパーティツール、追加コストは一切不要です。

基本概念

用語定義
ゼロ ETL タスクPolarDB for MySQL のソースクラスターから AnalyticDB for MySQL の送信先クラスターへ、DML および DDL の変更を継続的にレプリケーションするマネージド同期ジョブです。
ソースクラスタートランザクションデータの発生元である PolarDB for MySQL クラスターです。
送信先クラスターレプリケーションされたデータが分析に利用できる AnalyticDB for MySQL クラスターです。
ACUAnalyticDB コンピュートユニット。クラスターが同時に実行できるゼロ ETL タスクの数を計算するために使用されるリソースユニットです。

サポートされるソース

ゼロ ETL は、以下のデータ同期パスをサポートしています:

  • PolarDB for MySQL から AnalyticDB for MySQL (本ガイド)

  • ApsaraDB RDS for MySQL から AnalyticDB for MySQL。詳細については、「ゼロ ETL を使用したデータ同期」をご参照ください。

メリット

  • パイプライン設定が不要: ソースと送信先のクラスターを選択するだけで、同期が自動的に開始されます。ETL コードやサードパーティツールは必要ありません。

  • 追加コストが不要: ゼロ ETL タスクは無料です。AnalyticDB for MySQL で同期されたデータを分析しても、追加料金は発生しません。

  • 複数ソースの集約: 複数の PolarDB for MySQL クラスターから単一の AnalyticDB for MySQL クラスターにデータを同期し、統合分析を実現します。

サポートされるリージョン

ゼロ ETL は、中国 (北京)、中国 (杭州)、中国 (上海)、中国 (深セン)、中国 (張家口)、中国 (青島)、中国 (広州)、中国 (香港)、シンガポール、米国 (シリコンバレー)、米国 (バージニア) の各リージョンで利用できます。

タスクの制限

AnalyticDB for MySQL クラスターあたりのゼロ ETL タスクの最大数は、クラスターの予約済みリソースの合計によって決まります:

予約済み ACU の合計ゼロ ETL タスクの最大数
24 ACU 未満1
24 ACU 以上3 + 3 × [(合計 ACU − 24) ÷ 50] (小数点以下切り捨て)

例: 48 ACU のクラスターの場合、3 + 3 × [(48 − 24) ÷ 50] = 3 + 3 × 0 = 3 タスクとなります。

ACU の計算方法は、クラスターのエディションによって異なります:
Data Lakehouse Edition:ACU = 予約済みコンピューティングリソース ACU + 予約済みストレージリソース ACU。
Data Warehouse Edition (エラスティックモード):ACU = コンピューティングリソースコア数 + エラスティック I/O リソースコア数。
Data Warehouse Edition (予約モード):ACU = コンピューティングリソースコア数。

クラスターがタスク数の上限に達した場合は、AnalyticDB for MySQL コンソールで未使用のゼロ ETL タスクを削除するか、Data Transmission Service (DTS) コンソールで直接追加のタスクを作成してください。

前提条件

開始する前に、以下が準備できていることを確認してください:

権限の設定

AnalyticDB for MySQL のサービスリンクロールの作成

  1. Resource Access Management (RAM) コンソールにログインします。左側のナビゲーションウィンドウで、[ID] > [ロール] を選択します。

  2. AliyunServiceRoleForAnalyticDBForMySQL という名前のサービスリンクロールが存在するかどうかを確認します。存在しない場合は、作成します:

    1. [ロールの作成] をクリックします。

    2. [ロールタイプの選択] ステップで、[Alibaba Cloud サービス] を選択し、[次へ] をクリックします。

    3. 「ロールの設定」ステップで、[ロールの種類][サービス関連ロール] に設定し、[サービスの選択] ドロップダウンリストから AnalyticDB for MySQL を選択します。

    4. [OK] をクリックし、ロールがリストに表示されることを確認します。

RAM ユーザーへのゼロ ETL タスク管理権限の付与

RAM ユーザーがゼロ ETL タスクを作成および管理するには、2 種類の権限が必要です。

ステップ 1:AnalyticDB for MySQL のフルアクセス権限ポリシーをアタッチする

RAM ユーザーに AliyunADBFullAccess ポリシーをアタッチします。手順については、「RAM ユーザーへの権限付与」をご参照ください。

ステップ 2:ゼロ ETL 用のカスタムポリシーを作成してアタッチする

カスタムポリシーを作成して、ソースおよび送信先クラスターに対する DTS 権限を付与し、それを RAM ユーザーにアタッチします。カスタムポリシーの作成手順については、「カスタムポリシーの作成」をご参照ください。

以下のいずれかのポリシーテンプレートを使用します:

すべての PolarDB for MySQL インスタンスと AnalyticDB for MySQL クラスターに対する権限の付与

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dts:*",
            "Resource": [
                "acs:adb:*:*:*",
                "acs:polardb:*:*:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "dts:DescribeRegions",
                "dts:DescribeConfigRelations",
                "dts:DescribeSrcLinkConfig",
                "dts:DescribeDestLinkConfig",
                "dts:DescribeLinkConfig"
            ],
            "Resource": [
                "acs:dts:*:*:*"
            ]
        }
    ]
}

特定の PolarDB for MySQL インスタンスと AnalyticDB for MySQL クラスターに対する権限の付与

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dts:*",
            "Resource": [
                "acs:adb:*:*:dbcluster/am-2zeod8ax4b9a****",
                "acs:polardb:*:*:dbcluster/pc-bp13jqn4a26b0****"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "dts:DescribeRegions",
                "dts:DescribeConfigRelations",
                "dts:DescribeSrcLinkConfig",
                "dts:DescribeDestLinkConfig",
                "dts:DescribeLinkConfig"
            ],
            "Resource": "acs:dts:*:*:*"
        }
    ]
}

am-2zeod8ax4b9a**` をご利用の AnalyticDB for MySQL クラスター ID に、`pc-bp13jqn4a26b0** をご利用の PolarDB for MySQL クラスター ID に置き換えてください。

ゼロ ETL タスクの作成

  1. AnalyticDB for MySQL コンソールにログインします。左上の隅で、ご利用のリージョンを選択します。左側のナビゲーションウィンドウで、[クラスター] をクリックします。[クラスター] ページで、ご利用のクラスターのエディションタブをクリックし、クラスターを見つけてその ID をクリックします。

  2. ゼロ ETL の設定ページに移動します:

    • Enterprise Edition、Basic Edition、または Data Lakehouse Edition: 左側のナビゲーションウィンドウで、[データ取り込み] > [データベースデータ同期] を選択します。

    • Data Warehouse エディション: 左側のナビゲーションウィンドウで、[Data Transmission Service][Zero-ETL] を選択します。

  3. ゼロETLタスクの作成」をクリックします。「ゼロETLタスクの作成」ページで、ソースクラスターパラメーターを設定します:送信先クラスターパラメーターを設定します:

    [SSL 暗号化] を選択する場合は、まず PolarDB for MySQL クラスターで SSL 暗号化を有効にする必要があります。詳細については、「SSL 暗号化の設定」をご参照ください。
    パラメーター説明
    タスク名ゼロ ETL タスクの名前です。
    データベースタイプソースデータベースエンジンです。PolarDB for MySQL を選択します。
    アクセス方法自動的に Alibaba Cloud インスタンス に設定されます。
    インスタンスリージョンPolarDB for MySQL クラスターが配置されているリージョンです。
    PolarDB クラスター IDPolarDB for MySQL クラスターの ID です。
    データベースアカウントPolarDB for MySQL クラスター用のデータベースアカウントです。
    データベースパスワードデータベースアカウントのパスワードです。
    暗号化接続時の暗号化方式です。非暗号化 または SSL 暗号化 を選択します。
    パラメーター説明
    データベースタイプ自動的に [AnalyticDB for MySQL 3.0] に設定されます。
    アクセス方法自動的に [Alibaba Cloud インスタンス] に設定されます。
    インスタンスリージョンAnalyticDB for MySQL クラスターが存在するリージョンです。
    インスタンス IDAnalyticDB for MySQL クラスターの ID です。
    データベースアカウントAnalyticDB for MySQL クラスターのデータベースアカウントです。
    データベースパスワードデータベースアカウントのパスワードです。
  4. [接続をテストして続行] をクリックします。同期設定を構成します:

    パラメーター説明
    同期する DDL および DML 操作同期する DML 操作 (INSERT、UPDATE、DELETE) と DDL 操作 (CREATE、ALTER、DROP、TRUNCATE) です。デフォルトではすべての操作が選択されています。
    ソースオブジェクトと選択されたオブジェクト同期するデータベースとテーブルです。
    詳細設定 (オプション)ソースおよび送信先クラスターでの接続障害やその他のエラーに対する再試行間隔です。
  5. [次へ:データベースとテーブルフィールドの設定] をクリックします。テーブルマッピングのパラメーターを設定します:

    パラメーター説明
    データベース名選択されたデータベースの名前です。
    テーブル名選択されたテーブルの名前です。
    プライマリキー列テーブルのプライマリキー列です。
    分散キーテーブルの分散キー列です。
    タイプテーブルタイプ:パーティションテーブルまたはレプリケートテーブル。
    定義ステータステーブルの構成ステータスです。テーブルフィールドを設定すると、[未定義] から [定義済み] に変わります。
  6. [次へ:タスク設定の保存と事前チェック] をクリックします。

  7. 事前チェックが正常に完了したら、[開始] をクリックします。

    事前チェックに失敗した場合は、エラー詳細を確認し、PolarDB for MySQL クラスターでバイナリロギングが有効になっていること、両方のクラスターにデータベースアカウントが存在すること、RAM ユーザーが必要な権限を持っていることなど、すべての前提条件が満たされていることを確認してください。

ゼロ ETL タスクは [ゼロ ETL 設定] ページに表示され、タスクの [名前][ソース/送信先][ステータス] を確認できます。

ゼロ ETL タスクのモニタリングとアラートルールの設定

ゼロ ETL タスクを開始した後、CloudMonitor でモニタリングとアラートを設定します。

モニタリングデータの表示:

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

  2. 左側のナビゲーションウィンドウで、[クラウドサービスモニタリング] > [クラウドサービスモニタリング] を選択します。

  3. [AnalyticDB for MySQL] カードにカーソルを合わせ、[AnalyticDB for mysql 3.0 - ZeroETL Latency] をクリックします。

  4. クラスター ID をクリックして、ゼロ ETL タスクのモニタリング詳細を表示します。

アラートルールの作成:

  1. 左側のナビゲーションウィンドウで、[アラート] > [アラートルール] を選択します。

  2. [アラートルールの作成] をクリックし、アラートパラメーターを設定します。[製品][AnalyticDB For Mysql 3.0 - ZeroETL Latency] に設定します。詳細については、「アラートルールを作成する」をご参照ください。

サブスクリプションポリシーの作成:

  1. 左側のナビゲーションウィンドウで、[イベントセンター] > [イベントサブスクリプション] を選択します。

  2. [サブスクリプションポリシーの作成] をクリックし、サブスクリプションパラメーターを設定します。詳細については、「イベントサブスクリプションポリシーの管理(推奨)」をご参照ください。

    • [プロダクト]: [AnalyticDB for MySQL V3.0] を選択します。

    • [イベントタイプ]: [異常] または [回復] を選択します。

    • [イベント名]: [zero_etl_job_abnormal] または [zero_etl_job_restore] を選択します。

次のステップ

ApsaraDB RDS for MySQL から AnalyticDB for MySQL へデータを同期するには、「ゼロ ETL を使用したデータ同期」をご参照ください。