【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
oblogproxy V2.0.1
【问题描述】清晰明确描述问题
CREATE TABLE t1(id int, idd int);
insert into t1 values(3,1),(4,1),(5,1);
oblogrpoxy代码分析
cdc拉取每条数据为一个record,并放入队列
int ret = _obcdc->fetch(record, _s_config.read_timeout_us.val());
_queue.offer(record, _s_config.read_timeout_us.val()
转为binlog,接收队列的结果,并处理,在这里(3,1)会生成table_event和write_event,(4,1)会生成table_event和write_event,(5,1)会生成table_event和write_event
//取结果
(!_rqueue.poll(records, _s_config.read_timeout_us.val()) || records.empty())
做转换
for (ILogRecord* record : records) {
case EINSERT:
// WRITE_ROWS_EVENT
if (_filter) {
break;
}
convert_table_map_event(record);
convert_write_rows_event(record);
break;
}
疑问对于该sql
insert into t1 values(3,1),(4,1),(5,1);
会生成如下binlog
#240307 2:57:45 server id 100 end_log_pos 305 Table_map: `db5`.`t1` mapped to number 402
# at 305
#240307 2:57:45 server id 100 end_log_pos 345 Write_rows: table id 402 flags: STMT_END_F
### INSERT INTO `db5`.`t1`
### SET
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
# at 345
#240307 2:57:45 server id 100 end_log_pos 386 Table_map: `db5`.`t1` mapped to number 402
# at 386
#240307 2:57:45 server id 100 end_log_pos 426 Write_rows: table id 402 flags: STMT_END_F
### INSERT INTO `db5`.`t1`
### SET
### @1=4 /* INT meta=0 nullable=1 is_null=0 */
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
# at 426
#240307 2:57:45 server id 100 end_log_pos 467 Table_map: `db5`.`t1` mapped to number 402
# at 467
#240307 2:57:45 server id 100 end_log_pos 507 Write_rows: table id 402 flags: STMT_END_F
### INSERT INTO `db5`.`t1`
### SET
### @1=5 /* INT meta=0 nullable=1 is_null=0 */
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
# at 507
#240307 2:57:45 server id 100 end_log_pos 534 Xid = 2
COMMIT/*!*/;
是否有方式可以按照如下生成
#240307 2:35:16 server id 188 end_log_pos 553 CRC32 0xe63a413e Table_map: `db5`.`t1` mapped to number 109
# at 553
#240307 2:35:16 server id 188 end_log_pos 615 CRC32 0x7afaec26 Write_rows: table id 109 flags: STMT_END_F
### INSERT INTO `db5`.`t1`
### SET
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
### INSERT INTO `db5`.`t1`
### SET
### @1=4 /* INT meta=0 nullable=1 is_null=0 */
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
### INSERT INTO `db5`.`t1`
### SET
### @1=5 /* INT meta=0 nullable=1 is_null=0 */
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
# at 615
#240307 2:35:16 server id 188 end_log_pos 646 CRC32 0x42a8da66 Xid = 74
COMMIT/*!*/;