在 Bigquery 中的分区表上插入查询
Posted
技术标签:
【中文标题】在 Bigquery 中的分区表上插入查询【英文标题】:Insert query on Partitioned tables in Bigquery 【发布时间】:2017-12-19 15:12:28 【问题描述】:我有一些在 hive 中编写的插入查询要在 Bigquery 中迁移。 例如:
insert into test.abc partition(yrmth) select * from test.xyz
在 Bigquery 中,仅支持YYYYMMDD
格式的分区。通过加载test.abc$20171125
,我可以通过 BQ 命令行工具转储分区表中的数据。
如何在 Bigquery 中使用 DML 语句实现相同的目的?
我了解到 Legacy SQL 不支持编写 DML 语句,Standard SQL 不支持像 test.abc$20171125
这样的表规范,这是在相应分区中加载数据所需的。
【问题讨论】:
见issuetracker.google.com/issues/36383555 【参考方案1】:您是正确的 - 分区表尚不支持 DML 语句。
只需简单地选择select * from test.xyz
和目标表test.abc$20171125
。 Web UI、bq 命令行、API 和您选择的任何客户端都支持此功能
如果您想尝试alpha release for column based partitioned tables
,请查看https://issuetracker.google.com/issues/36383555 - DML over partitioned tables
是其中的一部分
【讨论】:
只是一个问题:您不能通过将值插入 _PARTITIONTIME 列来创建/附加到所需的分区来做同样的事情吗?喜欢:INSERT INTO table (_PARTITIONTIME, column1, ..) SELECT TIMESTAMP('2018-04-05'), value1, .. FROM tableB
检查这个 - cloud.google.com/bigquery/docs/…以上是关于在 Bigquery 中的分区表上插入查询的主要内容,如果未能解决你的问题,请参考以下文章