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

DataWorks:オフライン同期の高速化またはスロットリング

最終更新日:Nov 09, 2025

このトピックでは、データ同期速度に影響を与える要因、同期速度を最大化するための同時実行数の調整方法、ジョブのスロットリングオプション、およびデータ同期が遅いシナリオのソリューションについて説明します。

概要

  • データ同期速度は、タスク構成、データベースのパフォーマンス、ネットワーク状態など、多くの要因の影響を受けます。 詳細については、「データ同期速度に影響を与える要因」をご参照ください。

  • データ同期の低速化は、プロセスのさまざまな段階で発生する可能性があります。 このトピックでは、各段階でのパフォーマンス低下に対するソリューションについて説明します。 詳細については、「データ同期が遅い場合のシナリオとソリューション」をご参照ください。

  • データベースのパフォーマンスが限られている場合、同期速度が速いほど良いとは限りません。 高速化すると、データベースに過度のストレスがかかり、他の本番サービスに影響を与える可能性があります。 Data Integration は、必要に応じて構成できるスロットリングオプションを提供します。 詳細については、「同期速度の制限」をご参照ください。

データ同期速度に影響を与える要因

データ同期速度は、ソースデータベースとターゲットデータベースの環境、タスク構成などの要因の影響を受けます。 お客様は主に、ソースデータベースとターゲットデータベースのパフォーマンス、負荷、およびネットワーク状態のモニタリングとチューニングを担当します。

次の要因がデータ同期速度に影響します:

要因

説明

ソースデータソース

  • データベースのパフォーマンス: CPU、メモリ、SSD、ネットワーク、ディスクのパフォーマンス。

  • 同時実行数: データソースの同時実行数が高いほど、データベースの負荷は重くなります。 パフォーマンスの高いデータベースは、より高い同時実行数を処理できます。 これにより、データ同期ジョブに対してより多くの同時データ抽出を構成できます。

  • ネットワーク: ネットワークの帯域幅 (スループット) と速度。

オフライン同期タスクで使用されるスケジューリング用のリソースグループ

オフライン同期タスクは、スケジュールリソースによって Data Integration 実行リソース上で実行されるようにディスパッチされます。 スケジュールリソースの使用状況も、全体的な同期効率に影響します。

オフライン同期タスクの構成

  • 転送速度: タスクの同期速度に上限が設定されているかどうか。

  • 同時実行数: ソースからの読み取りまたはターゲットデータストレージへの書き込みを並行して実行できるスレッドの最大数。

  • WAIT リソース。

  • Bytes 設定: 単一のスレッドには Bytes=1048576 があります。 ネットワーク速度が影響を受けやすい場合、タイムアウトが発生する可能性があります。 この場合、Bytes をより小さい値に設定します。

  • クエリ文に対してインデックスが作成されているかどうか。

ターゲットデータソース

  • パフォーマンス: CPU、メモリ、SSD、ネットワーク、ディスクのパフォーマンス。

  • 負荷: ターゲットデータベースの負荷が過剰になると、同期タスクのデータ書き込み効率に影響します。

  • ネットワーク: ネットワークの帯域幅 (スループット) と速度。

データ同期が遅い場合のシナリオとソリューション

説明

オフライン同期タスクのログの詳細については、「オフライン同期ログの分析」をご参照ください。

データ同期が遅いシナリオ

現象

考えられる原因

ソリューション

スケジュールリソースの待機

  • 現象 1: 同期タスクのログに、タスクがゲートウェイを待機していることが示されます。

  • 現象 2: インスタンスプロパティページに、リソースの待機時間が長いことが示されます。

オフラインタスクは、スケジューリングリソースグループによってエンジンにディスパッチされて実行されます。 スケジューリングリソースグループで実行中のタスク数が上限に達した場合、新しいタスクは実行中のタスクが完了してリソースを解放するのを待つ必要があります。

[オペレーションセンター] ページで、現在のタスクが待機している間にどのタスクがリソースを占有しているかを表示できます。

説明

スケジューリングに共有リソースグループを使用している場合は、タスクを専用またはサーバーレスのリソースグループに移行して実行します。

実行リソースの待機

同期タスクのログに `wait` と表示されます。wait

Data Integration リソースグループの残りのリソースが、現在のタスクを実行するには不十分です。

