Google bigquery BigQuery、日期分区表和decorator

Google bigquery BigQuery、日期分区表和decorator,google-bigquery,decorator,Google Bigquery,Decorator,我熟悉使用表装饰器来查询表,例如,一周前查询表或查询在特定日期范围内插入的数据 引入日期分区表后,显示了一个名为\u PARTITIONTIME的伪列。使用日期装饰器语法,可以将记录添加到表中的某个分区 我想知道在幕后是否也使用了伪列\u PARTITIONTIME来支持表装饰器或类似的东西 如果是,是否可以访问/更改它,就像我们对分区表的伪列所做的那样 它叫\u PARTITIONTIME还是\u INSERTIONTIME?当然,两者都不起作用。:) 首先检查是否确实通过读取分区对表进行了分

我熟悉使用表装饰器来查询表,例如,一周前查询表或查询在特定日期范围内插入的数据

引入日期分区表后,显示了一个名为
\u PARTITIONTIME
的伪列。使用日期装饰器语法,可以将记录添加到表中的某个分区

我想知道在幕后是否也使用了伪列
\u PARTITIONTIME
来支持表装饰器或类似的东西

如果是,是否可以访问/更改它,就像我们对分区表的伪列所做的那样


它叫
\u PARTITIONTIME
还是
\u INSERTIONTIME
?当然,两者都不起作用。:)

首先检查是否确实通过读取分区对表进行了分区

 SELECT TIMESTAMP(partition_id)
  FROM [dataset.partitioned_table$__PARTITIONS_SUMMARY__]
如果不是,您将得到错误:
无法从未分区的表中读取分区信息

然后是另一个重要步骤:要选择
\u PARTITIONTIME
的值,必须使用别名

SELECT
  _PARTITIONTIME AS pt,
  field1
FROM
  mydataset.table1
但当您在非强制的地方使用时,仅当它在select中时才使用

#legacySQL
SELECT
  field1
FROM
  mydataset.table1
WHERE
  _PARTITIONTIME > DATE_ADD(TIMESTAMP('2016-04-15'), -5, "DAY")

您可以使用decorator始终引用一个分区表:
mydataset.table$20160519

谢谢。您描述了分区表中_PARTITIONTIME的主要用法。我想问一下表装饰器的等价物,它允许我们根据记录的插入时间来访问记录。它是否也围绕隐藏/伪列旋转?可以去吗?怎么用?谢谢没有为表装饰器记录任何实现细节,所以这个问题无法回答,但很可能他们没有使用您可以修改的列。