查询_PARTITIONTIME仅产生日期

时间:2019-02-25 17:48:26

标签: google-bigquery partitioning

我尝试在提取时间分区表中查询_PARTITIONTIME。这样做之后,我意识到每一行都产生了相同的错误时间戳:2019-02-25 00:00:00 UTC。我尝试提取_PARTITIONTIME的特定“部分”,但除日期外所有其他部分均产生0。

尽管数据流式传输到表中,但实际上每10分钟左右就批量插入一次(据我了解)。作为后续问题,何时计算_PARTITIONTIME?我看到了这个post,但我只了解流程,而不是实际计算的时间。

2 个答案:

答案 0 :(得分:1)

_PARTITIONTIME更像是_PARTITIONDATE-您不应期望它包含记录流式传输的确切时间,而是分区所属的日期。

  

摄取时间分区表包括一个名为_PARTITIONTIME的伪列,其中包含用于加载到表中的数据的基于日期的时间戳。 https://cloud.google.com/bigquery/docs/partitioned-tables

答案 1 :(得分:0)

September 21, 2020 起,每小时时间分区功能为 GA。对于按小时分区的表,BQ 插入默认写入分区小时 00,除非在插入/摄取时间明确指定要写入的分区。可以使用 $YYYYMMDDHH 或沿着 SQL 语句的行指定分区:

INSERT INTO
  project_id.dataset.mytable (
    _PARTITIONTIME,
    field1,
    field2)
SELECT
  TIMESTAMP_TRUNC(TIMESTAMP "2008-12-25 15:30:00+00", HOUR, "UTC"),
  1,
  "one"