基于Sqoop的高校海量结构化数据导入研究
2018-12-27王建军张英成
王建军,张英成,战 非,赵 侃
(西安航空学院 网络信息中心,陕西 西安 710077)
在全国教育的第10个五年计划中,教育信息化被列入国家的重点建设工程。国内一些重点高校已经率先完成了数字化校园建设,进入了智慧化校园建设阶段。2018年4月25日,教育部《教育信息化2.0行动计划》的印发,智慧校园建设进入了快车道。智慧化校园建设对高校信息化建设与发展、信息资源的共享与利用提供了新的契机,同时对高校信息资源服务提出了新的挑战[1-2]。为了解决智慧校园中信息资源来源的问题,本文根据Hadoop相关技术,结合高校信息资源现状,对高校信息资源从传统存储模式到云平台的导入进行研究。
1 高校信息资源管理现状
目前高校的信息资源的管理与使用仍存在如下问题。
1.1 数据来源复杂
高校信息资源来源繁杂,数据类型较多。既有日常教学过程数据,也有实验过程中观察记录数据和设备收集数据。由于数据产生与采集的方式以及各部门信息化应用程度不同,信息资源的存储方式多种多样。但是到目前为止,国内外对信息资源的存储管理没有统一的标准规范[3]。
1.2 数据总量巨大
受高校信息化建设水平限制,部分高校的信息系统关键信息量没有达到大数据的量级。但是,经过多年积累下来的教学活动纸质文档、科研过程数据、学生日常活动数据已经达到海量级别,而且呈指数级形式增长[4]。在智慧化校园建设过程中,对这些信息资源的挖掘与分析有助于获取更加准确的预警、预测结果。
1.3 数据分散、利用率过低
高校信息资源的存储一般由各个业务部门负责,数据共享实现困难。而且在资料迁移过程中数据丢失严重,这样对信息资源造成了极大的浪费,对高校的发展造成了巨大的损失[5]。通过基于Hadoop的云平台对现有信息资源及时整合与存储,既有利于防止了信息资源的意外丢失,又有利于信息资源的有效共享使用。
2 高校海量结构化数据导入设计
基于高校信息资源管理现状,本文针对传统数据库文件提出不同的导入方式,以招生就业数据为例进行描述。
存储于传统数据库中的高校信息资源可以直接导入基于Hadoop平台的HBase分布式存储系统,HBase存储系统中的信息资源也可直接导出到传统的关系数据库中[6]。本文通过Sqoop工具完成传统关系数据库中的高校信息资源到基于HBase分布式存储系统的导入工作[7]。
Sqoop完成高校信息资源到基于HBase的分布式存储系统的方法是:从传统高校信息资源数据库中获取元数据信息(schema,table, field, field type),把导入功能转换为只有Map的MapReduce作业,在MapReduce中有很多Map,每个Map读一片信息资源数据,进而并行地完成信息资源的拷贝[8]。为了实现传统关系数据库中的高校信息资源标准化导入基于HBase的分布数据库中,在导入之前应确定两个数据表之间的关联关系[9]。以招生数据导入为例,传统关系数据库中的“考生基本信息表”对应着HBase分布式招生信息表中的一个列族—“考生基本信息”;传统关系数据库中考生基本信息表中的数据与HBase分布式招生信息表中连续的考生基本信息行数据对应;传统关系数据库中的考生基本信息表的行、列值与HBase分布式招生信息表中的行、列对应;传统关系数据库中的考生基本信息表的主键值作为HBase分布式招生信息表中行键值的组成部分;传统关系数据库中考生基本信息表的“参数列名+列类型”对应着HBase分布式招生信息表中考生基本信息的列名[10]。这些数据关联关系如表1所示。
在设计完成传统关系型考生基本信息表与基于HBase的分布式招生信息表数据的对应关系之后,从传统关系型考生基本信息表中将数据导入基于HBase的分布式招生信息表的过程如图1所示。首先,将传统教务教学数据库的访问地址、数据库名称、数据库密码值、考生基本信息表名、导入过程需要启动的Map数量、基于HBase的分布式招生信息表名以及主键值等写入Sqoop的参数表中;然后,判断表中数据是否符合规范;最后,执行导入数据任务,所有数据都正确导入后,导入任务完成。
表1 传统考生基本信息表与基于HBase的招生信息表数据关联关系
3 结语
本文结合高校信息资源的特点,提出了基于Hadoop集群的分布式数据导入方案。下一步研究方向:进一步研究基于HBase的海量高校信息资源数据的存储,以提高高校信息资源的存储效率;其次,结合Hadoop生态系统中的MapReduce,Hive,Spark等技术对信息资源数据进一步挖掘分析,为高校智慧化校园建设服务。
图1 应用Sqoop实现关系数据库数导入HBase的流程