2016-02-05 63 views
1

假设需要以典型的ETL: Extract, Transform, Load方式处理大csv文件(大约300字节长行以/ n结尾)(每行读取,分割以及插入DB中的JSON的组成)。产生共同处理文件的一个(或多个)goroutines是否有益? 需要做什么才能创建bufio.Scanner,该文件从文件的随机位置开始读取?使用goutoutines并结合缓冲读取来优化读取大文件

+1

这里最慢的部分将在DB可能插入。如果您的数据库支持使用批量插入。 – kostya

回答

1

生成一个(或更多goroutines)会有益吗?

是的,绝对。一般来说,每个E,T,L可以有3个并发的例程,并通过通道进行协调。

更多的见解,请从罗布派克自己这真棒谈话:

Concurrency is not Parallelismhttps://goo.gl/cp8xgF Talk Slideshttp://talks.golang.org/2012/waza.slide#1

+1

感谢您分享Rob Pike的讲话,真的很深刻,IMO必须看看您是否想正确使用Go –