大查询复制分区表在一定范围内

时间:2018-05-14 01:26:09

标签: google-bigquery

我在BigQuery中有生产数据集和测试数据集。两者都以天为单位进行分区(两者都有_PARTITIONTIME列)。

我有办法将特定范围内的生产数据集(使用bq cp函数)分区表复制到Test数据集吗?例如:过去1个月。

如果我只想复制1个分区表,我只需要使用$ [yyyymmdd]关键字来选择1个分区表,但我试图避免使用逗号30次来选择一个月的分区表。

我知道可以使用_PARTITIONTIME> =" 2018-01-01 00:00:00" AND _PARTITIONTIME< " 2018-01-30 00:00:00"。

是否也可以为复制做类似的事情?

由于

1 个答案:

答案 0 :(得分:1)

答案是否定的。 您可以使用bq命令编写简单的脚本来逐个执行此操作。

或者您可以使用以下内容生成bq命令:

#standardSQL
SELECT
  CONCAT('bq cp <srcproj>:<dataset>.<table>$', partname, ' <testproj>:<dataset>.<table>$', partname)
FROM (
  SELECT
    DISTINCT FORMAT_DATETIME('%Y%m%d',
      CAST(_PARTITIONDATE AS datetime)) partname
  FROM
    `<srcproj>.<dataset>.<table>`
  WHERE
    _PARTITIONTIME >= "2018-05-10 00:00:00"
    AND _PARTITIONTIME < "2018-05-13 00:00:00")