2017-04-18 70 views
1

我们最近最分区使用下面的方法我们在BigQuery表格中:BigQuery Write截断分区表导致分区信息丢失?

  1. 运行数据流管道,其读取表中的数据写入到一个新的分区表。

  2. 使用具有写截断集的复制作业将分区表复制回原始表。

一旦完成原来的表被替换为新创建的分区表中的数据,但是,原始表仍然没有分区。所以我再次尝试复制,这次首先删除了原始表格,并且一切正常。

问题是需要20分钟来复制我们的分区表,这会导致我们的生产应用程序停机。那么是否有任何方法使用分区表来替代非分区表进行写截断而不会导致任何停机?或者我们需要先删除表格才能取代它?

回答

1

很抱歉,您无法将非分区表更改为分区,反之亦然。您将不得不删除并重新创建表格。

变通的情侣我能想到的:

  1. 保留两个表,而你迁移您查询到的分区表。在迁移完所有查询后,删除原始的非分区表。
  2. 如果您使用标准Sql,则可以用分区表顶部的视图替换原始表。用视图删除和替换原始表格应该很快。分区修剪仍然应该在视图顶部工作,因此您只针对查询分区收费。分区修剪可能不适用于传统SQL。