BigQuery 从现有表插入分区表

gir*_*ire 3 google-bigquery

我必须使用相同模式的表,tab1并且tab1_partitioned后者按天分区。

我正在尝试使用以下命令将数据插入到分区表中:

bq query --allow_large_results --replace --noflatten_results --destination_table 'advertiser.development_partitioned$20160101' 'select * from advertiser.development where ymd = 20160101';
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

BigQuery error in query operation: Error processing job 'total-handler-133811:bqjob_r78379ac2513cb515_000001553afb7196_1': Provided Schema does not match Table 
Run Code Online (Sandbox Code Playgroud)

两者都具有完全相同的架构,我真的不明白为什么我会收到该错误。有人可以对我的问题有所了解吗?

事实上,我更喜欢如果 BigQuery 支持 Hive 中支持的动态分区插入,但几天的搜索似乎指出这是不可能的:-/

Pav*_*ara 5

您看到的行为是由于我们在将它们与表分区一起使用时如何处理写入处置。

您应该能够使用 WRITE_APPEND 配置附加到分区以使查询通过。

bq query --allow_large_results --append_table --noflatten_results --destination_table 'advertiser.development_partitioned$20160101' 'select * from advertiser.development where ymd = 20160101';
Run Code Online (Sandbox Code Playgroud)

使其与--replace 一起工作有一些复杂性,但我们目前正在研究对表分区的改进模式支持。

如果这对您不起作用,请告诉我。谢谢!

回答关于动态分区的问题的另一部分 - 我们确实计划支持更丰富的分区风格,我们相信它们将处理大多数用例。