首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可以从Google BigQuery中的分区表中删除列吗?

可以从Google BigQuery中的分区表中删除列吗?
EN

Stack Overflow用户
提问于 2018-02-16 15:38:13
回答 2查看 1.5K关注 0票数 0

我试图使用以下命令从BigQuery中的分区表中删除列

bq query --destination_table [DATASET].[TABLE_NAME] --replace --use_legacy_sql=false 'SELECT * EXCEPT(column) FROM [DATASET].[TABLE_NAME]'

其结果是删除不需要的列,更改架构,但不再对数据进行分区。

对于删除列后如何保持数据分区有任何建议吗?仅对于非分区表,文档是透明的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-16 18:16:35

有两种解决办法可以使用:

  1. 使用列分区表,这意味着它是在表中的常规列的值上进行分区的。您可以创建一个新的列分区表并复制数据,删除该列: 时间分区_字段=pt-模式=.DATASET.TABLE_NAME2 bq查询--目的表=DATASET.TABLE_NAME2 2“选择_PARTITIONTIME作为pt,*除(列)从DATASET.TABLE_NAME”
  2. 您还可以使用日分区表,但可以使用DML复制数据。您可以在DML语句中设置或复制_PARTITIONTIME列,这在常规SELECT中是不可能的。下面是一个示例: 插入数据1.表1 (_partitiontime,a,b)选择时间戳(日期"2008-12-25")作为_partitiontime,"a“作为a,"b”作为b

这需要在分区表上使用DML,该表目前位于alpha:https://issuetracker.google.com/issues/36383555中。

票数 3
EN

Stack Overflow用户

发布于 2021-07-26 12:06:02

BigQuery现在在分区表中支持滴柱

代码语言:javascript
运行
复制
ALTER TABLE mydataset.mytable
DROP COLUMN column

它在写文章的时候还在测试阶段,但对我来说很管用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48830133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档