请问如何查看某个分区表某一天所占的硬盘空间大小?

请问如何查看某个分区表某一天数据所占的硬盘空间大小?

目前我是通过Linux的du命令直接在终端查询的,进入数据存储目录:

/data/dolphin/dolphin_am3/server/data/datanode1/storage/CHUNKS/l2_tick_trade/20210608

在该路径下用du命令看分。

请问是否有更加简便的方式?

请先 登录 后评论

1 个回答

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

可以结合DolphinDB内置的分区表磁盘空间统计函数,自定义一个查询某个分区表某一天数据所占的硬盘空间大小的函数:

dbName = "compoDB"
tableName = "pt"
replicationFactor =2
day = 2017.08.08

def getDiskUsageOneDay(dbName, tableName, replicationFactor, day){
	diskUsage = exec sum(diskUsage) from pnodeRun(getTabletsMeta{chunkPath="/" + dbName + "/%", tableName=tableName, diskUsage=true,top=0}) where dfsPath like ("%"+string(temporalFormat(day, 'yyyyMMdd'))+"%")
	return diskUsage\1024\1024\replicationFactor
}
	
getDiskUsageOneDay(dbName, tableName, replicationFactor, day)

dbName是指数据库的名字,注意例如“dfs:testDB”在这里传入的参数应该是“testDB”

tableName是指分区表的名字

replicationFactor是指数据存储的副本数,上述函数统计的是单个副本的磁盘占用大小,如果要统计总的磁盘占用大小,应该将结果再乘以replicationFactor的值

注意,该函数返回的统计大小单位是MB。

请先 登录 后评论