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

DataWorks:バッチ同期における同時実行数と速度制限の関係

最終更新日:May 10, 2026

本トピックでは、バッチ同期タスクの構成エラーおよびサポートリクエストを最小限に抑えるための、チャンネルコントロールパラメーターの構成方法について説明します。また、バッチ同期における同時実行数と速度制限の関係についても解説します。

基本概念とベストプラクティス

同時実行

本セクションでは、以下の質問に回答します。

  • 質問 1:データ同期タスクの同時実行数をどのように構成すればよいですか?

  • 質問 2:実際の同時実行数が不足しているため、データ同期タスクの実行が遅くなっています。なぜでしょうか?

  • 質問 3:高い同時実行数を設定しても同期タスクが依然として遅く、排他リソースグループが頻繁にリソース待ちになるのはなぜですか?

同時実行数とは、データ同期タスク内でソースからデータを読み取り、送信先に書き込む際に並列で実行可能な最大スレッド数を指します。データ同期の効率を向上させるには、タスクの同時実行数を調整してデータ移行に必要な時間を短縮できます。この設定は、データ同期タスク構成ページの チャンネルコントロール セクションにある 希望する最大タスク同時実行数 ドロップダウンリストから行います。ここで設定した値が、タスクの構成済み同時実行数となります。ファイルベースのソース(OSS、FTP、HDFS、S3)の場合、データはファイル単位で並列読み取りされますが、読み取り対象のファイル数が構成済み同時実行数よりも少ない場合、実際の同時実行数は制限されます。設定値は希望する最大タスク同時実行数ですが、Data Integration リソースグループの制限やタスク自体の特性などの要因により、タスク実行時の実際の同時実行数は、構成値以下となる場合があります。課金シナリオ(Data Integration デバッグリソースグループを使用する場合など)では、タスクの実際の同時実行数に基づいて課金されます。Data Integration は、実行時の同時実行数が構成値と一致するように努めています。実際の実行同時実行数が構成値を下回る一般的なシナリオは以下のとおりです。

  • MySQL、PolarDB、SQL Server、PostgreSQL、Oracle などのリレーショナルデータベースから読み取る場合、有効な分割キー(splitPk)が構成されていないと、テーブルデータを並列で分割・読み取りできません。分割キーは整数型である必要があります。Oracle の場合は、整数型に加えて日時型のカラムもサポートされています。

  • PolarDB-X (DRDS) の場合、論理テーブルの物理トポロジーに基づいてデータがスライスに分割され読み取られます。実際の同時実行数は、構成済み同時実行数よりも小さい場合、物理テーブルシャードの数によって制限されます。

  • ファイルベースのソース(OSS、FTP、HDFS、S3)の場合、データはファイル単位で並列読み取りされます。読み取り対象のファイル数が構成済み同時実行数よりも少ない場合、実際の同時実行数はそのファイル数によって制限されます。

  • ソース側のデータ分布が極端に不均一な場合、一部のデータスライスの処理に時間がかかることがあります。タスク実行の後半段階で他のスライスが完了した後は、実際の同時実行数が構成済み同時実行数を下回ります。

同時実行数の構成に関するベストプラクティス:

  • 同時実行数を高く設定すると、タスクがより多くのリソースを必要とします。Data Integration はリソースを FIFO(First-In, First-Out)方式で割り当てるため、先に送信されたタスクほど優先的にリソースが割り当てられます。長時間実行される高同時実行タスクが後続タスクのリソース取得をブロックしないよう、適切な同時実行数を設定してください。

  • データ量が小さいテーブルの場合は、低い同時実行数を設定してください。これにより必要なリソースが少なくなり、タスクが断片化されたリソースを迅速に取得して実行を開始できます。データ量が小さいため、実行時間も合理的な範囲内に収まります。

  • 同一データソースに対する同期タスクは、実行時間をずらしてください。これによりリソースグループのリソース使用率が均等化され、データソースへの同時アクセス負荷が軽減されます。

同期速度

本セクションでは、以下の質問に回答します。

  • 質問 1:データ同期速度をどのように構成すればよいですか?速度制限ありとなしの違いを教えてください。

  • 質問 2:データ同期において速度制限が効かないことがあるのはなぜですか?

  • 質問 3:実際のデータ同期速度が速度制限しきい値を大幅に下回ることがあるのはなぜですか?

同期速度:データ同期速度と希望する最大タスク同時実行数は密接に関連するパラメーターです。これらはソースおよび送信先を過剰な読み取り/書き込み負荷から保護し、データ同期タスクがデータソースに大きな負荷をかけ、その安定性に影響を与えることを防ぎます。

