0.前言
最近写论文用到了比较出名的DBLP数据集,详细介绍见DBLP官网
DBLP是以XML的形式给出的,类似于
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE dblp SYSTEM "dblp.dtd">
<dblp>
<article mdate="2017-05-28" key="journals/acta/Saxena96">
<author>Sanjeev Saxena</author>
<title>Parallel Integer Sorting and Simulation Amongst CRCW Models.</title>
<pages>607-619</pages>
<year>1996</year>
<volume>33</volume>
<journal>Acta Inf.</journal>
<number>7</number>
<url>db/journals/acta/acta33.html#Saxena96</url>
<ee>https://doi.org/10.1007/BF03036466</ee>
</article>
......
<dblp>
此处将实验数据处理的过程整理如下:
1.需求
DBLP现在的数据量太大了(截止到2018-07-12 22:38,2G+),根本用不了那么多,而且在XML中不方便处理。
现在的需求是:
根据需求将一定量的数据导入到数据库(此处以mysql为例)
2.处理
经分析不难想到,问题的解决分为两步:
1.按照需求将文件截取一部分(
有人也许会说,这都是废话,谁都知道,单独列为一步, 是因为一般的编辑器,还真打不开2G+的xml
)
2.xml导入数据库
2.1截取部分文件
截取文件,我推荐的软件是UltraEdit,至于如何破解,此处不做过多赘述
然后截取你需要的数据拷贝到新的文件里即可,需要注意的是:
新文件
的末尾别忘了拷贝结束标签
2.2数据导入数据库
技术选型:
java的DM4J
+mysql
(1)数据库建表
/*
Navicat Premium Data Transfer
Source Server Type : MySQL
Source Server Version : 50527
Source Host : localhost:3306
Source Schema : mypaper
Target Server Type : MySQL
Target Server Version : 50527
File Encoding : 65001
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for paper
-- ----------------------------
DROP TABLE IF EXISTS `paper`;
CREATE TABLE `paper` (
`id` int(32) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
`author`