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

DataWorks:データバックフィルに関するよくある質問

最終更新日:Jun 21, 2026

このトピックでは、データバックフィルに関するよくある質問にお答えします。

説明

まず、ユーザーガイド「データバックフィルインスタンスの管理」をお読みいただくことを推奨します。

データバックフィルの仕組み

データバックフィル機能を使用すると、過去または未来の時間範囲のデータを処理できます。ノードが使用するスケジューリングパラメーターは、選択されたデータタイムスタンプに基づいて対応する値に自動的に置き換えられます。次の例では、MySQL データベースから MaxCompute の時間ベースのパーティションに増分データを書き込む方法を示します。バッチ同期ノードの場合、スケジューリングパラメーター bizdate=$bizdate を 3 つの場所で設定する必要があります。1) [データソース] 設定で、フィルター条件 STR_TO_DATE('${bizdate}','%Y%m%d') <= gmt_modify_time AND gmt_modify_time < DATE_ADD(STR_TO_DATE('${bizdate}','%Y%m%d'), interval 1 day) を使用して増分データをフィルタリングします。2) [データ送信先] 設定で、パーティション情報を pt=${bizdate} に設定し、クリーンアップルールとして [上書き挿入] を選択します。3) [スケジューリング設定] パネルで、[パラメーター] フィールドに bizdate=$bizdate を入力し、[翌日 (T+1) のインスタンスを生成] を選択します。各スケジュール実行が対応するデータタイムスタンプの増分データのみを同期するように、3 つすべての設定で ${bizdate} の値を一致させる必要があります。

時間単位および分単位ノードで並列度が機能しない理由

  • 現象

    時間単位または分単位でスケジュールされたノードでは、データバックフィルで並列度を有効にしても、インスタンスは並列実行されません。

  • 原因

    データバックフィルの並列度設定は、日単位で、あるデータタイムスタンプ範囲のインスタンスを同時に実行するかどうかを決定します。これは、時間単位または分単位のノードの同日内のインスタンスの同時実行を制御するものではありません。これらのノードの同日内の同時実行は、自己依存が設定されているかどうかによって決まります。詳細については、「シナリオ2:前の周期への依存関係を設定する」をご参照ください。

  • 解決策

    • 並列度を無効にすると、異なるデータタイムスタンプのインスタンスは直列に実行されます。次のデータタイムスタンプのインスタンスは、前のインスタンスが完了した後にのみ開始されます。

    • 並列度を有効にすると、同時実行インスタンス数 (例:2、3、4、または5) を設定して、複数のデータタイムスタンプのデータバックフィルインスタンスを並列実行できます。

    シナリオ例:時間単位または分単位のノードのデータを 1 週間分バックフィルする必要があるとします。

    • ノードに自己依存がある場合、その週のインスタンスは時系列順に実行されます。

    • ノードに自己依存がない場合、各日のすべてのインスタンスは並列実行されます。

インスタンスが保留中 (スケジュール) 状態になる理由

  • 現象

    データをバックフィルするためにデータタイムスタンプを指定しても、インスタンスは実行されません。インスタンスは保留中 (スケジュール) 状態のままで、黄色でハイライト表示されます。

  • 原因

    これは、選択したデータタイムスタンプのスケジュール実行時間が未来の時刻である場合に発生します。

  • 解決策

    これらのインスタンスをすぐに実行するには、[データバックフィル] ダイアログボックスで [現在時刻以降に実行がスケジュールされている遡及インスタンスを実行] オプションを選択します。

    説明
    • 未来の実行時間に対応するデータタイムスタンプを選択し、このチェックボックスを選択しない場合、インスタンスは保留中 (スケジュール) 状態になります。

    • 未来の実行時間に対応するデータタイムスタンプを選択し、このチェックボックスを選択した場合、インスタンスはすぐに実行されます。

昨日または今日のデータバックフィルが保留状態になる理由

  • 現象

    昨日または今日のデータタイムスタンプのデータをバックフィルすると、インスタンスは保留中 (スケジュール) 状態になります。

  • 原因

    プラットフォームのスケジューリングは通常、T+1 モデルに基づいています。つまり、昨日のデータタイムスタンプのデータは、今日のスケジュール実行によって処理されます。特定のデータタイムスタンプのデータをバックフィルするということは、その日付の周期インスタンスを再実行していることになります。

    本日実行がスケジュールされている周期インスタンスを見つけるには、昨日のデータタイムスタンプでフィルタリングする必要があります。[オペレーションセンター] > [周期タスク O&M][周期インスタンス] ページで、[データタイムスタンプ] フィルターを [昨日] に設定すると、対応する周期インスタンスとそのステータスが表示されます。

