不为失败找理由,要为成功找方法。
大数据量

大数据量

logstash导入mysql上亿级别数据的效率问题

LogstashJea 回复了问题 • 14 人关注 • 7 个回复 • 20025 次浏览 • 2019-03-08 17:33 • 来自相关话题

内存溢出问题

Elasticsearchjianjianhe 回复了问题 • 6 人关注 • 4 个回复 • 8692 次浏览 • 2018-06-04 11:32 • 来自相关话题

大规模数据es 1.x如何迁移升级到5.x

Elasticsearchlaoyang360 回复了问题 • 5 人关注 • 2 个回复 • 3361 次浏览 • 2018-02-11 19:47 • 来自相关话题

条新动态, 点击查看
hexiaohong

hexiaohong 回答了问题 • 2018-05-16 16:08 • 7 个回复 不感兴趣

logstash导入mysql上亿级别数据的效率问题

赞同来自:

我也遇到你同样问题,可以这么解决:
1.给updated_ts时间字段加上索引。
2.分批处理原则
(1)你的SQL:每批处理100000个
SELECT a.party_id AS id ,a.* FROM PARTY_ALL_1 a WHERE a.upd... 显示全部 »
我也遇到你同样问题,可以这么解决:
1.给updated_ts时间字段加上索引。
2.分批处理原则
(1)你的SQL:每批处理100000个
SELECT a.party_id AS id ,a.* FROM PARTY_ALL_1 a WHERE a.updated_ts > '2011-11-17 13:23:58' order by a.updated_ts asc LIMIT 100000;
 
(2)logstash分页的时候每次处理50000个
SELECT * FROM (SELECT a.party_id AS id ,a.* FROM PARTY_ALL_1 a WHERE a.updated_ts > '2011-11-17 13:23:58' order by a.updated_ts asc LIMIT 100000) AS `t1` LIMIT 50000 OFFSET 0;
 
SELECT * FROM (SELECT a.party_id AS id ,a.* FROM PARTY_ALL_1 a WHERE a.updated_ts > '2011-11-17 13:23:58' order by a.updated_ts asc LIMIT 100000) AS `t1` LIMIT 50000 OFFSET 50000;
 
(3)处理两次就写一个最后一条记录的updated_ts时间到指定文件。下一个定时任务启动的时候进行循环处理就行,因为每批处理updated_ts都会改变
 

logstash导入mysql上亿级别数据的效率问题

回复

LogstashJea 回复了问题 • 14 人关注 • 7 个回复 • 20025 次浏览 • 2019-03-08 17:33 • 来自相关话题

内存溢出问题

回复

Elasticsearchjianjianhe 回复了问题 • 6 人关注 • 4 个回复 • 8692 次浏览 • 2018-06-04 11:32 • 来自相关话题

大规模数据es 1.x如何迁移升级到5.x

回复

Elasticsearchlaoyang360 回复了问题 • 5 人关注 • 2 个回复 • 3361 次浏览 • 2018-02-11 19:47 • 来自相关话题