如何查看分区表的数据分布情况?
要查看OceanBase中分区表的数据分布情况,可以根据您的需求选择不同的方法。以下是一些常用的查询手段:
1. 查询指定租户内的分区均衡情况
如果想了解某个租户内用户表的分区数量是否均衡以及分区磁盘占用情况是否均衡,可以使用下面提供的SQL语句。
- 分区数量均衡
obclient [test]> SELECT svr_ip,svr_port,ls_id,count(*)
FROM oceanbase.CDB_OB_TABLE_LOCATIONS
WHERE tenant_id=xxx AND role='leader' AND table_type='USER TABLE'
GROUP BY svr_ip,svr_port,ls_id;
- 分区磁盘占用均衡
obclient [test]> SELECT a.svr_ip,a.svr_port,b.ls_id,sum(data_size)/1024/1024/1024 as total_data_size
FROM oceanbase.CDB_OB_TABLET_REPLICAS a, oceanbase.CDB_OB_TABLE_LOCATIONS b
WHERE a.tenant_id=b.tenant_id AND a.svr_ip=b.svr_ip AND a.svr_port=b.svr_port AND a.tablet_id=b.tablet_id
AND b.role='leader' AND b.table_type='USER TABLE' AND a.tenant_id=xxxx
GROUP BY svr_ip,svr_port,ls_id;
依据文档: 租户内均衡 → 分区均衡 → 分区均衡的判断方法
2. 查看所有租户的分区表信息
如果您想要获得更广泛的视角,包括所有租户下的分区表及其分区详情,可以通过访问系统视图来实现。
- 查看所有租户的分区表
SELECT * FROM oceanbase.CDB_PART_TABLES;
这个查询将列出所有租户的所有分区表的信息。
- 获取特定表的一级分区详细信息
SELECT * FROM oceanbase.CDB_TAB_PARTITIONS WHERE table_name = 'your_table_name';
请将 'your_table_name' 替换为您感兴趣的表名以获取该表的一级分区信息。
依据文档:
以上方法可以帮助您从不同维度检查和分析OceanBase中分区表的数据分布状况。希望这能解决您的问题!如果还有其他方面需要进一步探讨,请随时告知。
检索到的文档如下: