由于最近的Big Query迁移,我有两个数据集。旧的数据集有一个表20180629,新的数据集也有一个表为20180629的表。我删除了新表以迁移数据,并认为当天的所有信息都存储在旧表中。但是,当我将旧版本迁移到新版本时,我发现旧表中只存储了部分数据。因此,新的20180629具有当天的全部数据的一部分。
我尝试过:
bq cp table1.events_20180629@1530460302987 table1.temp_table
这要么使我得到时间戳不正确的错误(顺便说一下,时间戳长度应该是多少)。或者,当我开始使用它时,它会复制一个空表。
我想在新数据集中恢复原始的20180629。但是,我删除了一个20180629,然后创建了部分20180629,然后删除了这个。我担心这些数据会完全丢失。有人可以告诉我带有适当时间戳记的bq cp命令,以追溯到我的大查询数据集中的一天吗?我对这个问题的研究告诉我,我只有两天的时间来做,所以任何帮助都会很棒。
答案 0 :(得分:1)
我很害怕,但我认为您丢失了数据。如果没有创建具有相同ID的新表,则还原将在删除表的两天内进行。对于您而言,您已经创建了具有相同ID的表。
但是,如果要获取时间戳信息,则可以在旧版SQL中的查询下面运行。此查询将返回您12个小时前的时间戳。您可以根据需要更改小时数。
SELECT INTEGER(DATE_ADD(USEC_TO_TIMESTAMP(NOW()),-12,'HOUR')/ 1000)
另外,最好在bq cp命令中使用整个详细信息,例如位置,项目if和其他。 恢复命令绝对可以正常工作,但有2个主要限制,1)创建具有相同ID的表和2)删除数据集
bq --location = [LOCATION] cp myprojectid.mydataset.mytable@1418864998000 myprojectid.mydataset.newtable
希望获得帮助。