Bigquery Python API 按特定字段创建分区表

Posted

技术标签:

【中文标题】Bigquery Python API 按特定字段创建分区表【英文标题】:Bigquery Python API create partitioned table by specific field 【发布时间】:2018-07-11 10:33:19 【问题描述】:

我需要在 Bigquery 中创建一个按特定字段分区的表。我注意到这只能通过 API Rest 获得。有没有办法通过 Python API 做到这一点?

有什么帮助吗?

【问题讨论】:

使用CREATE TABLE statement。 【参考方案1】:

我的猜测是文档还没有更新(并不是滚动一个 http 请求和调用 API 无论如何都很难),因为如果您查看 BigQuery Python 客户端库的 code,它确实似乎支持在创建分区表时指定字段:

【讨论】:

【参考方案2】:

扩展 Graham Polley 的回答:您可以通过设置 time_partitioning 属性来设置它。

类似这样的:

import google.cloud.bigquery as bq
bq_client = bq.Client()
dataset = bq_client.dataset('dataset_name')
table = dataset.table('table_name')
table = bq.Table(table, schema=[
  bq.SchemaField('timestamp', 'TIMESTAMP', 'REQUIRED'),
  bq.SchemaField('col_name', 'STRING', 'REQUIRED')])

table.time_partitioning = bq.TimePartitioning(field='timestamp')

bq_client.create_table(table)

【讨论】:

以上是关于Bigquery Python API 按特定字段创建分区表的主要内容,如果未能解决你的问题,请参考以下文章

用于读取记录数组的 BigQuery Java API:“不支持按名称检索字段值”异常

使用 Python API 使用 RECORD 字段更新 BigQuery 架构

Bigquery 如果字段存在

如何使用 BigQuery Python API 附加查询结果

Python Google BigQuery 参数化 SELECT

BigQuery:如何获取列中特定字段的值?