按天备份的数据,怎么恢复到按月分区的数据库

发布于 2022-09-12 03:53:23 字数 1028 浏览 16 评论 0

我的DolphinDB数据库备份文件是按天备份的,数据文件目录如下:

> tree ./ -L 3
./
├── 20200601
│   └── STOCK_SZL2_TAQ
│       └── SZL2_TAQ
├── 20200602
│   └── STOCK_SZL2_TAQ
│       └── SZL2_TAQ
├── 20200603
│   └── STOCK_SZL2_TAQ
│       └── SZL2_TAQ
├── 20200604
│   └── STOCK_SZL2_TAQ
│       └── SZL2_TAQ
├── 20200605
│   └── STOCK_SZL2_TAQ
│       └── SZL2_TAQ
├── 20200608
│   └── STOCK_SZL2_TAQ
│       └── SZL2_TAQ
...

我用migrate建库建表以及恢复第一天数据:

migrate("/hdd/database/szl2data/20200601/","dfs://STOCK_SZL2_TAQ","SZL2_TAQ")

数据库dfs://STOCK_SZL2_TAQ和表SZL2_TAQ创建成功,并有了2020.06.05这一天的数据,我再用下面数据恢复2020.06.06的数据:

restore(path,"dfs://STOCK_SZL2_TAQ","SZL2_TAQ","%",true)

这时查看数据库,2020.06.06这一天的数据恢复了,但2020.06.05这一天的数据没有了。
查看dfs://STOCK_SZL2_TAQ数据库的schema,显示它是按月分区的,如下图:
image.png

请问这种按月分区但按天备份的数据库,DolphinDB中有什么简单的方法恢复?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜光 2022-09-19 03:53:23

可以先创建一张临时表,把数据恢复到临时表,然后再导入目标表。

migrate("/hdd/database/szl2data/20200601/","dfs://STOCK_SZL2_TAQ","SZL2_TAQ")

db=database("dfs://STOCK_SZL2_TAQ")
t=db.loadTable("SZL2_TAQ")
db.createPartitionedTable(t, `TAQ, `date`symbol);
temp=db.loadTable("TAQ")

day=2020.06.02
for(i in 2:31){
    path="/hdd/database/szl2data/"+temporalFormat(day, "yyyyMMdd") + "/";
    day=datetimeAdd(day,1,`d)
    if(!exists(path)){continue;}
    print "restoring " + path;
    restore(path,"dfs://STOCK_SZL2_TAQ","SZL2_TAQ","%",true,temp);
    t.append!(select * from temp)
}
dropTable(db,"TAQ")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文