伍 莉,柯廣恒,王潔茹
(1.長江航道測量中心,湖北 武漢 430010)
基于預處理方式的數據文件快速錄入方法
伍 莉1,柯廣恒1,王潔茹1
(1.長江航道測量中心,湖北 武漢 430010)

通過研究逐條數據錄入方式的不足,提出了先對需要填報的數據條目進行預處理,再通過解析讀取預處理后的信息實現批量導入數據庫。實驗證明,該方法具有易操作、穩定性好、效率高等優點,同時還可有效檢驗數據資料填報的完整性,提高了成果錄入過程中的信息化和智能化水平。
預處理;批量導入;快速錄入
近年來,長江航道局高度重視信息化發展,全面推進數字航道與智能航道建設。經過多年的積累,目前已經形成了大量的航道地形、水文記錄、報告文檔、影像錄音等數字資料。這些數字資料正日益增長,呈現“井噴”狀態。如何將這些海量的航道信息資源快速、準確地錄入到數字資料管理系統之中,為更進一步數字資源共享和應用集成服務提供數據支撐,是數據管理過程中面臨的一個重要研究課題。
目前,數字資料管理系統的信息維護工作由專職文件錄入人員完成。文件錄入人員逐個文件填報上傳,期間需要填寫與文件相關的各種元數據信息,包括文件種類、制作時間、使用用途等幾十項內容,填寫中還要對各元數據的相關信息進行綜合審核。經過一段時間使用,發現操作過程中存在以下缺點:①元數據填寫時主觀因素較大,難以進行完整性和有效性的綜合檢查,可能造成填報標準不統一;②在同一批次數據錄入過程中,大量元數據信息是重復的,但逐條錄入的方式無法應用這一規律,造成重復錄入,降低了工作效率。
針對上述問題,有必要研究一種新的數據文件錄入方法,既能提高編輯填報操作中的便捷性,又能加強對錄入質量的控制,從而大幅提高工作效率。
本研究采用了一種基于預處理方式的數據錄入方案,從而同時實現了易于填報審核和批量快速錄入兩大要求。
整個快速錄入流程設計為填報信息預處理、預處理信息檢驗、批量錄入這3個步驟。首先,在預處理環境下,錄入人員批量填報、編輯需要上傳的各種數字資料包含元數據信息;接著,利用檢驗程序逐條分析錄入信息的各元數據,審核其完整性和有效性,并形成預處理后的成果;最后,通過導入程序讀取預處理成果,直接將數據批量存入數據庫并完成寫入校驗??焖黉浫肓鞒倘鐖D1所示。

圖1 快速錄入流程
3.1 預處理平臺
預處理平臺供錄入人員使用,實現對每一條待上傳文件的元數據編輯。因此對這一平臺有3點主要要求:一是使用簡單,容易上手;二是編輯功能強大,能對多條數據的相同元數據進行復制,能對多條數據的規律性變化元數據自動生成,能同時預覽多條數據及其元數據;三是具備強大的審核功能,能實現較為復雜的元數據完整性和有效性檢驗。
經過分析,開發一套獨立的預處理平臺雖然可以較好地實現上述功能,但耗時耗力更多。因此,最終采用基于微軟Excel作為基礎平臺,經過二次開發來實現預處理平臺。Excel的優勢在于,操作界面和方法一般辦公人員都很熟悉,且具備強大的基礎編輯功能和良好的二次開發接口。本研究將基于Excel,通過二次開發實現研發預處理編輯平臺。
1)填報模板設計。在XLS文件中,建立多張Sheet。其中,第一張Sheet用于錄入人員填報信息,該Sheet的每一列記錄一條待錄入的數據,每一列記錄該數據的一個元數據信息;其他Sheet用于存放元數據字典。
數據字典用于對元數據值進行枚舉定義和描述,若元數據值在數據字典中存在定義,則判定該值有效,否則判定為無效或錯誤。因此,在模板的設計階段需要進行細致的資料收集和整理工作,確保每一個可能出現的元數據值記錄在數據字典中。表1描述的就是水道地形圖資料對應的數據字典,它包含了水道名、水道位置、坐標系統、高程系統、比例尺等定義好的枚舉模板。

表1 數據字典示例
2)錄入信息檢驗設計。在數據字典建立完成后,利用Excel自帶的數據有效性驗證及函數(如vlookup等),可以方便地將單元格的數據來源設置為數據字典中對應屬性的列名,并對選擇或錄入的元數據進行關聯和約束驗證。如圖2所示,“水道名稱”單元格的數據來源為數據字典表中的名稱為“全部水道”一列單元格中的數據項,即當輸入的水道名稱為數據字典中所列出的水道名稱時,模版判斷屬性值輸入正確。

