データ保持期間
指定した保持期間を過ぎたデータを自動的に削除します。
保持期間と削除間隔を指定した保持ポリシーを作成し、ALTER 文でテーブルに適用、または適用を解除できます。
保持ポリシーの作成
保持期間と削除間隔を指定して RETENTION POLICY を作成します。
保持期間の単位には、月、日、時、分、秒を指定できます。 削除間隔の単位には、日、時、分、秒を指定できます。
ポリシー情報は M$RETENTION テーブルで確認できます。
構文:
CREATE RETENTION policy_name DURATION duration {MONTH|DAY|HOUR|MIN|SEC} INTERVAL interval {DAY|HOUR|MIN|SEC}- policy_name:作成するポリシー名
- duration:データの保持期間(システム時刻を基準とする)
- interval:保持期間を確認する間隔
例:
-- 1 日より古いデータを 1 時間ごとに削除する。
Mach> CREATE RETENTION policy_1d_1h DURATION 1 DAY INTERVAL 1 HOUR;
Executed successfully.
-- 1 か月より古いデータを 3 日ごとに削除する。
Mach> CREATE RETENTION policy_1m_3d DURATION 1 MONTH INTERVAL 3 DAY;
Executed successfully.
-- 短い間隔も指定できる。
Mach> CREATE RETENTION policy_30s_3s DURATION 30 SEC INTERVAL 3 SEC;
Executed successfully.
Mach> SELECT * FROM M$RETENTION;
USER_ID POLICY_NAME DURATION INTERVAL
-----------------------------------------------------------------------------------------------------
1 POLICY_1D_1H 86400 3600
1 POLICY_1M_3D 2592000 259200
1 POLICY_30S_3S 30 3
[3] row(s) selected.保持ポリシーの適用
作成済みの RETENTION POLICY をテーブルに適用します。
適用後は、削除間隔ごとに保持期間を確認し、期間を過ぎたデータを削除します。
適用先のテーブル情報は V$RETENTION_JOB テーブルで確認できます。
構文:
ALTER TABLE table_name ADD RETENTION policy_name- table_name:適用先のテーブル名
- policy_name:適用するポリシー名
例:
Mach> CREATE TAG TABLE tag (name VARCHAR(20) PRIMARY KEY, time DATETIME BASETIME, value DOUBLE SUMMARIZED);
Executed successfully.
Mach> ALTER TABLE tag ADD RETENTION policy_1d_1h;
Altered successfully.
Mach> SELECT * FROM V$RETENTION_JOB;
USER_NAME TABLE_NAME
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
POLICY_NAME STATE LAST_DELETED_TIME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SYS TAG
POLICY_1D_1H WAITING NULL
[1] row(s) selected.保持ポリシーの適用解除
テーブルに適用した RETENTION POLICY を解除します。
解除後は、このポリシーによる自動削除は行われず、データは永続的に保持されます。
構文:
ALTER TABLE table_name DROP RETENTION;- table_name:適用を解除するテーブル名
例:
Mach> ALTER TABLE tag DROP RETENTION;
Altered successfully.保持ポリシーの削除
ポリシーを適用中のテーブルがある場合、そのポリシーは削除できません。
先にテーブルへの適用を解除してから、ポリシーを削除してください。
構文:
DROP RETENTION policy_name- policy_name:削除するポリシー名
例:
Mach> ALTER TABLE tag ADD RETENTION policy_1d_1h;
Altered successfully.
-- エラー
Mach> DROP RETENTION policy_1d_1h;
[ERR-02702: Policy (POLICY_1D_1H) is in use.]
Mach> ALTER TABLE tag DROP RETENTION;
Altered successfully.
-- 成功
Mach> DROP RETENTION policy_1d_1h;
Dropped successfully.最終更新日