たとえば、あるリソースグループが最大 8 つの同時実行スレッドをサポートしているとします。 3 つのタスクが構成されており、それぞれに 3 つの同時実行スレッドが必要です。 2 つのタスクが同時に実行されると、6 つのスレッドが使用されます。 リソースグループには 2 つのスレッドしか残っていません。 3 つのスレッドを必要とする 3 番目のタスクは、リソースが不十分なため待機する必要があります。 このタスクのログには `wait` と表示されます。

リソースグループ内で他のタスクが実行中で、多くのリソースを使用していないか確認してください。 この問題を解決するには、次のソリューションを使用できます:

説明
  • [オペレーションセンター] ページで、リソース使用量と、現在のタスクが待機している間にリソースを使用しているタスクに関する情報を表示できます。等待资源

  • リソースグループが実行できる同時実行スレッドの最大数は、その仕様によって異なります。 詳細については、「パフォーマンスメトリックと課金標準」をご参照ください。

  1. リソースを占有しているタスクがスタックしているか、大幅に速度が低下していないか確認してください。 もしそうなら、まずこれらの問題を解決するか、タスクの一部を停止してください。

  2. タスクがスタックしていない場合は、タスクが完了してリソースが解放されるのを待ってください。 その後、現在のタスクを開始します。

  3. リソースを使用しているタスクとそのオーナーのリストを見つけることもできます。 彼らと調整して、タスクの同時実行数を減らしてください。

  4. 現在の同期タスクの同時実行数を減らしてから、再送信して公開することもできます。

  5. 実行用のリソースグループをスケールアウトすることもできます。 詳細については、「スケールアウトおよびスケールイン操作」をご参照ください。

同期タスクの実行が遅すぎる

同期タスクのログには run と表示されますが、速度は 0 です。 タスクは実行中です。 この状態が続く場合は、[詳細ログ] をクリックして実行の詳細を表示します。运行慢詳細ログに WaitReaderTime パラメーターの値が大きい場合は、タスクがソースからのデータ返却を長時間待機していることを示します。查看日志

  • ソースのシャードキーが正しく構成されていません。

    シャードキーに基づいて生成された、ソースデータベースからデータを読み取るための SQL 文の実行が遅いです。

  • ソースからデータを読み取るために使用される SQL 文の実行に時間がかかります (たとえば、一部のプラグインの `where` または `querySql` パラメーター)。

    シナリオ例: `WHERE` 句にインデックスがない場合に発生する全表スキャンが原因で、データ同期タスクが遅くなります。

  • 同期時のデータベース負荷が高いです。

  • 帯域幅 (スループット) やネットワーク速度などのネットワークの問題が存在します。

説明

インターネット経由でのデータ同期速度は保証できません。

  • 遅い文の実行を解決するには:

    • 事前または事後の SQL 文を構成する場合:

      • データフィルタリングに使用されるフィールドにインデックスが追加されていることを確認してください。 これにより、同期タスクが全表スキャンを実行するのを防ぎます。

      • 関数を使用するなど、複雑な処理を回避または削減します。 必要に応じて、同期前にデータベースでこれらの操作を実行してください。

    • ソースデータテーブルにデータが多すぎないか確認してください。 もしそうなら、データを複数のタスクに分割してください。

    • ログをクエリしてブロックされている SQL 文を見つけ、データベース管理者に解決策を相談してください。

  • 同期時のデータベース負荷を確認してください。

同期タスクのログには run と表示されますが、速度は 0 です。 タスクは実行中です。 この状態が続く場合は、[詳細ログ] をクリックして実行の詳細を表示します。运行慢詳細ログに WaitWriterTime パラメーターの値が大きい場合は、タスクがターゲットへのデータ書き込みに時間がかかっていることを示します。

  • ライタープラグインで構成された事前または事後の SQL 文の実行が遅いです (たとえば、一部のプラグインの `preSql` または `postSql` パラメーターで構成された SQL 文)。

  • 同期時のデータベース負荷が高いです。

  • 帯域幅 (スループット) やネットワーク速度などのネットワークの問題が存在します。

説明

インターネット経由でのデータ同期速度は保証できません。

ログには run とゼロ以外の速度が表示されますが、同期プロセスは遅いです。日志

  • リレーショナルデータベースタスクのシャードキーが正しく構成されていません。 これにより、同時実行数の設定が無効になり、タスクは単一のスレッドで実行されます。

  • 同時実行数が低すぎます。

  • 同期中に大量のダーティデータが生成され、速度に影響します。

  • データベースにパフォーマンス上の問題があります。

    説明

    パフォーマンスの高いデータベースは、より高い同時実行性を処理できます。これにより、データ同期ジョブの同時実行性をより高く設定できます。

  • 帯域幅 (スループット) やネットワーク速度などのネットワークの問題が存在します。

