mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-16 03:12:43 +00:00
2.9 KiB
2.9 KiB
slug | sidebar_position | sidebar_label |
---|---|---|
/ja/sql-reference/statements/alter/ttl | 44 | TTL |
テーブルのTTL操作
:::note 古いデータを管理するためのTTLの使用に関する詳細をお探しの場合は、TTLでデータを管理するユーザーガイドを参照してください。以下のドキュメントでは、既存のTTLルールを変更または削除する方法を示しています。 :::
MODIFY TTL
テーブルTTLを以下の形式のリクエストで変更できます:
ALTER TABLE [db.]table_name [ON CLUSTER cluster] MODIFY TTL ttl_expression;
REMOVE TTL
テーブルからTTLプロパティを削除するには、以下のクエリを使用します:
ALTER TABLE [db.]table_name [ON CLUSTER cluster] REMOVE TTL
例
テーブルTTL
がある場合:
CREATE TABLE table_with_ttl
(
event_time DateTime,
UserID UInt64,
Comment String
)
ENGINE MergeTree()
ORDER BY tuple()
TTL event_time + INTERVAL 3 MONTH
SETTINGS min_bytes_for_wide_part = 0;
INSERT INTO table_with_ttl VALUES (now(), 1, 'username1');
INSERT INTO table_with_ttl VALUES (now() - INTERVAL 4 MONTH, 2, 'username2');
OPTIMIZE
を実行してTTL
のクリーンアップを強制する:
OPTIMIZE TABLE table_with_ttl FINAL;
SELECT * FROM table_with_ttl FORMAT PrettyCompact;
2行目はテーブルから削除されました。
┌─────────event_time────┬──UserID─┬─────Comment──┐
│ 2020-12-11 12:44:57 │ 1 │ username1 │
└───────────────────────┴─────────┴──────────────┘
以下のクエリでテーブルTTL
を削除します:
ALTER TABLE table_with_ttl REMOVE TTL;
削除された行を再挿入し、OPTIMIZE
で再度TTL
のクリーンアップを強制します:
INSERT INTO table_with_ttl VALUES (now() - INTERVAL 4 MONTH, 2, 'username2');
OPTIMIZE TABLE table_with_ttl FINAL;
SELECT * FROM table_with_ttl FORMAT PrettyCompact;
TTL
はもう存在しないため、2行目は削除されません:
┌─────────event_time────┬──UserID─┬─────Comment──┐
│ 2020-12-11 12:44:57 │ 1 │ username1 │
│ 2020-08-11 12:44:57 │ 2 │ username2 │
└───────────────────────┴─────────┴──────────────┘
関連項目