删除BigQuery列的可能方法

时间:2015-11-20 15:27:09

标签: google-bigquery

我正在寻找更新现有BigQuery表的方法。

使用CLI我可以将表格复制到新表格。现在,我正在寻找有效删除/重命名列的方法。

它说不可能删除一列。那么将table1复制到table2以排除某些列是否可能?

谢谢,

1 个答案:

答案 0 :(得分:2)

您可以通过运行将旧表复制到新表的查询来执行此操作。您应指定allowLargeResults:trueflattenSchema:false。前者允许您查询结果大于128MB,后者可防止重复字段在结果中被展平。

您可以将结果写入与源表相同的表中,但使用writeDisposition:WRITE_TRUNCATE。这将原子地用结果覆盖表。但是,如果您想首先测试查询,则可以先将结果写入临时表,然后在您对其满意时将临时表复制到旧表中(使用{{ 1}}以原子方式替换表格。

(注意,我在这里描述的标志是它们在底层API中的名称,但它们在Web UI和bq CLI中的查询选项中都有类似物。)

例如,如果您有一个包含模式{a,b,c,d}的表t1,并且您想要删除字段c,并将b重命名为b2,则可以运行

WRITE_TRUNCATE