美文网首页我用 Linux大数据IT在线课程
从大量文本中提取有效数据导入到数据库

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

作者: Dorm_Script | 来源:发表于2016-09-09 08:45 被阅读566次

    需求:服务端有大量的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创新之路”,就有机会天天听我瞎哔哔~

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/uvjeettx.html