同期速度(速度制限なし)とは、タスクが構成済みの希望する最大タスク同時実行数(実際の実行同時実行数を ActualConcurrent と仮定)で実行され、各同時実行スライスが速度制限なし(各スライスの実際の速度を Speed と仮定)で動作することを意味します。タスク全体の実際の速度は ActualConcurrent × Speed となります。速度制限なしモードでは、Data Integration は現在のタスク構成(同時実行数およびメモリ)およびハードウェア環境(データソースの仕様およびネットワーク)のもとで可能な最大転送パフォーマンスを提供します。このモードを使用するには、チャンネルコントロール セクションの 同期速度速度制限なし を選択します。

同期速度(速度制限あり)とは、タスクが全体的な速度制限と構成済みの最大同時実行数で実行されることを意味します。Data Integration が実行計画を作成する際、各同時実行スライスの速度は(ジョブ速度 / ジョブ同時実行数、切り上げ)として計算されます。各スライスの最小速度は 1 MB/s です。したがって、タスクの実際の速度上限は、実際の同時実行数 × 各スライスの実際の速度制限となります。このモードを使用するには、速度制限あり を選択し、右側のフィールドに速度値(MB/s 単位)を入力します。以下に一般的な速度制限シナリオの例を示します。

  • 同時実行数を 5、速度制限を 5 MB/s に設定した場合、タスクは 5 つのスライスに分割され同時実行され、各スライスは 1 MB/s に制限されます。

    • 実際の同時実行数が 5 の場合、最大全体速度は 5 MB/s となり、タスク速度制限以下になります。

    • 実際の実行同時実行数はデータソースの具体的な特性に依存します。実際の同時実行数が構成値 5 よりも小さくなる可能性があります(希望する最大タスク同時実行数のセクションを参照)。実際の実行同時実行数が 1 の場合、最大全体速度は 1 MB/s となり、タスク速度制限以下になります。

  • 同時実行数を 5、速度制限を 3 MB/s に設定した場合、タスクは 5 つのスライスに分割され同時実行され、各スライスの速度は 3 / 5 を切り上げて 1 MB/s と計算されます。

    • 実際の実行同時実行数が 5 の場合、最大全体速度は 5 MB/s となり、タスク速度制限を超えます。

    • 実際の実行同時実行数が 1 の場合、最大全体速度は 1 MB/s となり、タスク速度制限以下になります。

  • 同時実行数を 5、速度制限を 10 MB/s に設定した場合、タスクは 5 つのスライスに分割され同時実行され、各スライスの速度は 10 / 5 = 2 MB/s と計算されます。

    • 実際の実行同時実行数が 5 の場合、最大全体速度は 10 MB/s となり、タスク速度制限以下になります。

    • 実際の実行同時実行数が 1 の場合、最大全体速度は 2 MB/s となり、タスク速度制限以下になります。

分散処理

本セクションでは、以下の質問に回答します。

  • 質問 1:同期ジョブで分散モードを構成すべきシナリオはどのようなものですか?

  • 質問 2:分散モードで実行しているにもかかわらず、同期ジョブが依然として遅いのはなぜですか?

分散モードを使用しない場合、構成済みの同時実行数は単一マシン上でプロセスレベルの並行処理として実行され、複数マシンのコンピューティング能力を活用できません。分散実行モードでは、タスクスライスが複数の実行ノードに分散され、同時処理されます。これにより、同期速度をクラスター規模に応じて水平方向にスケーリングでき、単一マシンのボトルネックを突破できます。同期パフォーマンス要件が高い場合は、分散モードを使用してください。また、分散モードでは複数マシンにわたる断片化されたリソースを活用できるため、リソース利用率が向上します。

制限事項とベストプラクティス:

  • 分散実行モードでは、高い同時実行数を設定するとデータストレージへのアクセス負荷が大きくなる可能性があります。このモードを使用する前に、データストレージのアクセス負荷を評価してください。

  • 排他リソースグループにマシンが 1 台しかない場合、分散実行モードは推奨されません。実行プロセスは依然として単一のワーカーノード上に分散されるため、複数マシンによる分散処理のメリットを十分に得られません。

  • データ量が小さい同期タスクでは、分散モードは推奨されません。代わりに、低い同時実行数で単一マシンタスクを構成してください。

  • 分散モードは、同時実行数が 8 以上の場合にのみ有効化できます。

ダーティデータ制限

本セクションでは、以下の質問に回答します。

  • 質問 1:データ同期におけるダーティデータとは何ですか?

  • 質問 2:データ同期タスクのダーティデータ制限をどのように構成すればよいですか?

  • 質問 3:データ同期速度とダーティデータの関係はどのようなものですか?

