更改日期分区表的数据类型

时间:2017-05-24 17:46:15

标签: google-bigquery

我有一个约有400个分区的日期分区表。 不幸的是,其中一个列数据类型已更改,应该从INT更改为STR。

我可以按如下方式更改数据类型:

SELECT 
    CAST(change_var AS STRING) change_var
    <rest of columns>
FROM dataset.table_name

并覆盖表格,但日期分区将丢失。

有没有办法保持分区并更改列数据类型?

1 个答案:

答案 0 :(得分:0)

选项1。 按分区导出表。我创建了一个简单的库来实现它。 https://github.com/rdtr/bq-partition-porter 然后创建一个具有正确类型的新表,并通过分区再次将数据加载到新表中。小心配额(每天1000个出口)。 400应该没问题。

选项2。 通过使用Cloud Dataflow,您可以导出整个表,然后使用DynamicDestination通过分区将数据导入BQ。如果许多分区太多,这就足以满足要求。

我希望bq load命令能够指定分区键字段名称(因为它已在bq load help中描述)。在此之前,您需要遵循以下任一选项。