查询 _PARTITIONTIME 只产生一个日期
Querying _PARTITIONTIME only yields a date
我试图在我的摄取时间分区中查询 _PARTITIONTIME table。这样做后,我意识到每一行都产生了一个相同的错误时间戳:2019-02-25 00:00:00 UTC。我试图提取 _PARTITIONTIME 的特定 'parts',但除日期外所有这些都产生了 0。
尽管数据流式传输到 table,但实际上每 10 分钟左右(据我了解)会分批插入一次。作为后续问题,_PARTITIONTIME 何时计算?这个我看到了,但是我只理解了流程,并没有真正计算出来
_PARTITIONTIME
更像是一个 _PARTITIONDATE
- 你不应该期望它包含流式传输记录的确切时间,而是分区所属的日期。
Ingestion-time partitioned tables include a pseudo column named _PARTITIONTIME that contains a date-based timestamp for data that is loaded into the table. https://cloud.google.com/bigquery/docs/partitioned-tables
截至September 21, 2020,每小时时间分区功能是 GA。对于按小时分区的表,BQ 插入默认写入分区小时 00,除非在 insertion/ingestion 时间明确指定要写入的分区。可以使用 $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"
我试图在我的摄取时间分区中查询 _PARTITIONTIME table。这样做后,我意识到每一行都产生了一个相同的错误时间戳:2019-02-25 00:00:00 UTC。我试图提取 _PARTITIONTIME 的特定 'parts',但除日期外所有这些都产生了 0。
尽管数据流式传输到 table,但实际上每 10 分钟左右(据我了解)会分批插入一次。作为后续问题,_PARTITIONTIME 何时计算?这个我看到了
_PARTITIONTIME
更像是一个 _PARTITIONDATE
- 你不应该期望它包含流式传输记录的确切时间,而是分区所属的日期。
Ingestion-time partitioned tables include a pseudo column named _PARTITIONTIME that contains a date-based timestamp for data that is loaded into the table. https://cloud.google.com/bigquery/docs/partitioned-tables
截至September 21, 2020,每小时时间分区功能是 GA。对于按小时分区的表,BQ 插入默认写入分区小时 00,除非在 insertion/ingestion 时间明确指定要写入的分区。可以使用 $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"