代码拉取完成,页面将自动刷新
1. 调试环境准备 1.1. 数据和用户 - 在Linux环境下创建一个dbuser用户,所有数据库操作,都用这个用户进行。 - 链接PostgreSQL的用户命是:dbuser,密码是:password,数据库名字是exampledb, 命令行如下: psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432 1.1. 在Linux用户dbuser的home目录下,有如下几个文件 dbuser@hy:~/script$ ls .. -lh total 2.3G -rw-r--r-- 1 dbuser dbuser 2.3G Oct 18 21:36 pubmed24n.ndjson -- 这个题目给出的数据文件 drwxr-xr-x 5 dbuser dbuser 4.0K Oct 19 18:51 script -- 这个就是本目录,也就是这些源码所在的目录 2. 源码文件说明 2.1. 源码目录 dbuser@hy:~/script$ ls -lah total 88K drwxr-xr-x 5 dbuser dbuser 4.0K Oct 19 18:58 . drwxr-xr-x 3 dbuser dbuser 4.0K Oct 19 18:58 .. -rwxr-xr-x 1 dbuser dbuser 222 Oct 19 17:32 c.sh -- 这个用来编译所有java源码 drwxrwxr-x 2 dbuser dbuser 4.0K Oct 19 18:50 ddl -- 这里面是创建PostgreSQL数据库表文件的脚本 drwxrwxr-x 2 dbuser dbuser 4.0K Oct 19 21:01 fastjson -- 这个目录里面存放fastjson的jar包文件,这个是一个第三方组件,用来解析json字符串 -rw-r--r-- 1 dbuser dbuser 921 Oct 19 18:15 GenImportSQL.java -- 这个是把pubmed24n.ndjson数据转换成SQL insert脚本的主程序 -rwxrwxr-x 1 dbuser dbuser 75 Oct 19 18:08 ins.sh -- 这个用来执行ins.sql脚本,把数据插入PostgreSQL数据库的shell脚本 -rw-rw-r-- 1 dbuser dbuser 36K Oct 19 18:51 ins.sql -- 这个是转换之后的SQL脚本 drwxr-xr-x 2 dbuser dbuser 4.0K Oct 19 18:41 jd -- 这个里面是转换ins.sql脚本需要的一些java子类 -rwxrwxr-x 1 dbuser dbuser 64 Oct 19 18:20 psql.sh -- 这个是进入psql命令行的脚本 -rw-rw-r-- 1 dbuser dbuser 804 Oct 19 18:58 readme.txt -- 本文件 -rwxr-xr-x 1 dbuser dbuser 74 Oct 19 18:51 r.sh -- 运行GenImportSQL.class的shell脚本 -rwxr-xr-x 1 dbuser dbuser 75 Oct 19 18:26 v.sh -- 这个是启动vim的shell脚本 3. 优化过程 3.1. 第1阶段,分成两个步骤。 第一步,用java程序把.ndjson数据文件转换成SQL的插入脚本。 第二步,用psql执行sql插入脚本,把数据插入数据库。 3.2. 第2阶段,把上面两个步骤,合并成一个步骤。 java程序直接链接PostgreSQL服务器,把生成SQL语句直接发给服务器执行。 去掉写SQL文件的环节,也省掉了再从文件导入服务器的环节。 3.3. 第3阶段,用多线程来解析ndjson文件。 每个线程负责解析文件中的一段。 (结束)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。