MyException - 我的异常网
当前位置:我的异常网» 互联网 » 优化solr全量筑索引,减少索引时间

优化solr全量筑索引,减少索引时间

www.myexceptions.net  网友分享于:2013-07-02  浏览:68次
优化solr全量建索引,减少索引时间

优化solr全量建索引

主要优化从数据库取数据这一块。


先简单为读取某个单表数据:该表数据很多娄,数据库为MySQL。

旧的建索引设计:

之前的设计是分段读取数据,可以按自增主键分段或者按记录更新的时间截分段取。但由于数据模型是可增删改查,这种更新会导致按自增id的数据在有些地方比较稀疏,而按记录的更新时间截,也有可能在某个时间段里更新大量数据,所以也会有不同时间段数据过稀或者过密的情况,这种情况导致分段取数据调控不方便。。


所以一直以来solr的更新瓶颈一直是在读取数据那一块,因为是取数据跟发送数据多线程进行,实践得出花费的时间更多是在等待读取源。所以如果可以提高读取数据源的效率,那么索引时间可以缩短不少时间。



新的建索引设计 :

现在使用另一种方式读取数据源:


1)首先将远程的某个表数据写入到文件data.txt,字段以一定特殊符号间隔,方便分析,每行一条记录


2)将远程文件data.txt同步到本地机器,并处理掉某些特殊符号影响解析。

        a)这里要注意文件的一些特殊符号,导致分析失败。比如字段里包含有换行符或者分隔符。

         b)dump整个表数据到文件很快,记得写2g大小(300万)的数据,消耗30秒左右.

        c)使用linunx的rsync脚本拷贝远程文件到本地,同步时间100秒左右。

3)解析本地数据文件data.txt,并批量提交给solr

           a) 脚本程序要配置的dump 使用sql语句的字段,所以这里可以使用对应的sql(取字段名列表),获取该sql拿到的字段列表。有严格的顺序对应。

             b)以同样的顺序解析数据存到map.

             c)业务逻辑处理记录,封装数据包批量提交solr


4) solr提交的方式的优化:(主要是索引脚本跟solr服务在同一台机)

        a) solr 服务使用多core协助,一写core_w一读core_r

       b)使用EmbeddedSolrServer嵌入式提交给本地solr服务core_w。

       c)提交完数据后,发送命令切换solr的两个core.将core_w与core_r互换 

       d)同步索引,将新的core_r的索引数据同步给其它子机的core_r







http://write.blog.csdn.net/postedit/7690984


文章评论

5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员的鄙视链
程序员的鄙视链
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
每天工作4小时的程序员
每天工作4小时的程序员
10个调试和排错的小建议
10个调试和排错的小建议
我是如何打败拖延症的
我是如何打败拖延症的
总结2014中国互联网十大段子
总结2014中国互联网十大段子
为什么程序员都是夜猫子
为什么程序员都是夜猫子
漫画:程序员的工作
漫画:程序员的工作
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员应该关注的一些事儿
程序员应该关注的一些事儿
如何成为一名黑客
如何成为一名黑客
旅行,写作,编程
旅行,写作,编程
编程语言是女人
编程语言是女人
程序员和编码员之间的区别
程序员和编码员之间的区别
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
一个程序员的时间管理
一个程序员的时间管理
 程序员的样子
程序员的样子
中美印日四国程序员比较
中美印日四国程序员比较
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
Java程序员必看电影
Java程序员必看电影
程序员必看的十大电影
程序员必看的十大电影
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
老程序员的下场
老程序员的下场
我的丈夫是个程序员
我的丈夫是个程序员
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
代码女神横空出世
代码女神横空出世
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
鲜为人知的编程真相
鲜为人知的编程真相
程序员都该阅读的书
程序员都该阅读的书
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有