数据写入dolphindb时,去重一般是如何处理的

问题描述

比如我8点往表中写数据,中途电脑出问题down了,重新写入时,如何跳过之前已经写入的那些数据

问题出现的环境背景及自己尝试过哪些方法

从tushare按交易日拉日历史行情数据,拉下来一次就写入一次,server端在单机本机,状态正常,实际是在python中拉数据出了问题,因此中断运行,分区方式是RANGE,一年分一个区

相关代码

粘贴代码文本(请勿用截图)

你期待的结果是什么?实际看到的错误信息又是什么?

不要重复数据

请先 登录 后评论

2 个回答

chenweijian

dolphindb中的subscribeTable函数提供了persistOffset=true用于保留订阅中断时的位置,可以通过设置offset=-2自动获取断掉时候的位置再订阅。
所以上面的场景可以这样设计:创建键值流数据表keyedStreamTable,该表的主键不允许包含重复值。先把数据写入keyedStreamTable,然后订阅入库。订阅的时候设置offset=-2,persistOffset=true。

请先 登录 后评论
李一芃

参考这个方法:

1.先拿到所希望导入的数据的索引(比如股票代码、日期)

2.然后在导入前先把ddb中对应的记录用delect where trade_date=XXX and ts_code=XXX 删掉

3.最后再导入

请先 登录 后评论