我在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"。
是否也可以为复制做类似的事情?
由于
答案 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")