如何从 BigQuery table 的一个分区中取出一些数据并插入到下一个分区?
How to take some data from one partition in the BigQuery table and insert to the next partition?
我有一个大查询 table 每天分区
现在问题出在其中一个分区,即本月的最后一个分区(例如:2019-12-31)我有一些数据应该属于下一个分区,即 2020-01-01。
我想知道是否可以使用 Big Query SQL 从我的分区 2019-12-31 中取出该数据并将其放入下一个分区 2020-01-01?还是我必须为它创建一个 Beam 作业?
是的,使用 DML。 UPDATE 语句将行从一个分区移动到另一个分区。
使用 DML 更新分区 table 中的数据与更新非分区 table 中的数据相同。
For example,以下 UPDATE 语句将行从一个分区移动到另一个分区。 mytable 的 2017 年 5 月 1 日分区(“2017-05-01”)中的行(其中 field1 等于 21)被移动到 2017 年 6 月 1 日分区(“2017-06-01”)。
UPDATE
project_id.dataset.mycolumntable
SET
ts = "2017-06-01"
WHERE
DATE(ts) = "2017-05-01"
AND field1 = 21
我有一个大查询 table 每天分区
现在问题出在其中一个分区,即本月的最后一个分区(例如:2019-12-31)我有一些数据应该属于下一个分区,即 2020-01-01。
我想知道是否可以使用 Big Query SQL 从我的分区 2019-12-31 中取出该数据并将其放入下一个分区 2020-01-01?还是我必须为它创建一个 Beam 作业?
是的,使用 DML。 UPDATE 语句将行从一个分区移动到另一个分区。 使用 DML 更新分区 table 中的数据与更新非分区 table 中的数据相同。
For example,以下 UPDATE 语句将行从一个分区移动到另一个分区。 mytable 的 2017 年 5 月 1 日分区(“2017-05-01”)中的行(其中 field1 等于 21)被移动到 2017 年 6 月 1 日分区(“2017-06-01”)。
UPDATE
project_id.dataset.mycolumntable
SET
ts = "2017-06-01"
WHERE
DATE(ts) = "2017-05-01"
AND field1 = 21