動的テーブルリフレッシュを管理する¶
動的テーブルのリフレッシュは、以下の操作を使用して制御できます。
タスク |
説明 |
---|---|
動的テーブルのリフレッシュを中断します。 |
|
中断された動的テーブルのリフレッシュを再開します。 |
|
動的テーブルの手動リフレッシュをトリガーします。 |
|
動的テーブルのラグを変更または指定します。 |
動的テーブルは自動中断になる可能性があります。詳細については、このトピックの後半にある 自動中断の動作について をご参照ください。
以下の図は、中断、再開、および手動リフレッシュの操作を他の動的テーブルとの上流と下流の関係で表しています。
この図は、動的テーブルで構築されたシンプルな宣言型データパイプラインを示しています。動的テーブル DTRoot はパイプラインの開始点です。小川を流れる水と同じように、動的テーブルパイプラインのデータは、ルートから下流にある末端の動的テーブル DTEnd に向かって流れます。
DT2 は、 DT1 の 下流 として説明されます(その動的テーブルに依存するため)。また、 DT3 の 上流 として説明されます(その動的テーブルに依存するため)。
DT3 は、DT2 と DT1 の両方の下流にあります。これは、DT2 に直接依存し、 DT1 に間接的に依存するためです。
DT1 は他の動的テーブルの直接的または間接的な上流にあります。
中断¶
中断は、動的テーブルのリフレッシュを停止、または 中断 します。
重要
中断は、下流の動的テーブルにカスケードします。
関係図では、 DT1 を中断すると DT2 も中断され、それにより DT3 も中断されます。
動的テーブルの状態の表示に関する情報については、 使用上の注意 をご参照ください。
動的テーブルのリフレッシュを中断するには、
ALTER DYNAMIC TABLE <name> SUSPEND;
ALTER DYNAMIC TABLE コマンドの完全な構文については、 ALTER DYNAMIC TABLE をご参照ください。
再開¶
再開は、動的テーブルのリフレッシュを再度開始、または 再開 します。
重要
再開は、手動で中断されていない下流の動的テーブルにカスケードします。
関係図では、 DT1 を再開すると DT2 も再開され、それにより DT3 も再開されます。
この方法で再開されるのは、暗黙的に中断された動的テーブルのみです。手動で中断した動的テーブルは、上流の動的テーブルが再開されたときに再開されません。
動的テーブルの状態 の表示に関する情報については、 動的テーブルのリストと動的テーブルの情報の表示 をご参照ください。
動的テーブルのリフレッシュを再開するには、
ALTER DYNAMIC TABLE product RESUME;
手動でリフレッシュする¶
手動で動的テーブルのリフレッシュをトリガーします。
重要
手動リフレッシュはすべての上流の動的テーブルにカスケードされます。
関係図では、 DT3 を手動でリフレッシュすると DT2 もリフレッシュされ、それにより DT1 もリフレッシュされます。
動的テーブルを手動でリフレッシュするには、
ALTER DYNAMIC TABLE <name> REFRESH;
動的テーブルのラグを変更する¶
動的テーブルが他の動的テーブルに基づいている場合は、 TARGET_LAG = DOWNSTREAM
を指定できます。DOWNSTREAM を指定すると、動的テーブルはその下流の動的テーブルのラグに基づいてリフレッシュされます。
TARGET_LAG = DOWNSTREAM
の追加の詳細と例については、 ターゲットラグについて をご参照ください。
動的テーブルの DOWNSTREAM ラグを指定します。
ALTER DYNAMIC TABLE <name> SET TARGET_LAG = DOWNSTREAM;
動的テーブルを定期的にリフレッシュして 鮮度 を特定のレベルに維持する必要がある場合は、 TARGET_LAG = {num} { seconds | minutes | hours | days }
を指定できます。
ALTER DYNAMIC TABLE <name> SET TARGET_LAG = '1 hour';
自動中断の動作について¶
注釈
リフレッシュエラーが5回続くと、動的テーブルは中断されます。リフレッシュエラーによって中断される動的テーブルは、ユーザーのアクションではなくシステムによって中断されるため、一般的に 自動中断 と呼ばれます。
中断された動的テーブルに依存する動的テーブルも中断されます。SCHEDULING_STATE は動的テーブルの現在の状態を説明します。
動的テーブルのスケジューリング状態を表示するには、 DYNAMIC_TABLE_GRAPH_HISTORY テーブル関数を呼び出し、 SCHEDULING_STATE 列を調べます。