説明

インターネット経由でのデータ同期速度は保証できません。

  1. シャードキーを正しく構成してください。 タスクのシャードキーの構成に関する詳細については、「コードレス UI でタスクを構成する」をご参照ください。

  2. リソースグループでサポートされる最大同時実行数の範囲内で、各タスクの同時実行数を計画し、必要に応じて現在のタスクの同時実行数を増やします。

    コードレス UI で、タスクの並列処理の次数を指定するために同時実行数を構成します。 次のコードは、コードエディタで同時実行数を構成する方法を示しています。日志

    説明

    リソースグループが実行できる同時実行スレッドの最大数は、その仕様によって異なります。 詳細については、「パフォーマンスメトリックと課金標準」をご参照ください。

  3. ダーティデータを処理します。 ダーティデータの詳細については、「Data Integration」をご参照ください。

  4. 分散タスクの同時実行数を設定する場合、リソースグループ内のマシンの数は、そのグループ内の単一マシンの最大同時実行数を超えることはできません。

  5. クラウドまたはリージョン間でデータを同期する場合は、ネットワーク接続を確立し、同期に内部ネットワークを使用します。 ネットワーク接続ソリューションの詳細については、「ネットワーク接続ソリューション」をご参照ください。

  6. データベースの負荷を確認してください。

同期速度の制限

デフォルトでは、Data Integration の同期タスクはスロットリングされません。 タスクは、構成された同時実行数制限内で可能な限り最高の速度で実行されます。 ただし、高速化するとデータベースに過度のストレスがかかり、他の本番サービスに影響を与える可能性があります。 Data Integration は、必要に応じて構成できるスロットリングオプションを提供します。 スロットリングを有効にした後、最大速度を 30 MB/s 以下に設定することをお勧めします。 次のコードは、コードエディタでスロットリングを構成して帯域幅制限を 1 MB/s に設定する方法を示しています。

"setting": {
      "speed": {
         "throttle": true // スロットリングを有効にします。
        "mbps": 1, // 特定のレート。
      }
    }
  • throttle パラメーターは true または false に設定できます:

    • throttletrue に設定されている場合、スロットリングが有効になります。 mbps に特定のデータ値を設定する必要があります。 mbps を設定しない場合、プログラムでエラーが発生するか、レートが異常になります。

    • throttlefalse に設定されている場合、スロットリングは無効になり、mbps の構成は無視されます。

  • トラフィックメジャーは Data Integration のメトリックであり、実際のネットワークインターフェイスカード (NIC) のトラフィックを表すものではありません。 通常、NIC トラフィックはチャンネルトラフィックの 1〜2 倍です。 実際のトラフィックオーバーヘッドは、データストレージシステムのデータシリアル化によって異なります。

  • 単一の半構造化ファイルにはシャードキーがありません。 複数のファイルの場合、ジョブの速度制限を設定できます。 ただし、有効な速度制限はファイルの数にも関連しています。

    たとえば、n 個のファイルの場合、有効な速度制限は n MB/s です:

    • 速度制限を n+1 MB/s に設定すると、データは n MB/s で同期されます。

    • 速度制限を n-1 MB/s に設定すると、データは n-1 MB/s で同期されます。

  • リレーショナルデータベースの場合、複数のスレッドで速度制限を有効にするには、シャードキーを構成する必要があります。 リレーショナルデータベースは通常、数値のシャードキーのみをサポートします。 ただし、Oracle データベースは数値と文字列の両方のシャードキーをサポートします。

よくある質問

  • オフライン同期に関するよくある質問

  • `BatchSize` または `maxfilesize` パラメーターは、バッチ送信のレコード数を制御します。 適切な値を設定すると、Data Integration とデータベース間のネットワークインタラクションを減らし、スループットを向上させることができます。 ただし、この値が大きすぎると、同期プロセスでメモリ不足 (OOM) エラーが発生する可能性があります。 このエラーが発生した場合は、「オフライン同期に関するよくある質問」をご参照ください。

付録: 実際の並列度の確認

データ同期タスクのログ詳細ページで、JobContainer - Job set Channel-Number to 2 channels. の形式のログエントリを見つけます。 channels の値が、タスクの実際の並列処理の次数です。查看实际并发

