【摘 要】學生電子履歷建設對于學習實習、職業(yè)規(guī)劃、求職晉升等方面有著重要意義。通過分析現(xiàn)狀,從web網(wǎng)站分布式技術(shù)架構(gòu)中引入NoSQL數(shù)據(jù)庫,與關系型數(shù)據(jù)庫相結(jié)合,為結(jié)構(gòu)化信息、非結(jié)構(gòu)化數(shù)據(jù)的存取提供一個統(tǒng)一數(shù)據(jù)模型接口,便于應用。
【關鍵詞】履歷 非結(jié)構(gòu)化數(shù)據(jù) NoSQL 統(tǒng)一數(shù)據(jù)模型
【中圖分類號】G 【文獻標識碼】A
【文章編號】0450-9889(2014)10C-0187-03
構(gòu)建現(xiàn)代職業(yè)教育體系,推動進入終身教育社會,其中學生履歷管理是保障條件之一。在學生經(jīng)歷普通教育、職業(yè)教育、繼續(xù)教育的過程中,會產(chǎn)生大量有價值的教育培訓、職業(yè)經(jīng)歷、工作業(yè)績等信息,需要保存在履歷中,用于求學、實習、求職、晉升等證明。
履歷信息具有“碎片性”和“發(fā)展性”兩個基本特性。其中“碎片”是信息具有零碎、繁雜、多樣的橫向特性。履歷中使用類別項進行分類,主要分為:個人信息,專業(yè)信息,課程成績,職業(yè)操行,培訓認證,獎懲,實踐創(chuàng)新與其他?!鞍l(fā)展性”是指隨著學生成長成才,發(fā)展進步,履歷信息會逐步變遷,級別晉升,證書升級等。過程性信息需要保留,方便統(tǒng)計職業(yè)發(fā)展軌跡,研究成才規(guī)律。
一、當前研究現(xiàn)狀
目前對履歷信息管理研究集中在人力資源管理和檔案管理。如陳哲娟研究了履歷業(yè)績評價在領導干部選拔任用的作用、業(yè)績評價指標等。劉大衛(wèi)論證履歷深度分析法在高管人員甄選中的作用,并指出其使用的局限性。田瑞強等從履歷研究的發(fā)展、數(shù)據(jù)源、分析方法及存在缺陷等方面進行了闡述,同時指出了履歷研究的發(fā)展趨勢,從理論上對科技人員履歷及人才流失問題進行了分析探討。同時,履歷被引入產(chǎn)品管理范疇,對產(chǎn)品履歷的研究也逐步成為熱點。郝玲、陳勇等研究農(nóng)情履歷、現(xiàn)代信息采集手段在現(xiàn)代精準農(nóng)業(yè)、農(nóng)業(yè)信息管理中的應用。丁偉將電子履歷應用于軍隊車輛裝備管理,提高了車輛裝備管理的效率和科學化水平。
現(xiàn)代履歷信息管理系統(tǒng)信息存儲環(huán)節(jié),經(jīng)歷了從紙質(zhì)履歷到Excel表格文檔,正逐步向關系型數(shù)據(jù)庫遷移的階段。在當前工程實踐中,信息數(shù)據(jù)源主要有以下四種方式。
(一)文件系統(tǒng)方式
以文件格式作為數(shù)據(jù)源,管理傳感器采集設備上傳的非結(jié)構(gòu)化數(shù)據(jù),存放于服務器文件系統(tǒng)中。
優(yōu)點是存取速度快,操作方便。
缺點是隨著數(shù)據(jù)規(guī)??焖僭鲩L,目錄結(jié)構(gòu)混亂,難以管理;無法與應用層權(quán)限管理協(xié)同使用,存在安全隱患;數(shù)據(jù)難于遷移。
(二)關系型數(shù)據(jù)庫方式
將非結(jié)構(gòu)數(shù)據(jù)直接存放到數(shù)據(jù)庫表的二進制字段中。優(yōu)點是有較好的安全性,實現(xiàn)數(shù)據(jù)存取操作的一致性。缺點是數(shù)據(jù)庫IO是整個系統(tǒng)的性能瓶頸,使得數(shù)據(jù)表規(guī)模快速增加,進一步降低性能。
(三)專用商業(yè)數(shù)據(jù)庫
應用范圍較窄,且代價昂貴。
(四)云計算平臺
公用云計算平臺提供了大數(shù)據(jù)解決方案,但由于行業(yè)特殊性,公有云的安全性還需要評估。
本文在文件、關系型數(shù)據(jù)庫基礎上,引入NoSQL數(shù)據(jù)庫,綜合使用三種數(shù)據(jù)源,提供一致的數(shù)據(jù)模型接口,實現(xiàn)結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)同步管理,按照時間標簽階段性保存履歷更新,從而優(yōu)化履歷的管理,提高信息共享與復用。
研究農(nóng)情履歷超文本信息規(guī)范存儲管理的關鍵技術(shù),構(gòu)建一致的模型層,引入元數(shù)據(jù)、時間標簽、NoSQL等技術(shù),構(gòu)建履歷信息的存儲系統(tǒng)原型。
二、系統(tǒng)設計
(一)系統(tǒng)功能設計
系統(tǒng)功能模塊:學生個人信息管理;教學培訓信息管理,包括課程成績、考勤、培訓認證活動管理;獎懲信息管理;實習實踐活動管理;信息檢索、排序、統(tǒng)計等。
(二)系統(tǒng)框架分析
系統(tǒng)按照MVC模式進行分層設計,系統(tǒng)構(gòu)架如圖1所示。具體功能如下:
1.視圖層——提供用戶UI,用于接收來自智能傳感器上傳的影像、圖片或其它非結(jié)構(gòu)化數(shù)據(jù),記錄傳感器節(jié)點信息,并標記文件流的元數(shù)據(jù)。
2.控制器層——根據(jù)訪問路徑(如url)得到用戶請求意圖,處理請求,并調(diào)用Model層完成數(shù)據(jù)流的存儲或讀取。
3.Model層——根據(jù)Controller要求,完成具體的數(shù)據(jù)庫操作。
4.數(shù)據(jù)源系統(tǒng)——由關系型數(shù)據(jù)庫、非關系型數(shù)據(jù)庫及擴展文件系統(tǒng)三部分組成。其中結(jié)構(gòu)化信息和非結(jié)構(gòu)化數(shù)據(jù)元信息存儲在關系型數(shù)據(jù)庫中,非結(jié)構(gòu)化數(shù)據(jù)存放到非關系型數(shù)據(jù)庫NoSQL及私有云計算平臺上。
5.控制采集中心——對系統(tǒng)進行管理與維護,能實時監(jiān)測系統(tǒng)的運行狀態(tài),查看監(jiān)測對象的履歷信息,進行分析與決策,并控制定時與隊列模塊運行管理,及時更新數(shù)據(jù)信息。
圖1
(三)系統(tǒng)選型
表1 軟件選型
軟件名稱 作用
Ubuntu 服務器操作系統(tǒng)
Python 程序語言,用于原型開發(fā)
Flask Web微框架
MongoDB NoSQL數(shù)據(jù)庫
Pymongo python的MongoDB驅(qū)動
Pygridfs Python的GridFS驅(qū)動
Mysqldb Python的MySQL驅(qū)動
SQLAlchemy Python的ORM套件
數(shù)據(jù)源綜合采用關系型數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫及分布式文件系統(tǒng),用于存取、檢索學生電子履歷信息。為增加可靠性,降低成本,在軟件選型中,優(yōu)先選擇成熟、穩(wěn)定的開源軟件產(chǎn)品構(gòu)建。
MongoDB 作為NoSQL 開源數(shù)據(jù)庫的一種主流分布式數(shù)據(jù)庫,基于對象/文檔形式存儲,提供BSON(Binary JSON) 數(shù)據(jù)結(jié)構(gòu)形式存儲,有便利的查詢索引方式,提供分布式文件系統(tǒng)GridFS 來進行存儲管理,使得定制信息變得靈活,擴展數(shù)據(jù)變得高效。
三、關鍵原型實現(xiàn)
(一)履歷信息采集元數(shù)據(jù)字段約定
為便于生成索引,我們需要對文件命名進行約定。“類別”用兩位數(shù)字表示采集信息所屬的類別;“節(jié)點”是指個人、組織或機構(gòu),一般值為自己、院系辦公室、授予機構(gòu)等;“證明者”對于不同類別含義不同,如果是資格證,則表示授予單位,如果是校內(nèi)活動證明等,則表示院內(nèi)機構(gòu)負責人;“審核者”是審核材料有效,允許上傳的院系、教學團隊負責人;“當前最新”是當有多項同類材料中,時間最新或級別最高的材料為當前,否則為歷史;“時間”是指材料獲取時間,為方便存儲、檢索需要,轉(zhuǎn)化為整型。調(diào)用程序語言的uuid()生成隨機唯一值,保留32bit。此外還有預留字段,用于保存不常用的信息屬性。
表2 采集信息元數(shù)據(jù)約定字段示例
其中,上表中各項值作為結(jié)構(gòu)化數(shù)據(jù),在數(shù)據(jù)采集上傳、協(xié)議解析后,按照協(xié)議生成元數(shù)據(jù),及時存入關系型數(shù)據(jù)庫MySQL數(shù)據(jù)表中。同時各項值用于生成非結(jié)構(gòu)化數(shù)據(jù)文件名。將其或ObjectId值更新到MySQL數(shù)據(jù)表的履歷表對應字段中。從而完成結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)同時添加到數(shù)據(jù)源中。
(二)信息共享利用與導出歸檔
數(shù)字化信息需要及時歸檔。通過歸檔整理,把數(shù)據(jù)庫動態(tài)數(shù)據(jù)轉(zhuǎn)化生成為靜態(tài)、只讀屬性的文件形式存放,供后續(xù)者查閱。由于網(wǎng)頁是超文本信息的天然組織者,因此優(yōu)先選擇靜態(tài)頁面方式歸檔信息,批量結(jié)構(gòu)化數(shù)據(jù)可以導出為Excel,政策文件、結(jié)果或結(jié)論性的信息按照模板格式生成PDF文檔。
(三)一致數(shù)據(jù)模型實現(xiàn)
SQLAlchemy是Python實現(xiàn)的數(shù)據(jù)隊形映射模型包,主要實現(xiàn)python對SQL數(shù)據(jù)庫的跨平臺操作?;赟QLAlchemy模型,使用pyMongo和mysqld驅(qū)動程序,對農(nóng)情信息建立統(tǒng)一數(shù)據(jù)模型。而不是直接使用SQL與原生執(zhí)行命令對數(shù)據(jù)進行管理。
限于篇幅,只給出GridFS上傳關鍵代碼示例:
// 導入必需的包
from sqlalchemy.ext.declarative
import declarative_base
from pymongo import Connection
from gridfs import *
#文件處理系統(tǒng)
class GFS:
#定義connection and fs
#初始化
def __init__(self):
#獲得單件對象
@staticmethod
def getInstance(): pass
Def put(self,name,**args):
try:
data= StringIO.StringIO()
image.save(data,format)
gf = GFS.fs.open(name,"w")
gf.content_type = "%s/%s" % (mime,format)
gf.write(data.getvalue())
finally:
Base = declarative_base()
class HypertextModel(Base):
// 使用SQLAlchemy聲明字段屬性
__tablename__ = 'picking'
id = Column(Integer, primary_key=True)
// 對照表2字段,依次聲明
//初始化方法,
def __init__(self, .....):
def write(data=[], params=[]):
dstfile = None
// 保存元素據(jù)
// 確定文件名
for x in data:
dstfile = dstfile + “_”+x
Session.add(HypertextMode(data))
Params[0] = dstfile
// 將文件上傳到GridFS
GFS.put(params)
四、結(jié)果分析
經(jīng)驗證,MongoDB在百萬條數(shù)據(jù),單條數(shù)據(jù)低于5K時,性能低于純文件系統(tǒng)50%左右。當單條數(shù)據(jù)逐漸增大時,兩者差距逐漸減小。當數(shù)據(jù)規(guī)模處于大尺寸,如高清圖片、視頻時,MongoDB的性能穩(wěn)定,并可輕松擴展成數(shù)據(jù)庫集群。
隨著新一代信息技術(shù)的發(fā)展,物聯(lián)網(wǎng)、云計算等技術(shù)在電子履歷各個環(huán)節(jié)中應用日趨深入。學生電子履歷信息采集的數(shù)據(jù)具有橫向“碎片化”,縱向發(fā)展性等特征明顯,信息過載癥狀顯現(xiàn)。通過引入MongoDB和MySQL混合數(shù)據(jù)庫技術(shù),結(jié)合分布式文件系統(tǒng),構(gòu)建統(tǒng)一數(shù)據(jù)模型接口,充分利用兩者優(yōu)勢,實現(xiàn)了數(shù)據(jù)的有序、高效、安全地存儲,有效降低成本,提高了項目效益。在后續(xù)的研究中,對數(shù)據(jù)格式、傳輸協(xié)議等規(guī)范,數(shù)據(jù)共享技術(shù)需進一步的研究。
【參考文獻】
[1]陳哲娟. 履歷業(yè)績評價方法在領導干部競爭性選拔中的應用[J].中國人力資源開發(fā),2012(3)
[2]田瑞強,姚長青,袁軍鵬,等.基于科研履歷的科技人才流動研究進展[J].圖書與情報,2013(5)
[3]徐棟.基于MongoDB的SaaS數(shù)據(jù)層多租戶關鍵技術(shù)研究與實現(xiàn)[D].上海:華東理工大學,2012
[4]潘凡. 從MySQL到MongoDB[J].程序員,2010 (6)
[5]王光磊. MongoDB數(shù)據(jù)庫的應用研究和方案優(yōu)化[J].中國信息科技,2011(20)
【基金項目】2012年度廣西高等教育教學改革工程一般A類項目(2012JGA336)
【作者簡介】苗志鋒(1979- ),男,河北邯鄲人,碩士,廣西水利電力職業(yè)技術(shù)學院講師,研究方向:形式化方法,網(wǎng)絡分布式系統(tǒng),職業(yè)教育。