删除大分区并重新创建
Drop large partition and recreate
我有一个大事实 table 包含一个按年和按月 (yyyymm) 的分区,我需要在一个月内删除所有数据,我想删除并重新创建分区以使我的工作更轻松.我的 table 有 +200kk 的行和删除分区更有意义。
我阅读了这篇 Microsoft's
文章 Load new data into partitions that contain data in one step,但不清楚如何删除一个分区并重新创建另一个空分区以加载新数据。
是否有这样做的策略?
按照我们在本例中使用的流程:
- 我们确定要更改的分区范围
- 接下来我们对要加载到分区中的数据执行
CREAT TABLE ... AS SELECT...
。此 table 必须使用与目标 table 完全相同的结构创建,并且分区范围应与您要更改的分区相同
- 此外,我们创建了一个新的 table,其结构和分区范围与所需分区相同,但没有任何数据
- 在接下来的步骤中,我们执行从目标 table 到空 table 的分区切换,然后从我们为每个 CTAS 创建的 table 执行分区切换到目标 table.
- 最后但并非最不重要的是,我们删除了两个“单一分区”table(一个包含我们要切换的数据,前一个空 table 现在包含我们的数据想换掉)。
我有一个大事实 table 包含一个按年和按月 (yyyymm) 的分区,我需要在一个月内删除所有数据,我想删除并重新创建分区以使我的工作更轻松.我的 table 有 +200kk 的行和删除分区更有意义。
我阅读了这篇 Microsoft's
文章 Load new data into partitions that contain data in one step,但不清楚如何删除一个分区并重新创建另一个空分区以加载新数据。
是否有这样做的策略?
按照我们在本例中使用的流程:
- 我们确定要更改的分区范围
- 接下来我们对要加载到分区中的数据执行
CREAT TABLE ... AS SELECT...
。此 table 必须使用与目标 table 完全相同的结构创建,并且分区范围应与您要更改的分区相同 - 此外,我们创建了一个新的 table,其结构和分区范围与所需分区相同,但没有任何数据
- 在接下来的步骤中,我们执行从目标 table 到空 table 的分区切换,然后从我们为每个 CTAS 创建的 table 执行分区切换到目标 table.
- 最后但并非最不重要的是,我们删除了两个“单一分区”table(一个包含我们要切换的数据,前一个空 table 现在包含我们的数据想换掉)。