基于日期/时间字段的分区的分区到期倒计时

Posted

技术标签:

【中文标题】基于日期/时间字段的分区的分区到期倒计时【英文标题】:Partition expiry countdown for date/time field based partition 【发布时间】:2021-05-06 13:11:20 【问题描述】:

截至 2021 年 5 月,Google Big Query 文档没有明确提及时间/日期字段分区表的分区到期倒计时何时开始? 分区本身的日期/时间是分区到期倒计时的开始,还是在分区创建时开始到期倒计时?

例如,如果创建如下表

CREATE TABLE IF NOT EXISTS `project_id.dataset_name.table_name`
(
    dateTime    TIMESTAMP NOT NULL
    , trainName STRING
    , fleet     STRING
    , customer  STRING
)
PARTITION BY DATE(dateTime)
OPTIONS (
    partition_expiration_days = 3
)

因此,如果表是在每月 5 日创建的,但在插入数据时,如果插入了该月 1 日的数据(对于字段 dateTime),那么该数据是否已经过期插入?还是会在同月 9 日到期?

对于基于摄取的分区,不会出现这种混淆,因为摄取时间戳本身就是一个分区时间戳。

参考资料:

Create a time-unit column-partitioned table Updating default partition expiration times Use the expiration settings to remove unneeded tables and partitions

【问题讨论】:

【参考方案1】:

该数据将在插入时过期。分区本身的日期/时间是分区到期倒计时的开始。因此,当月 1 日的数据不会出现在表格中。

【讨论】:

以上是关于基于日期/时间字段的分区的分区到期倒计时的主要内容,如果未能解决你的问题,请参考以下文章

js实现拍简单倒计时功能

基于 TIMESTAMP 列的分区的 BigQuery 分区到期

需要关于基于非日期列和日期分区在 bigquery 中拆分表的建议

前端处理订单倒计时显示问题

基于计时器的 HTML JavaScript 条件 href 链接

sql server2008对字符串日期字段分区