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

DataWorks:バッチ同期のスロットル設定

最終更新日:Mar 04, 2026

本トピックでは、データ同期速度に影響を与える要因、タスクの同時実行数を調整することで同期速度を最大化する方法、レート制限の選択肢、および同期が遅くなるシナリオについて説明します。

概要

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

  • 同期が遅くなる現象は、処理のどの段階でも発生する可能性があります。本トピックでは、各段階におけるパフォーマンス低下に対する解決策を提供します。詳細については、「データ同期が遅くなるシナリオとその解決策」をご参照ください。

  • データベースのパフォーマンスがボトルネックとなる場合、高速な同期が必ずしも望ましいとは限りません。過度に高い同期速度は、本番データベースに過大な負荷をかける可能性があります。Data Integration では、ビジネスニーズに応じて設定可能なレート制限機能を提供しています。詳細については、「同期速度の制限」をご参照ください。

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

データ同期速度は、ソースおよびターゲットデータベースの環境や同期タスクの構成などの要因によって影響を受けます。ソースおよびターゲットデータベースのパフォーマンス、負荷、ネットワーク状態については、お客様自身で監視および最適化を行う必要があります。

以下は、データ同期速度に影響を与える主な要因です:

要因

説明

ソースデータソース

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

  • 同時実行性:データソースの同時実行数が高いほど、データベースの負荷も高くなります。通常、データベースのパフォーマンスが優れているほど、より高い同時実行数を許容できます。これにより、データ同期ジョブに対してより多くの並列データ抽出を構成できます。

  • ネットワーク:ネットワーク帯域幅(スループット)および速度。

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

オフライン同期タスクは、スケジュールリソースグループからデータ統合リソースグループへ送信され、実行されます。スケジュールリソースの使用状況も、データ統合全体の効率に影響を与えます。

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

  • 転送速度:タスクに対して最大速度制限が設定されているかどうか。

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

  • WAIT リソース。

  • Bytes 設定:Bytes の単一スレッドに対するデフォルト値は 1048576 です。ネットワーク速度が不安定な場合、タイムアウトが発生する可能性があります。このような場合は、Bytes をより小さい値に設定してください。

  • クエリ文にインデックスが設定されているかどうか。

ターゲットデータソース

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

  • 負荷:ターゲットデータベースの負荷が高いと、同期タスクによるデータ書き込み効率が低下します。

  • ネットワーク:ネットワーク帯域幅(スループット)および速度。

データ同期が遅くなるシナリオとその解決策

説明

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

データ同期が遅くなるシナリオ

症状

考えられる原因

解決策

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

  • 症状 1:タスクログに「ゲートウェイを待機中」と表示される。

  • 症状 2:インスタンスのプロパティページに長いリソース待機時間が表示される。

オフラインタスクは、スケジュールリソースグループから DPI エンジンへ送信されて実行されます。スケジュールリソースグループが最大タスク数に達している場合、新規タスクは実行中のタスクが完了してリソースを解放するまで待機する必要があります。

運用分析」ページに移動し、現在のタスクが待機している間にリソースを使用しているタスクを確認します。

説明

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

実行リソースの待機中

タスクログに「wait」と表示される。wait

データ統合リソースグループ内の残りリソースが、現在のタスクに必要な量を満たしていない。

例:あるリソースグループは最大 8 件の同時実行タスクをサポートします。3 つのタスクがそれぞれ同時実行数 3 で送信されたと仮定します。そのうち 2 つのタスクが同時に開始した場合、合計で 6 個の同時実行スロットが使用され、残りは 2 個となります。3 つ目のタスクは 3 個の同時実行スロットを必要とするため、残りリソースが不足しており待機状態になります。このタスクのログには「wait」と表示されます。

他のタスクがリソースグループ内で実行中であり、大量のリソースを消費していないか確認してください。以下の方法でこの問題を解決できます:

説明
  • 運用分析」ページに移動し、現在のタスクが待機している間にリソースを使用しているタスクとリソース使用状況を確認します。等待资源

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

  1. リソースを使用しているタスクが停止状態にあるか、極端に遅く実行されているかを確認します。該当する場合は、まずこれらの問題を解決するか、一部のタスクを停止してください。

  2. リソースを使用しているタスクが停止状態でない場合は、データ統合リソースを使用しているタスクの完了を待ちます。リソースが解放されると、お客様のタスクが開始されます。

  3. リソースを使用しているタスクとその所有者を一覧表示できます。所有者と連携し、タスクの同時実行数を減らすように調整してください。

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

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

