lightning local模式数据迁移fail to split region

【概述】 使用local模式迁移200个大小为1g的csv数据文件到新创建的tidb集群,日志提示fail to split region,


【建表语句】
CREATE TABLE feed_visible (
user_id varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT ‘用户ID’,
feed_id varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT ‘动态ID’,
biz_type varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT ‘动态业务类型’,
organization varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT ‘所属组织’,
sub_organization varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT ‘附属组织’,
punch_topic_id BIGINT NULL DEFAULT NULL COMMENT ‘打卡主题ID’,
is_reviewed TINYINT NULL DEFAULT NULL COMMENT ‘是否已点评’,
create_time datetime NOT NULL COMMENT ‘创建时间’,
record_time datetime NOT NULL COMMENT ‘记录时间’,
– 使用聚簇索引优化rowkey值
PRIMARY KEY(user_id, feed_id) CLUSTERED
) CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;

【tidb集群】


【TiDB 版本】 v5.0.1
【lighting】 手动部署形式,单独拉了一台64vCPU 128G的机器运行。
配置参数:tidb-lightning.toml (2.8 KB)
执行日志:tidb-lightning.log (2.1 MB)

1 Like

1、初步怀疑是表未提前分配region导致大数据插入时频繁进行region拆分合并操作,不知道是否正确。
2、该表使用了聚族索引主键作为rowid,没有其他主键,建表语句shard_row_id_bits、PRE_SPLIT_REGIONS参数不可用
ERROR 8200 (HY000): Unsupported shard_row_id_bits for table with primary key as row id
那么有什么办法能让它做到预分配region呢?

https://docs.pingcap.com/zh/tidb/dev/clustered-indexes#使用场景

Hi,目前不会支持对聚簇索引使用 shard row id bits 和 pre split region,可以看一下目前的我们的场景是否符合聚簇索引的场景。
https://docs.pingcap.com/zh/tidb/dev/clustered-indexes#限制

感谢答复,已去除聚簇索引,改为普通唯一主键,可以设置预分配region。
个人觉得聚簇索引的优点还是有的,为何不在这个基础上解决一下写热点跟大主键的问题。

这块是目前需要攻克的技术难点,需求我们会进一步的调研、分析,可以关注一下我们的对应的进展哈。

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