【问题标题】:Is Google Cloud Spanner table have any TTL(Time to Live) setup for required data or tableGoogle Cloud Spanner 表是否为所需数据或表设置了任何 TTL(生存时间)
【发布时间】:2018-07-13 10:50:28
【问题描述】:

尊敬的 Cloud Spanner 支持

Google Cloud Spanner 表上是否有 TTL(生存时间)选项。

如果是,请提供任何其他信息

谢谢 斯里尼

【问题讨论】:

    标签: google-cloud-platform google-cloud-spanner


    【解决方案1】:

    抱歉,目前不支持。建议将此作为功能请求提交给Google Public Issue Tracker 的工程团队。

    【讨论】:

    【解决方案2】:

    截至21-July-2021,Cloud Spanner 通过ROW DELETION POLICY clause of CREATE TABLEADD 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));
    

    【讨论】:

    • “现在可以了。”我想我知道你的意思。但请让这一点更明显。我建议提及添加它的版本。
    【解决方案3】:

    假设我们有以下场景: 你有一个说 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;
    

    【讨论】:

    • 它提供了一种在spanner中添加不存在的TTL功能的方法(或者至少可以轻松解决基于TTL的大量数据删除问题)
    猜你喜欢
    • 2017-07-05
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 2017-10-24
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多