付録: 並列度とリソース使用量の関係

専用リソースグループでは、リソース使用量は、同時実行数と CPU の関係、および同時実行数とメモリの関係によって決まります:

  • 同時実行数と CPU の関係

    専用リソースグループでは、vCPU と同時実行数の比率は 1:2 です。 たとえば、4 vCPU と 8 GiB のメモリを搭載した ECS マシンは、その専用リソースグループに 8 の同時実行数クォータを提供します。 同時実行数が 1 のオフライン同期タスクを最大 8 つ、または同時実行数が 2 のオフライン同期タスクを 4 つ実行できます。

    専用リソースグループに送信された新しいタスクに必要な同時実行数が、グループの残りの同時実行数クォータよりも大きい場合、新しいタスクは待機する必要があります。 グループ内の実行中のタスクが完了し、残りの同時実行数クォータが新しいタスクに十分になった後に実行されます。

    説明

    新しいタスクに設定された同時実行数が専用リソースグループの最大同時実行数クォータを超えると、タスクは永久に待機状態になります。 たとえば、4 vCPU と 8 GiB のメモリを搭載した ECS マシン上の専用リソースグループに、同時実行数が 10 のタスクを送信した場合にこれが発生します。 リソースグループは送信順に基づいてリソースを割り当てるため、後続のタスクもブロックされます。

  • 同時実行数とメモリの関係

    専用リソースグループでは、単一のタスクが占有するメモリは Min{768 + (同時実行数 - 1) × 256, 8029} MB として計算されます。 ただし、タスク設定でこの計算をオーバーライドできます。 コードエディタで、JSON パス $.setting.jvmOption を設定します。jvm

    実行中のすべてのタスクが使用する合計メモリが、専用リソースグループ内のすべてのマシンの合計メモリより少なくとも 1 GB 少ないことを確認してください。 これにより、タスクがスムーズに実行されます。 この条件が満たされない場合、Linux の OOM Killer メカニズムによってタスクが強制的に停止される可能性があります。

    説明

    コードエディタを使用してタスクのメモリを増やさない場合は、タスクを送信するときに専用リソースグループの同時実行数クォータ制限のみを考慮する必要があります。

付録: 同期速度

読み取りおよび書き込み速度は、データソースによって大きく異なります。 次のセクションでは、専用リソースグループ内の一般的なデータソースの平均単一スレッド同期速度について説明します:

  • さまざまな Writer プラグインの平均単一スレッド速度

    Writer

    平均単一スレッド速度 (KB/s)

    AnalyticDB for PostgreSQL

    147.8

    AnalyticDB for MySQL

    181.3

    ClickHouse

    5259.3

    DataHub

    45.8

    DRDS

    93.1

    Elasticsearch

    74.0

    FTP

    565.6

    GDB

    17.1

    HBase

    2395.0

    hbase20xsql

    37.8

    HDFS

    1301.3

    Hive

    1960.4

    HybridDB for MySQL

    323.0

    HybridDB for PostgreSQL

    116.0

    Kafka

    0.9

    LogHub

    788.5

    MongoDB

    51.6

    MySQL

    54.9

    ODPS

    660.6

    Oracle

    66.7

    OSS

    3718.4

    OTS

    138.5

    PolarDB

    45.6

    PostgreSQL

    168.4

    Redis

    7846.7

    SQLServer

    8.3

    Stream

    116.1

    TSDB

    2.3

    Vertica

    272.0

  • さまざまな Reader プラグインの平均単一スレッド速度

    Reader

    平均単一スレッド速度 (KB/s)

    AnalyticDB for PostgreSQL

    220.3

    AnalyticDB for MySQL

    248.6

    DRDS

    146.4

    Elasticsearch

    215.8

    FTP

    279.4

    HBase

    1605.6

    hbase20xsql

    465.3

    HDFS

    2202.9

    Hologres

    741.0

    HybridDB for MySQL

    111.3

    HybridDB for PostgreSQL

    496.9

    Kafka

    3117.2

    LogHub

    1014.1

    MongoDB

    361.3

    MySQL

    459.5

    ODPS

    207.2

    Oracle

    133.5

    OSS

    665.3

    OTS

    229.3

    OTSStream

    661.7

    PolarDB

    238.2

    PostgreSQL

    165.6

    RDBMS

    845.6

    SQLServer

    143.7

    Stream

    85.0

    Vertica

    454.3