如何通过查询和导出自身来更改BigQuery表的列类型?

时间:2016-03-17 20:37:10

标签: google-bigquery

我的BigQuery表中有一个integer类型列,现在我需要将其转换为float列。我还必须保留所有记录。我想要做的是 更改列类型 。不投。

我已经读过,只要将表格上的查询结果导出到自身,就可以做到这一点。

怎么做?

1 个答案:

答案 0 :(得分:15)

  

使用SELECT将结果写回表

SELECT 
  CAST(int_field AS FLOAT) AS float_field, 
  <all_other_fields> 
FROM YourTable

这种方法可以扫描整个表格

要执行此操作,您应使用 BQ Web UI 中的显示选项按钮并正确设置选项,如下例所示。运行之后 - 您的表将具有浮点数与原始整数数据类型的列,如您所愿。注意:您应该为int_field和float_field

使用正确/相同的字段名称

enter image description here

如果您只是需要添加新列,我会指向Tables: patch GBQ API 我不确定这个API是否允许更改列的类型 - 我怀疑 - 但很容易检查

  

使用Jobs: insert EXTRACT然后加载

在这里,您可以将表提取到GCS,然后将其加载回具有调整后架构的GBQ

以上方法将a)消除查询(扫描)表的成本成本,b)可以帮助您在出现复杂的schame(记录/重复/嵌套等类型/模式)时出现的限制