如何轻松将旧式分区表转换为新式分区表

Posted

技术标签:

【中文标题】如何轻松将旧式分区表转换为新式分区表【英文标题】:how to convert an old style partitioned table to a new style partitioned table easily 【发布时间】:2019-02-09 00:52:10 【问题描述】:

我有一个名为mytable_* 的分区表,其中后缀表示日期。

我现在想将其转换为在 bigquery 中对表进行分区的新方式,即。使用 _partitiondate 列等。

我正在考虑基于旧表创建新表的架构,然后将数据插入其中,但我不知道如何将旧表的日期值(即后缀)放入@ 987654323@字段。

【问题讨论】:

我想,这个帖子***.com/questions/38993877/… 是答案?我还在想我可能不得不重新填充气流工作等。 【参考方案1】:

如果您之前创建了日期分片表,则可以使用 bq 命令行工具中的 partition 命令将整个相关表集转换为单个摄取时间分区表。日期分片表必须使用以下命名约定:[TABLE]_YYYYMMDD。例如,mytable_20160101, ... , mytable_20160331。

为此,您应该使用bq partition 命令,如下例所示

bq --location=[LOCATION] partition --time_partitioning_type=DAY --time_partitioning_expiration [INTEGER] [PROJECT_ID]:[DATASET].[SOURCE_TABLE]_ [PROJECT_ID]:[DATASET].[DESTINATION_TABLE]    

您可以在下面的文章中查看更多详细信息/选项

Converting date-sharded tables into ingestion-time partitioned tables

bq partition

【讨论】:

在重新分区期间有什么方法可以添加集群吗?

以上是关于如何轻松将旧式分区表转换为新式分区表的主要内容,如果未能解决你的问题,请参考以下文章

如何将非分区表转换为分区表

GPT分区结构完整恢复实例

我使用一个分区转换软件,在进行过程遇到以下窗口,不知怎样输入!我是转NTFS区的

Oracle 将普通表转换为分区表

转换为分区表时的初始扩展区大小

SQL Server 2005中的分区表:将普通表转换成分区表