如何从 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`;
我使用 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`;