tidb-ansible 执行表 regions 分布脚本 table-regions.py报错:ValueError: zero length field name in format

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:V3.0.12
  • 【问题描述】:执行表regions 分布脚本报错,具体如下:
python table-regions.py --host ip --port 10080 dbname tablename
Traceback (most recent call last):
  File "table-regions.py", line 83, in <module>
    main()
  File "table-regions.py", line 10, in main
    httpAPI = "http://{}:{}/tables/{}/{}/regions".format(args.host, args.port, args.database, args.table)
ValueError: zero length field name in format

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

你好,

检查下 dbname tablename 是否存在特殊字符

这边测试没有问题

没有特殊字符,问题解决了,python版本的问题,在Python 2.7中可以正常运行#"{0}CMD".format(os.sep) #在Python<=2.6/3.1中,必须显示指定下标,即便只有一个元素。

额,好的

想问下,唯一索引可以作为数据分布的id嘛?还是只能是主键?

使用operator add split-region 处理热点regions 问题,可是反问更严重了,什么问题呀? 为拆分之前的状况:

root@EM-6CU649E6X8: ~# python table-regions.py --host ip --port 10080 dbname asset_his
[RECORD - dbname.asset_his] - Leaders Distribution:
  total leader count: 7
  store: 17, num_leaders: 1, percentage: 14.29%
  store: 11, num_leaders: 1, percentage: 14.29%
  store: 12, num_leaders: 1, percentage: 14.29%
  store: 14, num_leaders: 1, percentage: 14.29%
  **store: 15, num_leaders: 3, percentage: 42.86%**

执行15 store 对应的regions 进行拆分:

./pd-ctl -u http://ip:2379 operator add split-region 170659
./pd-ctl -u http://ip:2379 operator add split-region 170602
./pd-ctl -u http://ip:2379 operator add split-region 170701
./pd-ctl -u http://ip:2379 operator add split-region 170667

之后在查看:

[RECORD - dbname.asset_his] - Leaders Distribution:
  total leader count: 9
  store: 17, num_leaders: 1, percentage: 11.11%
  store: 11, num_leaders: 1, percentage: 11.11%
  store: 12, num_leaders: 1, percentage: 11.11%
  store: 14, num_leaders: 1, percentage: 11.11%
  **store: 15, num_leaders: 5, percentage: 55.56%**

还是分在了该15号store 上面了

可以

辛苦开新帖反馈下信息,并上传下 overview 全面版截图,感谢配合

已经开新帖,麻烦过去看一下

新帖问题已回复

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。