【问题标题】:Is my table partitioned correctly based on my datetime column?我的表是否根据我的日期时间列正确分区?
【发布时间】:2021-12-30 07:26:36
【问题描述】:

我有一个 带有日期时间列的分区表,如下所示:

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

该表在 datetime 列上进行分区,如下所示:

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

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

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

那么我很确定表会正确分区,但行的日期时间如下:

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

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

【问题讨论】:

    标签: google-bigquery partitioning partition


    【解决方案1】:

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

    您所描述的正是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>'
    

    【讨论】:

      猜你喜欢
      • 2019-08-22
      • 2012-12-14
      • 2020-07-03
      • 2019-03-21
      • 2019-07-28
      • 2019-06-03
      • 1970-01-01
      • 2021-03-11
      • 2020-02-23
      相关资源
      最近更新 更多