バックフィルで複数のインスタンスが作成される理由

  • 現象

    00:00 から 01:00 といった時間範囲のデータをバックフィルすると、複数のインスタンスが生成されます。

  • 原因

    生成されるインスタンスの数は、ノードのスケジューリング設定によって異なります。

    • たとえば、時間単位のノードが 00:00 から 23:59 まで毎時実行されるようにスケジュールされている場合、00:00 から 01:00 の時間範囲のデータをバックフィルすると、スケジュールされた実行時間が 00:00 と 01:00 の 2 つのインスタンスが生成されます。

    • 同様に、ノードが 30 分ごとに実行されるようにスケジュールされている場合、00:00 から 01:00 の時間範囲のデータをバックフィルすると、スケジュールされた実行時間が 00:00、00:30、01:00 の 3 つのインスタンスが生成されます。

大規模なバックフィルがリソース待ちで保留になる理由

  • 現象

    大規模なデータバックフィル操作中に、一部のインスタンスが保留中 (リソース) 状態になり、黄色でハイライト表示されます。

  • 原因

    各リソースグループには、ノードを実行するための最大同時実行数の上限があります。同時に実行されているノードの数がこの上限を超えると、新しいインスタンスはキューに入れられ、保留中 (リソース) 状態になります。

    説明

    この問題のトラブルシューティングについては、「リソース待機中」をご参照ください。

「実行時間が範囲外です」というエラーが表示される理由

  • 現象

    データバックフィル中に、トリガーされたノードの実行時間が選択した時間範囲外であるというエラーが発生することがあります。

  • 原因

    このエラーは、ノードの実際のスケジュール実行時間が指定した時間範囲外となるために発生します。時間単位および分単位のノードでは、データバックフィルのために実行時間ウィンドウを指定する必要があります。たとえば、[データバックフィル] ダイアログボックスで、[実行時間ウィンドウを選択]00:00 ~ 01:00 に設定したにもかかわらず、トリガーされたノードが別の時間に実行されるようにスケジュールされている場合、バックフィル操作は失敗します。これを解決するには、ノードのスケジュール実行時間を含めるように実行時間ウィンドウを調整してください。

バックフィルインスタンスが生成されない理由

  • 現象

    ノードのデータバックフィル操作を開始しましたが、バックフィルインスタンスが生成されませんでした。

  • 原因

    データタイムスタンプがノードの有効期間外の場合、インスタンスは生成されません。バックフィルのデータタイムスタンプがノードの有効期間内にあることを確認してください。ノードの [スケジューリング設定] パネルでは、次のような設定を確認できます:[時間属性][通常スケジューリング] に設定、[再実行属性] は選択されていない、[エラー時の自動再実行] は選択されていない、[有効期間] は 1999-09-09 から 1999-10-22 (スケジューリングはこの範囲内でのみ有効)、[スケジューリングの中断] は選択されていない、[スケジュール周期][日次]、スケジュール時刻は 00:19。データバックフィルのデータタイムスタンプが [有効期間] 外の場合、バックフィルインスタンスは生成されません。

週次および月次ノードのバックフィル

  • 説明:週次または月次ノードのデータをバックフィルする場合、データタイムスタンプをスケジュール実行日の前日に設定する必要があります。週または月の特定の日に実行されるようにスケジュールされたノードは、その指定された日にのみ実行されます。他の日にはドライランインスタンスが生成されますが、ノードは実際には実行されません。このようなインスタンスのステータスは、週次または月次のドライラン周期であることを示します。詳細については、「シナリオ1:週次/月次周期のドライラン」をご参照ください。

    説明
    • バックフィルのデータタイムスタンプは次のように計算されます: データタイムスタンプ = スケジュール実行日 - 1 日

    • スケジューリングパラメーター、データタイムスタンプ、スケジュール時刻、および実際の実行時間の関係の詳細については、「スケジューリングパラメーターでサポートされている形式」をご参照ください。

  • 例:月次ノードのデータバックフィル

    [スケジュール周期][月次] に設定され、実行時間が 00 00 00 1 * ? である月次ノードで 2022 年 11 月のデータを処理するには、[データバックフィル] ダイアログボックスで [データタイムスタンプ] の開始日と終了日の両方を 2022-11-30 に設定し、[OK] をクリックします。

並列インスタンス数の上限がバックフィルに与える影響

  • ノードで [最大並列インスタンス数] 設定が有効になっている場合、この上限はデータバックフィルインスタンスと通常の周期インスタンスの両方に適用されます。これらは同じ同時実行クォータを共有します。

  • インスタンスの同時実行数が上限を超えた場合、システムは主に履歴データのバックフィルインスタンス (今日より前のデータタイムスタンプのインスタンス) をスロットリングします。

  • 最大並列インスタンス数の上限は、設定が有効になった後に生成されるインスタンスにのみ適用されます。すでに実行中またはキューにあるインスタンスは影響を受けません。

  • 最大並列インスタンス数の値は 1 から 10,000 の範囲で設定でき、デフォルトは 1 です。