带有目标表的bq查询vrs插入语句

时间:2019-05-08 12:22:04

标签: google-bigquery

我在BigQuery table(src_table)中有一些数据,我想将数据插入另一个BigQuery table(tgt_table)中。

我有两种插入数据的方法

Run a bq query --destination_table=tgt_table "select req_columns from src_table"

insert into tgt_table(req_cloumn_list) select req_columns from src_table

推荐使用两种方法中的哪一种?两种方法在性能和最佳实践方面有什么区别。

对于使用目标表的第一条语句,我可以选择仅在空选项时覆盖,追加或写入。我也可以在DML中使用类似的选项吗?

我要处理的实际插入是一个复杂的查询,涉及嵌套表和多个联接。处理的数据可能超过1TB。

1 个答案:

答案 0 :(得分:0)

这两个选项应该没有明显的性能差异。一个区别是,当您使用INSERT时,作业的统计信息将设置ddlOperationPerformed and ddlTargetTable个属性。是的,DML语句和SELECT语句的“写入处置”选项之间的功能通常有所不同,但是,如果可以的话,最好使用DML语句,因为经验将与其他SQL方言相似。