首页 > 解决方案 > Google BigQuery:如何使用 bq 命令行删除列?

问题描述

表不是很大,我想删除一列。试过bq update project:schema.table schema_one_column_less.json但有一个例外:BigQuery error in update operation: Provided Schema does not match Table xxx. Field xxxxx is missing in new schema. 什么是删除列的正确方法(无需创建新表)?

标签: google-bigquery

解决方案


bq 更新不支持此功能,请参见此处。Google 提供了以下变通方法,其中包括通过 CLI 的机制,但也有缺点。

使用该SELECT * EXCEPT机制,您可以覆盖原始表,这将避免创建新表,但也可能导致大量查询成本。

从链接页面上的示例中,该命令类似于:

bq query \
--destination_table mydataset.mytable \
--replace \
--use_legacy_sql=false \
'SELECT
  * EXCEPT(column_to_delete)
FROM
  mydataset.mytable'

推荐阅读