BigQuery 客户端 python 获取基于列的分区列名

BigQuery client python get column based partitioning column name

我希望在现有查询中包含一个 where 子句,以排除 BigQuery 流缓冲区中的数据。

为此,我想获取分区列名称,以便我可以添加

WHERE partition_column IS NOT NULL;

到我现有的查询。

我一直在查看 CLI 和 get_table 方法,但只是 returns 列的值而不是列名。 在 .INFORMATION_SCHEMA.PARTITIONS 这个 returns 字段上搜索 partition_id 时,我得到了同样的结果,但我更喜欢列名本身,有没有办法得到这个?

此外 table 设置了基于列的分区。

基于pythonBigQuery client documentation,使用属性time_partitioning:

from google.cloud import bigquery
bq_table = client.get_table('my_partioned_table')
bq_table.time_partitioning # TimePartitioning(field='column_name',type_='DAY')
bq_table.time_partitioning.field # column_name

小提示,如果不知道去哪里搜索,打印API repr:

bq_table.to_api_repr()