【发布时间】:2018-07-13 10:50:28
【问题描述】:
尊敬的 Cloud Spanner 支持
Google Cloud Spanner 表上是否有 TTL(生存时间)选项。
如果是,请提供任何其他信息
谢谢 斯里尼
【问题讨论】:
标签: google-cloud-platform google-cloud-spanner
尊敬的 Cloud Spanner 支持
Google Cloud Spanner 表上是否有 TTL(生存时间)选项。
如果是,请提供任何其他信息
谢谢 斯里尼
【问题讨论】:
标签: google-cloud-platform google-cloud-spanner
抱歉,目前不支持。建议将此作为功能请求提交给Google Public Issue Tracker 的工程团队。
【讨论】:
截至21-July-2021,Cloud Spanner 通过ROW DELETION POLICY clause of CREATE TABLE 或ADD DELETION POLICY clause of ALTER TABLE 支持表TTL(在公共预览版中)
有关更多信息,请参阅Cloud Documentation。
CREATE TABLE MyTable(
Key INT64,
CreatedAt TIMESTAMP,
) PRIMARY KEY (Key)
, ROW DELETION POLICY (OLDER_THAN(CreatedAt, INTERVAL 30 DAY));
【讨论】:
假设我们有以下场景:
你有一个说 load_date 的表,当load_date < now - 30 时应该删除数据
您可以创建仅包含一列 load_date 的父表(如果需要,还可以在这一天添加一些额外的统计信息) - 在此之后,您可以创建包含所有信息和级联删除的交错子表
因此,当您需要清理子表时,您只需从父表中删除一条记录,所有相关数据将自动从子表中删除
CREATE TABLE parent (
parent_id STRING(MAX) NOT NULL,
load_time TIMESTAMP
) PRIMARY KEY(parent_id);
CREATE TABLE child (
parent_id STRING(MAX) NOT NULL,
child_id INT64 NOT NULL,
data_1 STRING(MAX) NOT NULL,
data_2 INT64 NOT NULL
) PRIMARY KEY(parent_id, child_id),
INTERLEAVE IN PARENT parent ON DELETE CASCADE;
【讨论】: