python - 如何在各自分区上插入历史数据

标签 python google-bigquery

我有一个数据库,其记录可以追溯到 2014 年,我必须将其迁移到 BigQuery,并且我认为使用分区表功能将有助于提高数据库的性能。

到目前为止,我通过 Web UI 加载了一小部分真实数据样本,虽然表已经分区,但所有数据都转到一个分区,其中包含我运行查询的日期,这是预期的,公平地说。

我搜索了文档站点并遇到了 this ,我不确定这是否是我正在寻找的。

我有两个问题:

1) 在上面的示例中,他们在 SELECT 上使用了装饰器查询,但我可以在 INSERT 上使用它吗?还查询?

2) 我正在使用 Python client连接到 BigQuery API,我发现 table.insert_data方法,我找不到任何专门指在分区中插入的内容,我想知道我是否错过了它,或者我将不得不使用查询 API 来插入数据。

最佳答案

对此进行了更多调查:

1) 我认为我根本没有成功运行 INSERT 查询,但这对我来说毫无意义,因为..

2) 事实证明,可以使用 Python 客户端直接插入分区,但这对我来说并不明显:

我使用此代码片段将一些数据插入表中:

from google.cloud import bigquery

items = [
    (1, 'foo'),
    (2, 'bar')
]
client = bigquery.Client()
dataset = client.dataset('<dataset>')
table = dataset.table('<table_name>')
table.reload()
print table.insert_data(items)

关键是将 $ 和日期(例如 20161201)附加到选择器中的表名称,如下所示:

table = dataset.table('<table_name>$20161201')

它应该插入正确的分区。

关于python - 如何在各自分区上插入历史数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40788059/

相关文章:

python - Docker Nginx 不监听浏览器

python - 谷歌 Bigquery 存储 : DeadlineExceeded Error when reading to_dataframe

python - Sklearn NN 回归 出勤预测

google-bigquery - 在BigQuery中拆分字符串列

google-bigquery - 有没有办法增加 BigQuery 中查询的分配内存?

database - 如何将特定日期格式加载到 BigQuery 中

java - 将 PCollection<TableRow> 导出为具有未知标题的 CSV/具有未知架构的表

python - Python打印包含汉字的列表

java - 如何重命名 h2o POJO?

python - 改进从 0 以外的索引开始迭代 python 列表中每个项目的代码