タスク実行速度が遅い

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

  • ソースの分割キーが適切に構成されていません。

    分割キーに基づいて生成されたデータ分割クエリ文が、データベース上で低速に実行されます。

  • ソースデータを読み取るクエリ文の実行に時間がかかりすぎています(一部のプラグインでは where や querySql パラメーターなど)。

    例:データ同期タスクの where 条件にインデックスが設定されておらず、全表スキャンが発生し、同期が遅くなっています。

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

  • ネットワークの問題:ネットワーク帯域幅(スループット)および速度。

説明

パブリックネットワーク経由のデータ同期速度は保証されません。

  • クエリ文の実行が遅い場合:

    • プリ-SQL またはポスト-SQL 文を構成する場合:

      • 全表スキャンを回避するために、データフィルタリングに使用するフィールドにインデックスが設定されていることを確認してください。

      • 関数などの複雑な処理を避けるか、最小限に抑えてください。必要に応じて、同期前にデータベース内でこれらの処理を実行してください。

    • ソースデータテーブルが大きすぎる場合、タスクを複数の小さなタスクに分割してください。

    • ログを照会して実行をブロックしている SQL 文を特定し、データベース管理者に相談して問題を解決してください。

  • 該当するタイミングでのデータベース負荷を確認してください。

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

  • ライター・プラグインで構成されたプリ-SQL またはポスト-SQL 文が低速に実行されています(preSql や postSql パラメーターで構成された SQL など)。

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

  • ネットワークの問題:ネットワーク帯域幅(スループット)および速度。

説明

パブリックネットワーク経由のデータ同期速度は保証されません。

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

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

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

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

  • データベースのパフォーマンスの問題。

    説明

    データベースのパフォーマンスが優れているほど、より高い同時実行数をサポートでき、データ同期ジョブの同時実行数を増やすことができます。

  • ネットワークの問題:ネットワーク帯域幅(スループット)および速度。

説明

パブリックネットワーク経由のデータ同期速度は保証されません。

  1. 分割キーを適切に設定してください。「コードレス UI によるタスク構成」で分割キーの構成方法をご確認ください。

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

    コードレス UI でタスクの同時実行数を構成することで、その並列処理の次数を指定できます。以下の例は、コードエディタでの同時実行数の構成方法を示しています。Log

    説明

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

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

  4. 分散タスクの場合、タスクの同時実行数は以下の条件を満たす必要があります:タスクの同時実行数 ÷ リソースグループ内のマシン台数 ≤ リソースグループ内の単一マシンがサポートする最大同時実行数。

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

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

同期速度の制限

デフォルトでは、Data Integration のタスクはレート制限されません。タスクは、構成された同時実行数の上限内で可能な限り最高速度で実行されます。ただし、過度に高い速度は本番データベースに過大な負荷をかける可能性があります。Data Integration では、必要に応じて設定可能なレート制限機能を提供しています。最大速度制限は 30 MB/s を超えないよう設定することを推奨します。以下の例では、コードエディタで 1 MB/s のレート制限を構成する方法を示しています。

"setting": {
      "speed": {
         "throttle": true, // レート制限を有効にするかどうかを指定します。
        "mbps": 1, // MB/s 単位での具体的なレート。
      }
    }
  • throttletrue または 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 パラメーターは、バッチコミットごとのレコード数を制御します。この値を大きくすると、データベースとのネットワーク通信回数が減少し、スループットが向上します。ただし、この値が大きすぎると、データ同期プロセスでメモリ不足(OOM)エラーが発生する可能性があります。このようなエラーが発生した場合は、「オフライン同期に関するよくある質問」をご参照ください。

付録:実際の同時実行数の確認

データ同期タスクログの詳細ページで、「JobContainer - Job set Channel-Number to 2 channels.」に類似したログエントリを確認できます。channels の値が、タスクの実際の同時実行数です。查看实际并发

付録:同時実行数とリソース使用量の関係

専用リソースグループでは、リソース使用量は同時実行数と CPU・メモリの両方に関係します:

  • 同時実行数と CPU 使用量の関係

    専用リソースグループでは、同時実行数と CPU の比率は 1:0.5 です。つまり、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 JSON パスを設定します。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