zhanjian

Results 23 comments of zhanjian

Synchronize rds Mysql to Kafka and then consumption data to es or phoenix in test environment, Plan to synchronize data in production my company is qimai in hefei

> 从监控看问题是读源端慢。源端没有主键只有联合唯一键? 这样(联合唯一键批量)读是会比较慢的,跟同步链路本身关系不大。可以尝试调低批量调高并发,具体还是要看下源端的情况。 是有主键的, 简化后的表结构如下 CREATE TABLE sqldataviewtest. `test_aaa` ( `id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT 'id', `cc_id` varchar(32) NOT NULL DEFAULT '' , `domain_id` varchar(64) NOT NULL...

> 从监控看问题是读源端慢。源端没有主键只有联合唯一键? 这样(联合唯一键批量)读是会比较慢的,跟同步链路本身关系不大。可以尝试调低批量调高并发,具体还是要看下源端的情况。 这里调低批量调高并发 是指调 scheduler 调大nr-worker 及调小 queue-size吗?

> 那就比较奇怪了,确认下源端为啥执行慢?预期执行的 sql 应该是`select * from xx where id > xxx limit 10000`,不应该花 4~5 秒。 > > 不是,是调低`input.config.table-scan-batch `,调高`input.config.batch-per-second-limit`。 可能是我表述有误, 是在增量的模式下,mysql端进行大批量的更新操作 如 insert into xxx select * from xxxx, 在同步到tidb及kafka时...

> > 那就比较奇怪了,确认下源端为啥执行慢?预期执行的 sql 应该是`select * from xx where id > xxx limit 10000`,不应该花 4~5 秒。 > > 不是,是调低`input.config.table-scan-batch `,调高`input.config.batch-per-second-limit`。 > > 不好意思。我表述有误, 是在增量的模式下,mysql端进行大批量的更新操作 如 insert into xxx select *...

> 看着不像是binlog产生慢导致的, 1) 有不带唯一索引的表 也有类似的大事务更新操作, 但同步会很快, 2)上面的表结构,我在用datax导入的测试数据的时候,他那个是微批 批量写入的机制,datax导入完了。 这个时候观察gravity 采集的同步速率也不快

> 1、可以看下具体场景 2、datax 我记得是扫表的,不是走的 binlog,自然没有这个问题。有条件可以跟 canal 或者 mysql 自身的主从比较一下,或者让 gravity 直接输出 binlog 看看。 1、我这边做了一个小测试,不能完全复现,但是有唯一索引 会比 没有唯一索引的慢一些 2、gravity的输出端output.type 直接改成stdout,同步速率会很快 ## 测试案例 ``` -- 建内存表 CREATE TABLE `vote_record_memory` ( `id` INT (11)...

> 唯一索引需要额外判断冲突,是会慢一点。但慢这么多确实不符合预期,我看下。 您好,请问有进展吗?

> 我在`MySQL`上试了一下上面提供的例子,几乎没有差别。你也试试? > > 这样的话看下目标侧为什么慢?前几年唯一索引`TiDB`似乎有锁冲突比较严重的问题,现在不太清楚情况。 这个目标端 输出的话 如果是kafka也挺慢的, 这边对于tidb端的唯一索引我也删除掉了。 我们这边的源端是 阿里云的rds 会跟这个有关系吗?

请问下是怎么解决的,我把hadoop的hadoop-yarn-api和hadoop-common导入到项目的lib下,并没有成功