mysql binlog插入经常出现-235
简简单单XTlife 发布于2021-07 浏览:1123 回复:3
0
收藏
最后编辑于2021-08

{"Status":"Fail","BeginTxnTimeMs":0,"Message":"wait close failed. NodeChannel[1597958-1250992] add batch req success but status isn't ok, load_id=2042aec01c041a31-8721b334fced73bc, txn_id=1903023, backend id=1250992:8169, errmsg=tablet writer write failed, tablet_id=1639976, txn_id=1903023, err=-235","NumberUnselectedRows":0,"CommitAndPublishTimeMs":0,"Label":"88662113-0d38-41c2-bde4-f7c336da9c49","LoadBytes":206604,"StreamLoadPutTimeMs":0,"NumberTotalRows":0,"WriteDataTimeMs":23,"TxnId":1903023,"LoadTimeMs":25,"ReadDataTimeMs":0,"NumberLoadedRows":0,"NumberFilteredRows":0}

我这边用了binlog同步线上数据,再用sparkstreaming 消费kafka 通过doris的stream_load插入,但是经常出现这个报错,每次出现我都是创建一张新表,然后替换调旧表,但是这个始终是个问题,我的间隔时间已经设置成了30min ,数据量也不多,但是经常出现这种版本问题,我想请问下,这个怎么处理。max_cumulative_compaction_num_singleton_deltas=500  compaction_task_num_per_disk=5 这2个参数设置了一下,我这2个参数设置了。

CREATE TABLE `user_pool` (
`id` int(11) NOT NULL COMMENT "id",
`_ts` largeint(40) NOT NULL COMMENT "",
`_dt` date NOT NULL COMMENT "",
`_type` varchar(20) NULL COMMENT "",
`user_id` int(11) NOT NULL COMMENT "app用户ID",
`tel_enc` varchar(120) NOT NULL COMMENT "手机号码加密",
`reg_status` tinyint(4) NOT NULL COMMENT "注册状态 详见配置文件",
`reg_time` datetime NOT NULL COMMENT "注册时间",
`my_remark_time` datetime NOT NULL COMMENT "当前所属电销最新备注时间",
`all_remark_time` datetime NOT NULL COMMENT "所有人最新备注时间",
`member_over_time` datetime NOT NULL COMMENT "会员过期时间",
`tel_staff_id` int(11) NOT NULL COMMENT "电销人员ID",
`pool_type` tinyint(4) NOT NULL COMMENT "客户池类型 1:新客户 2:注册客户 3:成交客户",
`user_dept` tinyint(4) NOT NULL COMMENT "电销的所属部门 1:专业版电销池 其余详见配置文件",
`user_status` tinyint(4) NOT NULL COMMENT "用户状态 1:有效 其余详见配置文件",
`last_consume_time` datetime NOT NULL COMMENT "最新消费时间",
`assign_time` datetime NOT NULL COMMENT "分配时间",
`release_time` datetime NOT NULL COMMENT "释放时间",
`created_at` datetime NOT NULL COMMENT "创建时间",
`updated_at` datetime NOT NULL COMMENT "更新时间",
`_create_time` datetime NULL COMMENT "doris入库时间",
INDEX index_createTime (`_create_time`) USING BITMAP COMMENT '_create_time'
) ENGINE=OLAP
UNIQUE KEY(`id`, `_ts`, `_dt`)
COMMENT "OLAP"
PARTITION BY RANGE(`_dt`)
(PARTITION m202104 VALUES [('2021-04-01'), ('2021-05-01')),
PARTITION m202105 VALUES [('2021-05-01'), ('2021-06-01')),
PARTITION m202106 VALUES [('2021-06-01'), ('2021-07-01')),
PARTITION m202107 VALUES [('2021-07-01'), ('2021-08-01')),
PARTITION m202108 VALUES [('2021-08-01'), ('2021-09-01')),
PARTITION m202109 VALUES [('2021-09-01'), ('2021-10-01')))
DISTRIBUTED BY HASH(`id`) BUCKETS 3
PROPERTIES (
"replication_num" = "3",
"dynamic_partition.enable" = "true",
"dynamic_partition.time_unit" = "MONTH",
"dynamic_partition.time_zone" = "Asia/Shanghai",
"dynamic_partition.start" = "-3",
"dynamic_partition.end" = "2",
"dynamic_partition.prefix" = "m",
"dynamic_partition.replication_num" = "3",
"dynamic_partition.buckets" = "2",
"dynamic_partition.create_history_partition" = "false",
"dynamic_partition.hot_partition_num" = "0",
"dynamic_partition.start_day_of_month" = "1",
"in_memory" = "false",
"storage_format" = "V2"
);

这个是我的建表语句,有什么好的办法吗?每次一出现这个问题,这张表基本就废了,插数据也插不进去,查数据还有问题。有什么指标或者参数可以修改吗?我想同步binlog这个操作也不是什么偏僻的操作,这种常规操作有建议的参数配置或者优化方法吗?

我这边大概25张表需要同步,平均每天早上要重建3张表(有的表数据小,属于多次插入小数据量,但是频率不大30min跑一次。),这个频率有点大,现在也没指标查,也不知道咋改。

stream_load这个功能我用了一段时间感觉很牛,但是这种细节问题,让人奔溃。

收藏
点赞
0
个赞
共3条回复 最后由IamStrangers回复于2021-08
#4IamStrangers回复于2021-08
#3 简简单单XTlife回复
可是出现这个后怎么解决呢?我每次只能删表重建,不然这张表就再也插不了任何数据了  
展开

https://mp.weixin.qq.com/s/0cCgOazYNW48cYjJEGrjsQ

可以看下这个后面的FAQ

0
#3简简单单XTlife回复于2021-08
#2 IamStrangers回复
-235 是数据版本太多了,通常出现在导入频率很高的场景。但是如果你真的是每30min中才导入一批次,应该不会出现这个问题,这个需要到对应的BE节点,检查下是否有compaction失败了
展开

可是出现这个后怎么解决呢?我每次只能删表重建,不然这张表就再也插不了任何数据了

 

0
#2IamStrangers回复于2021-07

-235 是数据版本太多了,通常出现在导入频率很高的场景。但是如果你真的是每30min中才导入一批次,应该不会出现这个问题,这个需要到对应的BE节点,检查下是否有compaction失败了

0
快速回复
TOP
切换版块