我的 table 是否根据我的日期时间列正确分区?

Is my table partitioned correctly based on my datetime column?

我有一个 分区的 table,其中的日期时间列 如下所示:

日期时间列包括日期、小时、分钟和秒,每一行都有不同的日期时间列(区别主要在于秒、分钟和小时)

table 在 datetime 列上分区如下:

我的问题是 - 因为每一行都有不同的日期时间列,并且日期时间没有四舍五入到小时而是包括秒和分钟,我的 table 是否仍然正确分区?

因此,如果行的日期时间如下:

2021-11-19T01:00:00
2021-11-19T02:00:00
2021-11-19T03:00:00
...

那么我很确定 table 将被正确分区,但这些行的日期时间如下:

2021-11-19T01:25:01
2021-11-19T02:11:50
2021-11-19T03:00:21
...

有问题吗?尽管有秒和分钟(这会导致所有行具有不同的日期时间值),我的 table 是否正确分区?

一切都很好,您的 table 已按照您希望的方式进行分区。

您所描述的正是 Partitioned by 专栏的目的。当 BigQuery 为每条记录选择分区时,它会有效地将分钟和秒替换为 0。

要特别清楚,如果你传入 2021-11-19T02:11:50 那么它将被放置在 2021-11-19T02:00:00 分区中。

如果您想查看分区以验证这一点,那么您可以 运行:

SELECT
  *
FROM `<PROJECT>.<DATASET>.INFORMATION_SCHEMA.PARTITIONS`
WHERE table_name = '<TABLE_NAME>'