首页 > 解决方案 > 向 BigQuery 架构添加一列 - 但不是在最后

问题描述

几个月前,可以通过以下方式更新 BigQuery 表的架构

  1. 通过以下方式倾倒它:bq show --schema Dataset.table > table.json
  2. 然后更改架构并添加一列:
[                                                                  
  {                                                          
    "name": "A",                                                                                                                                      
    "type": "STRING"                 
  },
  {                                                          
    "name": "NEW_COLUMN",                                                                                                                                      
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {                                                          
    "name": "B",                                                                                                                                      
    "type": "STRING"                 
  }                           
]       
  1. 然后通过以下方式更新表: bq update Dataset.table table.json

最后,该列将出现在表模式中的指定位置。今天我尝试在我们数据集中的现有表上执行此操作,并在最后添加列,就好像我会使用ALTER TABLE ... ADD COLUMN语句一样。是否有可能恢复旧的行为?当我对上游表中使用的源表的架构更改几乎无法控制时,我经常使用它。

标签: google-bigquery

解决方案


似乎这是可能的,但从未得到官方支持。因此,从现在开始必须使用解决方法。


推荐阅读