是否可以为 BigQuery 中的记录设置过期时间

Is it possible to set expiration time for records in BigQuery

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

解决方案一:

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

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

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

或者如果您有一个 table 已按右列

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

When a partition expires, BigQuery deletes the data in that partition.

方案二:

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

方案三:

如果您有更大的业务流程,需要根据其他外部因素(例如 API 响应和条件评估)进行 90 天修剪,您可以利用 Cloud Workflows 定期构建和调用工作流程以实现自动化修剪您的数据。请参阅 Automate the execution of BigQuery queries with Cloud Workflows 文章,它可以为您提供指导。