有没有函数或者办法可以拿到一个表当前所有分区的名称?

如题,有什么方法可以获取到一个分区表当前所有分区的信息和名称吗

请先 登录 后评论

1 个回答

levenew

可以用getTabletsMeta函数返回当前节点上指定数据表chunk的元数据信息。返回结果是一个列,内容包括:

  1. chunkId: chunk的唯一标识
  2. path: 分区的物理路径
  3. dfsPath: 分区DFS路径
  4. tableName: 表名
  5. version: 版本号
  6. rowNum: 分区的记录条数
  7. createCids:update/delete表时创建的版本号
  8. latestPhysicalDir:最新版本号(cid)对应的存储数据的临时物理路径
  9. diskUsage:分区占用的磁盘空间

使用以下代码获创建一个值分区表,并使用getTabletsMeta方法获取分区信息:

if(existsDatabase("dfs://testDB")){
dropDatabase("dfs://testDB")
}
db=database("dfs://testDB", VALUE, 1..10)
n=1000000
t=table(rand(1..10, n) as id, rand(100.0, n) as x)
db.createPartitionedTable(t, `pt1, `id).append!(t)
n=2000000
t=table(rand(1..10, n) as id, rand(100.0, n) as x, rand(100, n) as y)
db.createPartitionedTable(t, `pt2, `id).append!(t)
getTabletsMeta("/testDB/%", `pt1, true);

得到结果如下:

attachments-2023-02-SAKwySzT63dce01fd7f77.png

请先 登录 后评论