美文网首页我用 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创新之路”,就有机会天天听我瞎哔哔~

相关文章

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

    需求:服务端有大量的log日志文件。需要取每个文件的其中两列导入到数据库中 第一版:简单实现 使用cat、awk每...

  • SQL 命令

    SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELETE - 从数据库中删除数据 ...

  • sqoop常用命令

    1、列出mysql数据库中的所有数据库 2、连接mysql并列出数据库中的表 3、把数据从mysql导入到hdfs...

  • 性能测试如何准备测试数据

    读者提问: 『性能测试准备测试数据,我是从数据库中把数据提取出来,放在 TXT 中,是否需要直接从数据库中访问数据...

  • 将TXT文本文件中的数据分列导入Excel表格中

    如果需要将TXT文本文件中的大量数据导入到Excel表格中,并且要求每行数据中特定个数的数值占据1列,则可以使用E...

  • 数据库系统概论(3)

    一些最重要的 SQL 命令 SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELET...

  • 数据库

    一些最重要的 SQL 命令 select - 从数据库中提取数据 update - 更新数据库中的数据 delet...

  • 达梦数据库逻辑备份(dexp/dimp)介绍

    达梦数据库中dexp/dimp工具可用于对数据进行迁移。dimp命令用于把dmp文件从本地导入到远程数据库服务器,...

  • .Net学习之--SQL Server(二)

    一些最重要的SQL语句: SELECT - 从数据库中提取数据 UPDATA - 跟新数据库中的数据 DELETE...

  • MySQL逻辑备份过程

    原文链接 MySQL的逻辑备份是使用mysqldump命令(文本备份,而非二进制备份)来从数据库中提取数据,并将结...

网友评论

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

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