我有一个约有400个分区的日期分区表。 不幸的是,其中一个列数据类型已更改,应该从INT更改为STR。
我可以按如下方式更改数据类型:
SELECT
CAST(change_var AS STRING) change_var
<rest of columns>
FROM dataset.table_name
并覆盖表格,但日期分区将丢失。
有没有办法保持分区并更改列数据类型?
答案 0 :(得分:0)
选项1。 按分区导出表。我创建了一个简单的库来实现它。 https://github.com/rdtr/bq-partition-porter 然后创建一个具有正确类型的新表,并通过分区再次将数据加载到新表中。小心配额(每天1000个出口)。 400应该没问题。
选项2。 通过使用Cloud Dataflow,您可以导出整个表,然后使用DynamicDestination通过分区将数据导入BQ。如果许多分区太多,这就足以满足要求。
我希望bq load
命令能够指定分区键字段名称(因为它已在bq load help
中描述)。在此之前,您需要遵循以下任一选项。