あるアクションテーブルをジョブフローから全件削除することはできますか?

アクションテーブルは、パフォーマンス上の問題から、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

注意点

  • 一時的に古いレコードが残る可能性があるため、アクションに影響がある場合はアクションテーブル参照時にフィルタリングしてください