如何快速删除分布式表的所有数据,但保留数据表结构?

使用场景如下:

我已经根据某个表的结构,设计了分布式表,且已经写入了一些测试数据,请问有什么好的办法解压u所以删除分布式表的所有数据,但保留数据表结构?

请先 登录 后评论

1 个回答

Jason Tang - 时序数据库技术支持

可以使用DolphinDB的truncate函数,参考文档:https://www.dolphindb.cn/cn/help/200/FunctionsandCommands/CommandsReferences/t/truncate.html

测试方法如下:

(1)创建分布式表,并写入100万行数据

n=1000000
ID=rand(150, n)
dates=2017.08.07..2017.08.11
date=rand(dates, n)
x=rand(10.0, n)
t=table(ID, date, x)
dbDate = database(, VALUE, 2017.08.07..2017.08.11)
dbID = database(, RANGE, 0 50 100 150)

dbName="dfs://compoDB"
if(existsDatabase(dbName)){
        dropDatabase(dbName)
}
db = database(dbName, COMPO, [dbDate, dbID])
pt = db.createPartitionedTable(t, `pt, `date`ID)
pt.append!(t);

(2)写入完成后查询数据

select count(*) from loadTable("dfs://compoDB", `pt)

返回

attachments-2022-11-t5MkkYtk636b35a94c42f.png(3)执行truncate函数

truncate(dbName, `pt)

大概100ms左右

(4)再次查询数据记录数

select count(*) from loadTable("dfs://compoDB", `pt)

返回

attachments-2022-11-Y4gcbuYG636b35e51bfa2.png说明表中数据已经全部清除。

请先 登录 后评论