如何从 Bigquery Schema 中删除未使用的列名

How to remove unused column names from Bigquery Schema

我使用 Bigquery 尝试删除嵌套的 schmea,如下所示,但无法这样做。谁能告诉我

Table:

FiledName          Type       Mode
 Person            RECORD   NULLABLE
 Person.Name       STRING   NULLABLE
 Person.Add        RECORD   NULLABLE
 Person.Add.line   STRING   NULLABLE

代码:

ALTER TABLE `<project_id.dataset.table_name` DROP COLUMN 'Person.Add'

我必须删除整个记录。

预期输出:

FiledName          Type       Mode
 Person            RECORD   NULLABLE
 Person.Name       STRING   NULLABLE

不幸的是,根据文档,现在无法完成此操作: https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language#details_14

另一种方法是添加一个包含所需字段的新人员记录列,将数据复制到其中,然后删除旧的人员记录。

您可以使用以下方法 - 它选择除 person.add 之外的所有内容并插入到新的 table

create table `project_id.dataset.new_table_name` as 
select * replace(
    (select as struct person.* except(add)) as person
  )
from `project_id.dataset.table_name`;