CREATE TABLE project.dataset.table
PARTITION BY DATE(_PARTITIONTIME)
OPTIONS(
partition_expiration_days=180,
require_partition_filter=true
) AS
SELECT *
FROM `project.dataset.source_table`
在此示例中,_PARTITIONTIME
将表按日期分区。partition_expiration_days
参数指定保留分区数据的天数。如果不指定,则默认为7天。require_partition_filter
参数指定分区过滤器是否是查询的必需部分。如果将此参数设置为true,则查询必须包含至少一个分区过滤器,否则将发生错误。
SELECT COUNT(*)
FROM project.dataset.table
此查询将返回表中的行数。如果表中没有行,则表示数据未被成功写入。
Ingestion time partitioned Table
中使用 _PARTITIONTIME
而不是 timestamp
或 date
字段。以下是示例查询:SELECT *
FROM project.dataset.table
WHERE _PARTITIONTIME = DATE('2022-01-01')
在此示例中,查询将返回在2022年1月1日这一天插入的所有数据。
如果表被正确创建并且数据已成功写入,但仍无法查询,请考虑其他可能的问题,例如查询使用时间范围的语法错误。