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

AnalyticDB:ゼロETLによるデータ同期

最終更新日:Jun 06, 2026

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

基本概念

用語 定義
ゼロETLタスク PolarDB for MySQL のソースクラスターから AnalyticDB for MySQL のターゲットクラスターへ、DML および DDL の変更を継続的にレプリケートするマネージド同期ジョブです。
ソースクラスター トランザクションデータが発生する PolarDB for MySQL クラスターです。
ターゲットクラスター レプリケートされたデータを分析に利用できる AnalyticDB for MySQL クラスターです。
ACU AnalyticDB コンピュートユニットです。クラスターが同時に実行できるゼロ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 (elastic mode): ACU = コンピューティングリソースコア + エラスティック I/O リソースコア。
Data Warehouse Edition (reserved mode): ACU = コンピューティングリソースコア。

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

前提条件

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

権限の設定

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

  1. Resource Access Management (RAM) コンソールにログインします。左側のナビゲーションペインで、Zero-ETL タスクの作成 > [ロール] を選択します。

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

    1. [Create Role] をクリックします。

    2. [Select role type] ステップで、[Alibaba Cloud Service] を選択し、[Next] をクリックします。

    3. [Configure role] ステップで、[Role type][Service linked role] に設定し、[Select service] ドロップダウンリストから [AnalyticDB for MySQL] を選択します。

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

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

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

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

AliyunADBFullAccess ポリシーを RAM ユーザーにアタッチします。手順については、「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 コンソールにログインします。左上のコーナーで、リージョンを選択します。左側のナビゲーションペインで、[Clusters] をクリックします。[Clusters] ページで、お使いのクラスターのエディションに対応するタブをクリックし、対象のクラスターを見つけて、その ID をクリックします。

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

    • Enterprise Edition、Basic Edition、または Data Lakehouse Edition: 左側のナビゲーションペインで、[Data Ingestion] > [Database Data Synchronization] を選択します。

    • Data Warehouse Edition: 左側のナビゲーションペインで、[Data Transmission Service] > [Zero-ETL] を選択します。

  3. [Create Zero-ETL Task] をクリックします。[Create Zero-ETL Task] ページで、ソースクラスターとターゲットクラスターのパラメーターを設定します。

    [SSL-encrypted] を選択した場合は、まず PolarDB for MySQL クラスターで SSL 暗号化を有効にします。「SSL暗号化の設定」をご参照ください。
    パラメーター 説明
    タスク名 ゼロETL タスクの名前。
    データベースタイプ ソースデータベースエンジン。 [PolarDB for MySQL] を選択します。
    アクセス方法 自動的に [Alibaba Cloud Instance] に設定されます。
    インスタンスリージョン PolarDB for MySQL クラスターが存在するリージョン。
    PolarDBクラスターID PolarDB for MySQL クラスターの ID。
    データベースアカウント PolarDB for MySQL クラスターのデータベースアカウント。
    データベースのパスワード データベースアカウントのパスワード。
    暗号化 接続の暗号化方式。[Non-encrypted] または [SSL-encrypted] を選択します。
    パラメーター 説明
    データベースタイプ 自動的に [AnalyticDB for MySQL V3.0] に設定されます。
    アクセス方法 自動的に [Alibaba Cloud Instance] に設定されます。
    インスタンスリージョン AnalyticDB for MySQL クラスターが存在するリージョン。
    インスタンスID AnalyticDB for MySQL クラスターの ID。
    データベースアカウント AnalyticDB for MySQL クラスターのデータベースアカウント。
    データベースのパスワード データベースアカウントのパスワード。
  4. [Test Connectivity and Proceed] をクリックします。次に、同期設定を行います。

    パラメーター 説明
    同期するDDLおよびDML操作 同期する DML 操作 (INSERT、UPDATE、DELETE) と DDL 操作 (CREATE、ALTER、DROP、TRUNCATE)。すべての操作はデフォルトで選択されています。
    ソースオブジェクトと選択したオブジェクト 同期対象のデータベースとテーブル。
    詳細設定 (オプション) ソースクラスターとターゲットクラスターで接続障害やその他のエラーが発生した場合のリトライ間隔。
  5. [Next: Configure Database and Table Fields] をクリックします。テーブルマッピングのパラメーターを設定します。

    パラメーター 説明
    データベース名 選択したデータベースの名前。
    テーブル名 選択したテーブルの名前。
    プライマリキー列 テーブルのプライマリキー列。
    分散キー テーブルの分散キー列。
    タイプ テーブルのタイプ (パーティションテーブルまたはレプリケートされたテーブル)。
    定義ステータス テーブルの設定ステータス。テーブルフィールドを設定すると、[Undefined] から [Defined] に変わります。
  6. [Next: Save Task Settings and Precheck] をクリックします。

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

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

ゼロETL タスクが [zero-ETL configuration] ページに表示され、タスクの [Name][Source/Destination][Status] を確認できます。

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

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

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

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

  2. 左側のナビゲーションペインで、[Cloud Service Monitoring] > [Cloud Service Monitoring] を選択します。

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

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

アラートルールの作成:

  1. 左側のナビゲーションペインで、[Alerts] > [Alert Rules] を選択します。

  2. [Create Alert Rule] をクリックし、アラートパラメーターを設定します。[Product][AnalyticDB for MySQL V3.0 - ZeroETL Latency] に設定します。詳細は、「アラートルールの作成」をご参照ください。

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

  1. 左側のナビゲーションペインで、[Event Center] > [Event Subscription] を選択します。

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

    • 製品: [AnalyticDB for MySQL V3.0] を選択します。

    • イベントタイプ: [Abnormal] または [Restore] を選択します。

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

次のステップ

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