-1

是否可以为 BigQuery 中的列设置生存时间?如果 payment_details 和 timestamp 表中有两条记录,如果时间戳为当前时间,则 BigQuery 表中的数据应自动删除 - 时间戳大于 90 天。

4

1 回答 1

1

解决方案1:

BigQuery 具有分区过期功能。您可以将其用于您的用例。

本质上,您需要创建一个分区表,并将partition_expiration_days选项设置为 90 天。

CREATE TABLE
  mydataset.newtable (transaction_id INT64, transaction_date DATE)
PARTITION BY
  transaction_date
OPTIONS(
  partition_expiration_days=90
)

或者如果您的表已经按右列分区

ALTER TABLE mydataset.mytable
 SET OPTIONS (
   -- Sets partition expiration to 90 days
   partition_expiration_days=90
 )

当分区过期时,BigQuery 会删除该分区中的数据。

解决方案2:

您可以设置一个计划查询,该查询将每小时/每天修剪超过 90 天的数据。通过编写“删除”查询,您可以更好地控制实际组合其他业务逻辑,例如只删除重复的行,但保留最近的条目,即使它超过 90 天。

解决方案3:

如果您有更大的业务流程根据其他外部因素(如 API 响应和条件评估)进行 90 天修剪,您可以利用 Cloud Workflows 定期构建和调用工作流来自动修剪数据。请参阅使用 Cloud Workflows 自动执行 BigQuery 查询一文,该文章可以为您提供指导。

于 2021-09-16T11:21:08.063 回答