从大量文本中提取有效数据导入到数据库

需求:服务端有大量的log日志文件。需要取每个文件的其中两列导入到数据库中

第一版:简单实现

使用cat、awk每次提取一条记录导入到数据库

time cat /Users/wen/Downloads/*.txtaa | awk -F '#' '
    {printf("insert into test.t_user_ip values(\"%s\",\"%s\");", $2,$4)}
' | mysql -h 127.0.0.1 -uroot -p123456

第二版:提高导入数据速度

每条SQL导入1000条数据,如果数据量巨大,使用此方法速度有明显提升。部分逻辑处理,使用php。

time cat /Users/wen/Downloads/*.txtaa | php -B '$data = array();' -R '
    $tmp = explode("#", $argn);
    $data[] = "(\"".$tmp["1"]."\", \"".$tmp["3"]."\")";
    if(count($data) > 1000) {
        $sql = "insert into test.t_user_ip values ".implode(",", $data).";";
        $data = array();
        echo $sql."\n";
    }
' -E ' 
    echo "insert into test.t_user_ip values ".implode(",", $data).";\n";
' | mysql -h 127.0.0.1 -uroot -p123456

** mysql只需要连接一次,然后循环读取SQL并执行 **

关注公众号"web创新之路”,就有机会天天听我瞎哔哔~

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    O感悟人生O阅读 10,250评论 2 33
  • 滑动屏幕加载数据是任何小程序中都会用到的功能,本文我就将这个功能整理给大家,希望对大家有意。我们先看看效果图: 创...
    陈楠酒肆阅读 3,241评论 1 2
  • 《你的名字》最近一直很火,连导演新海诚是某百年建筑企业社长之子的富二代身份都被扒出。 说起广大少男少女、痴男怨女、...
    写点字做点分享阅读 155评论 0 1
  • 2017-03-06 华杉 “必有事焉,而勿正,心勿忘,勿助长也。”必有事焉,一定是有具体事,在从事具体事,而不预...
    郁萍阅读 548评论 0 1
  • 窗外那棵五层楼高的梧桐树终于挡不住视线的时候,我知道冬天来了。 当坐在书房临窗的书桌前,我和那棵梧桐树近在咫尺,几...
    疏食遨游客阅读 297评论 0 3