2017-05-24 52 views
0

我有約400個分區的日期分區表。 不幸的是其中一列數據類型已經改變,應該從INT更改爲STR。更改日期分區表的數據類型

如下我可以改變數據類型:

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

,並覆蓋表,但隨後的日期分區將丟失。

有什麼辦法保持分區和更改列數據類型?

回答

0

選項1. 按分區導出表。我創建了一個簡單的庫來實現它。 https://github.com/rdtr/bq-partition-porter 然後用正確的類型創建一個新表,並通過分區再次將數據加載到新表中。小心配額(每天1000個出口)。 400應該沒問題。

選項2. 通過使用Cloud Dataflow,您可以導出整個表格,然後使用DynamicDestination按分區將數據導入BQ。如果多個分區太多,這就足以滿足要求。

我希望bq load命令有一些方法來指定分區鍵字段名稱(因爲它已在bq load help中描述過)。在此之前,您需要遵循以下任一選項。