2016年2月

前期build数据使用php脚本,25000条数据(以下时间均为插入25000条测得)大概要4分钟
为了加快build速度,决定采用并发支持比较好的golang来做
第一个demo使用了官方给出的操作示例,单条循环插入

for _, item := range *items {
        _, err = client.Index().
        Index("twitter").
        Type("tweet").
        BodyJson(item).
        Do()
}

改写之后,只开一个线程的话时间缩短到1分30秒
开四个或四个以上线程,时间大约30-40秒
这样做还是不够理想,毕竟我们是google级别的工程师^_^(龙哥说的~~)
然后寻找改进方法。
龙哥提到有一个Bulk方法可以批量插入数据。
一番研究之后,代码片段如下:

bulkService := client.Bulk().Index("test").Type("test")
for _, item := range *items {
    fmt.Println("[thread", i, "] ", item.UniqueId)
    r := elastic.NewBulkIndexRequest().Index("test").Type("test").Doc(item)
    bulkService.Add(r)
    // 大于阀值先存一波
    if bulkService.NumberOfActions() > MaxBulkActions {
        bulkService.Do()
    }
}
// 剩余的存一波
if bulkService.NumberOfActions() > 0 {
    bulkService.Do()
}

修改过后经测试,四线程是最优的。插入25000条数据大约只需要4秒钟。

只顾着往前走,一直没时间回顾这一年,在回家火车上的这20个小时正好可以总结一下。
这一年是人生的最大的转折点,命运真的很有趣,会在你以为无法改变的时候来一个大反转!转折的起始点就是来上海工作吧~这里我必须感谢三个人!这也是我心里一直想着的。来上海上班,我自己都从来没有想过这种可能,我经常说不喜欢大城市,多亏了俊杰,一次又一次的鼓励我来,甚至比我都在意这件事情。最后在俊杰的推荐下,我投递了简历,来到了房多多。感谢俊杰。有幸进入房多多这个人才济济的团队,要感谢刘总监。当时我自己都持怀疑的态度,只是有很强的意愿。当时技术菜如狗的我,连个斐波拉契数列都不能很好的写出来,却通过了刘总监的面试,得知通过之后实在是开心不已。感谢刘总监对我的信任。接下来就是我龙哥了,确实很巧,我跟龙哥同一天入职,同时签了入职合同。这一年来对我帮助最多的就是龙哥了。从菜如狗成长到现在,一路走来多亏了龙哥指点迷津,让我少走了很多很多弯路。感谢龙哥!
今天年终考核的结果也出来了,说实话,比我想象的好,跟妈妈说了,她也非常开心。能得到同事的肯定,很开心。其中不光有我自己的努力,还有龙哥的帮助,大恩不言谢,永远铭记于心!
工作了这一年,感觉还是很好的,公司气氛不错,没有传说中的勾心斗角,只有无私帮助,共同进步。同事们都很好相处,就像上学时期一样。能有这样的环境,实在是太难得了。我会珍惜的。这一年来结识了不了朋友,珍惜大家在一起的欢乐时光~
2016新的开始,我会更努力。爱你们!