是否可以为 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 文章,它可以为您提供指导。
是否可以为 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 文章,它可以为您提供指导。