DolphinDB分布式表目前不支持delete,要删除记录需要先把相关分区的数据整个读取出来保存到内存表并从内存表删除数据,然后用dropPartition函数删除这个分区,再把内存表数据写入到分布式表。
想删除2018.03.01这一天的000890这只股票的数据,步骤如下:
(1).先求出000890在hash分区中的bucket:
hashBucket(`000890, 20)
得到bucket为3.
(2).得到分区数据
t=select * from loadTable(db, `testTb1) where MDDate=2018.03.01,hashBucket(symbol, 20)=3
(3).从内存表中删除
delete from t where symbol=`000890
(4).删除分区
dropPartition(db,"/20180301/Key3")
(5).写入数据
loadTable(db, `testTb1).append!(t)