圖2 枚舉型數據填報設計
對于更加復雜的填報信息檢驗,通過Excel的公式和腳本不能完全滿足需求。例如,元數據A若填報了某值,元數據B就不能填報某值這類多個元數據間有復雜邏輯關聯的值。對于這種類型的信息檢驗,通過Excel的VBA接口進行編程開發來實現。
錄入人員通過預處理編輯平臺完成編輯和檢驗后,將文件保存形成.xls文件即可轉入下一步數據導入工作。
3.2 批量導入程序
批量導入程序的作用是,讀取預處理編輯平臺的xls成果文件,將數字資料批量自動寫入數據庫并進行入庫校驗。因此對這一程序有3點主要要求:一是自動化程度高,除了填寫必要的數據庫訪問驗證信息外,基本不需要其他操作;二是運行穩定、速度快,能夠支持大批量數據的快速錄入;三是容錯處理強,在出現批量導入過程中網絡斷開、數據庫寫入失敗等異常情況發生后,能通過數據庫回退等技術保證數據庫內容的完整性。
經過分析,研發一個獨立的批量導入程序來實現上述要求較為合適。最終,選擇采用C#來進行開發。
這是因為C#作為一種面向對象托管語言,具有安全、穩定、高效的特點,對于Excel和Oracle的訪問也有強大的接口。
1)xls讀取接口設計。對于xls文件的訪問,一般有OleDb、COM組件或者第三方訪問組件這幾種方式。OleDb方式讀取數據的時候不太靈活,對于含有表頭的Sheet不易處理,對于含有公式的單位格讀取也存在問題。COM組件是通過調用Excel主程序來對xls文件進行訪問,缺點在于Excel 版本眾多,編輯環境和導入環境不易統一,且外部調用Excel Application難以完成Excel進程,可能造成程序的死鎖或崩潰。
經過研究發現第三方開源組件NPOI對于Excel文件的讀取有以下優點:①基于.NET類庫,更容易和C#融合使用;②直接支持訪問標準的Excel格式文件,獨立性強;③經過大量用戶的使用檢驗,穩定性和兼容性較好。綜合以上因素,選取NPOI組件來進行Excel讀寫開發。
2)數據庫寫入接口設計。數字資料管理系統使用了Oracle數據庫,對其訪問即可使用.NET自帶的ADO.Net組件,也可以使用System.Data.OracleClient接口訪問,也可以使用Oracle提供的Oracle.DataAccess接口。考慮到Oracle自帶的接口能提供的功能、效率、穩定性更優,因此采用此接口完成數據庫寫入操作。在寫入操作完成后,還要對寫入的數據進行一次核查,防止寫入失敗或者未完全寫入。通過引入OracleTransaction事務操作機制,可以在檢測到異常時完全撤銷所有的寫入操作,保障了數據入庫的正確性、完整性。
以一個批次的水道地形圖為例,表2以及圖3、4演示了整個批量錄入過程:
1) 在基于Excel的預處理環境中編輯好相關元數據信息,并保存為xls文件。

表2 填寫預處理信息
2)通過批量導入程序登錄數字資料管理系統數據庫。

圖3 數據庫連接
3) 將需要錄入的數據批量導數據庫并進行校驗。

圖4 批量導入及校驗
實驗結果顯示,上傳過程中有異常會進行提示和操作回滾,能自動將表格中的內容準確無誤地上傳至數據庫相關記錄表,并在成果資料管理系統中正確使用。
本研究提出的基于預處理方式的數據文件快速錄入方法具有易操作、穩定性好、效率高等特點,除了批量操作多項數據外,可有效檢驗數據的完整性,提高了成果錄入過程中的信息化和智能化水平,為海量航道信息資源管理下的信息快速錄入提供了有效的解決思路。
[1] 祝昕剛.用Excel VBA編制變形監測數據處理程序[J].地理空間信息, 2011, 9(3):170-172
[2] 閆宗梅. Excel公式與函數的教學研究與探討[J].學園:學者的精神家園, 2013,(5):166-167
[3] 李雁敏.并發訪問ORACLE數據庫的數據死鎖分析和解決措施[J].內蒙古科技與經濟,2012,(13):79-80
[4] 崔賽英. Excel函數學習方法與技巧[J].電腦知識與技術, 2012, 8(18):4 428-4 431
[5] 曾實. ORACLE數據庫優化技術研究[J].科技信息, 2011(27):62
[6] 昌兆文,劉湖平,曾紹軍.基于NPOI導出Excel文件的研究與實現[J].中國管理信息化, 2013(15):93
[7] 劉惠祥.測繪資料檔案管理系統[J].江西測繪, 2010(3):61
P208
B
1672-4623(2017)02-0047-03
10.3969/j.issn.1672-4623.2017.02.015
2015-03-24。
伍莉,工程師,研究方向為測繪數據管理及應用。