ダーティデータ制限は、ダーティデータに遭遇した際のタスクの動作を制御します。ダーティデータとは、送信先データソースへの書き込み処理中に例外が発生したデータレコードを指します。異種システム間でのデータ処理の複雑さおよび差異により、現在のポリシーでは書き込みに失敗したすべてのデータがダーティデータとして分類されます。一部のデータ同期シナリオでは、ダーティデータが同期効率を低下させる可能性があります。たとえば、リレーショナルデータベースへの書き込みではデフォルトでバッチ書き込みモードが使用されますが、ダーティデータに遭遇すると、どのレコードがダーティデータであるかを特定し、正常なレコードを確実に書き込むために、シングルレコード書き込みモードにフォールバックします。ただし、シングルレコード書き込みはバッチ書き込みよりもはるかに遅いため、大量のダーティデータに遭遇するとタスク全体のパフォーマンスが著しく低下する可能性があります。

現在、Data Integration チャンネルのほとんどがダーティデータしきい値制限をサポートしています。この機能をサポートするチャンネルにおける一般的な構成シナリオは以下のとおりです。

  • ダーティデータ制限を構成していない場合:すべてのダーティデータが許容され、ダーティデータによってタスクが失敗することはありません。タスク構成の errorLimit フィールドは空のままになります。

  • ダーティデータ制限を 0 に設定した場合:ダーティデータは一切許容されません。1 件以上のダーティデータレコードに遭遇するとタスクは失敗します。

  • ダーティデータ制限を正の整数 N に設定した場合:最大 N 件のダーティデータレコードが許容されます。ダーティデータレコード数が N を超えるとタスクは失敗します。チャンネルコントロール セクションの エラー件数超過 フィールドにダーティデータしきい値を入力します。制限を設けない場合は、このフィールドを空のままにしてください。

ベストプラクティス:

  • MySQL、SQL Server、PostgreSQL、Oracle、PolarDB、PolarDB-X などのリレーショナルデータベース、Hologres、ClickHouse、AnalyticDB for MySQL など、データ品質に敏感なシナリオでは、ダーティデータ制限を 0 に設定して、データ品質リスクを迅速に検出してください。

  • データ品質にそれほど敏感でないシナリオでは、ダーティデータ制限を構成しないか、ビジネス要件に基づいて適切なダーティデータしきい値を設定してください。これにより、日常的なダーティデータ対応の運用負荷を軽減できます。

  • 重要なタスクについては、タスク失敗および遅延アラートを構成して、問題を迅速に検出してください。

  • 再実行可能なタスクについては、失敗時に自動再実行を構成して、偶発的な環境問題の影響を軽減してください。

データソース接続クォータ制限

本セクションでは、以下の質問に回答します。

  • 質問 1:データソース接続クォータ制限とは何ですか?適切な接続制限をどのように構成すればよいですか?

  • 質問 2:データ同期ソリューションのバッチ完全同期タスクが遅く、長時間「送信済み」状態のままになるのはなぜですか?

データソース接続制限機能とは、以下の内容を指します。

  • 送信先書き込み同時実行数:リアルタイム同期タスクにおいて送信先にデータを書き込む最大スレッド数です。この値はリソースグループサイズおよび送信先の実際の規模に基づいて構成してください。構成可能な上限値は 32、デフォルト値は 3 です。

  • 最大ソース読み取り接続数:データ同期ソリューションのバッチ完全データ初期化フェーズでは、既存データをすべて読み取るためにデータベースに JDBC 接続が確立されます。この設定により、ソースへの最大 JDBC 接続数が制御され、多数のタスクが同時に開始されてデータベース接続プールを使い果たし、データベースの安定性に影響を与えることを防ぎます。この値はご利用のデータベースリソースの実際の容量に基づいて構成してください。デフォルト値は 15 です。タスクが長時間「送信済み」状態のままになる場合は、通常、最大データソース接続制限が原因です(タスクの実行時間をずらすか、最大接続制限を増やすことを試してください)。

データ同期ソリューションにおけるデータソース接続クォータ制限は、次のように構成できます。実行時リソース設定 ステップのリアルタイム同期セクションで、送信先書き込み同時実行数 を設定できます(デフォルト:3、構成可能な上限値:32)。6.2 バッチ完全同期 セクションでは、完全データ初期化フェーズ中のデータベースへの JDBC 接続数を制御するために、最大ソース読み取り接続数(デフォルト:15)を設定できます。