あるアクションテーブルをジョブフローから全件削除することはできますか?
アクションテーブルは、パフォーマンス上の問題から、UPSERTによる更新しかサポートされていません。そのため、直接的にジョブフロー経由の全件削除を実現することはできません。
代わりに、レコードを削除する仕組みが用意されています。詳しくは以下をご覧ください。
ジョブフローを日次で連携している場合の運用例
日次でアクションテーブルを更新する場合に古いレコードを自動削除したい場合、以下のような設定で実現できます。
- 対象のアクションテーブルにexpired_atカラムを用意する
- expired_atを、ジョブフロー実行時に「次回ジョブフロー実行日時以降の値」で毎回更新する
- たとえば、「クエリ実行時から25時間後」など
これにより、expired_atが新しい値で更新されたレコードだけを残して他のレコードが自動削除されます。
クエリサンプル
SELECT
sample_id
, sample_name
, TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL 1439 MINUTE) AS expired_at -- 次ジョブ実行時(約24h後)に自動削除
FROM
sample_table
注意点
- 一時的に古いレコードが残る可能性があるため、アクションに影響がある場合はアクションテーブル参照時にフィルタリングしてください
Updated 12 months ago