動的テーブルリフレッシュを管理する

動的テーブルのリフレッシュは、以下の操作を使用して制御できます。

タスク

説明

中断

動的テーブルのリフレッシュを中断します。

再開

中断された動的テーブルのリフレッシュを再開します。

手動でリフレッシュする

動的テーブルの手動リフレッシュをトリガーします。

動的テーブルのラグを変更する

動的テーブルのラグを変更または指定します。

動的テーブルは自動中断になる可能性があります。詳細については、このトピックの後半にある 自動中断の動作について をご参照ください。

以下の図は、中断、再開、および手動リフレッシュの操作を他の動的テーブルとの上流と下流の関係で表しています。

Relationship between dynamic tables. Used to help explain suspend, resume, and manual refresh.

この図は、動的テーブルで構築されたシンプルな宣言型データパイプラインを示しています。動的テーブル DTRoot はパイプラインの開始点です。小川を流れる水と同じように、動的テーブルパイプラインのデータは、ルートから下流にある末端の動的テーブル DTEnd に向かって流れます。

  • DT2 は、 DT1 の 下流 として説明されます(その動的テーブルに依存するため)。また、 DT3 の 上流 として説明されます(その動的テーブルに依存するため)。

  • DT3 は、DT2 と DT1 の両方の下流にあります。これは、DT2 に直接依存し、 DT1 に間接的に依存するためです。

  • DT1 は他の動的テーブルの直接的または間接的な上流にあります。

中断

中断は、動的テーブルのリフレッシュを停止、または 中断 します。

重要

中断は、下流の動的テーブルにカスケードします。

関係図では、 DT1 を中断すると DT2 も中断され、それにより DT3 も中断されます。

動的テーブルの状態の表示に関する情報については、 使用上の注意 をご参照ください。

  • 動的テーブルのリフレッシュを中断するには、

    ALTER DYNAMIC TABLE <name> SUSPEND;
    
    Copy

ALTER DYNAMIC TABLE コマンドの完全な構文については、 ALTER DYNAMIC TABLE をご参照ください。

再開

再開は、動的テーブルのリフレッシュを再度開始、または 再開 します。

重要

再開は、手動で中断されていない下流の動的テーブルにカスケードします。

関係図では、 DT1 を再開すると DT2 も再開され、それにより DT3 も再開されます。

この方法で再開されるのは、暗黙的に中断された動的テーブルのみです。手動で中断した動的テーブルは、上流の動的テーブルが再開されたときに再開されません。

動的テーブルの状態 の表示に関する情報については、 動的テーブルのリストと動的テーブルの情報の表示 をご参照ください。

  • 動的テーブルのリフレッシュを再開するには、

    ALTER DYNAMIC TABLE product RESUME;
    
    Copy

手動でリフレッシュする

手動で動的テーブルのリフレッシュをトリガーします。

重要

手動リフレッシュはすべての上流の動的テーブルにカスケードされます。

関係図では、 DT3 を手動でリフレッシュすると DT2 もリフレッシュされ、それにより DT1 もリフレッシュされます。

  • 動的テーブルを手動でリフレッシュするには、

    ALTER DYNAMIC TABLE <name> REFRESH;
    
    Copy

動的テーブルのラグを変更する

動的テーブルが他の動的テーブルに基づいている場合は、 TARGET_LAG = DOWNSTREAM を指定できます。DOWNSTREAM を指定すると、動的テーブルはその下流の動的テーブルのラグに基づいてリフレッシュされます。

TARGET_LAG = DOWNSTREAM の追加の詳細と例については、 ターゲットラグについて をご参照ください。

  • 動的テーブルの DOWNSTREAM ラグを指定します。

    ALTER DYNAMIC TABLE <name> SET TARGET_LAG = DOWNSTREAM;
    
    Copy

動的テーブルを定期的にリフレッシュして 鮮度 を特定のレベルに維持する必要がある場合は、 TARGET_LAG = {num} { seconds | minutes | hours | days } を指定できます。

ALTER DYNAMIC TABLE <name> SET TARGET_LAG = '1 hour';
Copy

自動中断の動作について

注釈

リフレッシュエラーが5回続くと、動的テーブルは中断されます。リフレッシュエラーによって中断される動的テーブルは、ユーザーのアクションではなくシステムによって中断されるため、一般的に 自動中断 と呼ばれます。

中断された動的テーブルに依存する動的テーブルも中断されます。SCHEDULING_STATE は動的テーブルの現在の状態を説明します。

  • 動的テーブルのスケジューリング状態を表示するには、 DYNAMIC_TABLE_GRAPH_HISTORY テーブル関数を呼び出し、 SCHEDULING_STATE 列を調べます。