2017-02-22 60 views
2

我有一個已經在BQ中填充數據的表。我想重命名錶格的標題(更新模式)。我正在使用命令行工具更新大型查詢表架構

假設這是沿着這條線?

bq update --schema:Col1:STRING,Col2:STRING....... data_set.Table_Name 

但是我卻越來越

FATAL Flags parsing error: Unknown command line flag 'schema:Col1:STRING,Col2:STRING.....'

我缺少什麼?

回答

2

正如Mosha所說,重命名列不支持通過API,但您可以運行一個查詢來掃描整個表並覆蓋它。

bq query --nouse_legacy_sql \ 
--destination_table p:d.table \ 
--replace \ 
'SELECT * EXCEPT(col1,col2), col1 AS newcol1, col2 AS newcol2 FROM `p.d.table`' 

警告:這會覆蓋表格。但這就是你想要的。

1

在命令行的正確語法將

bq update --schema col1:STRING,col2,STRING dataset.table

但是,重命名字段不支持模式更改 - 你會得到錯誤信息說

Provided Schema does not match table

只能添加新領域或放鬆現有的領域(即從需求到無效)。