數據管護技術及應用前端
於明鶴1,2, 聶鐵錚3, 李國良4git
1 東北大學軟件學院,遼寧 瀋陽 110169正則表達式
2 廣東省普及型高性能計算機重點實驗室,廣東 深圳 518060算法
3 東北大學計算機科學與工程學院,遼寧 瀋陽 110169數據庫
4 清華大學計算機科學與技術系,北京 100084編程
摘要:爲了對海量數據進行充分和有效的處理、存儲以及應用,數據管護技術應運而生。數據管護技術是在數據整個生命週期內,對數據進行的主動並持續的管護,使數據獲得最大化的利用,而且大程度地延長數據的使用壽命。圍繞數據管護技術的目的、解決方案和應用,系統介紹了數據管護的處理過程和其中的關鍵技術,並介紹了幾種基於數據管護的應用,並對其技術特色進行了對比分析。最後,對數據管護技術的發展前景和將來挑戰進行了闡述。後端
關鍵詞:數據管護 ; 數據清洗 ; 數據集成 ; 元數據管理 ; 溯源管理瀏覽器
論文引用格式:安全
於明鶴,聶鐵錚,李國良.數據管護技術及應用. 大數據[J], 2019, 5(6):30-46網絡
YU M H, NIE T Z, LI G L.Data curation technologies and applications.Big Data Research[J], 2019, 5(6):30-46
1 引言
數字化信息正以前所未有的速度產生,當前科學界、產業界、社會以及平常生活中大數據方法被普遍使用。這些應用方法依賴於數據的質量及其可用性。在數據驅動的科學研究或數據密集型研究中,科學家們須要大量使用和共享各類海量的數字資源,這就要求對科學數據進行有效的收集、加工、組織、保存、發佈等。在數據科學和e-science中,將該類應用稱爲data curation或digital curation,中文譯爲「數據策管」「數據監護」「數據管護」等 。在圖書館和檔案館領域,一樣也使用「數據管護」一詞,該數據管護強調的是對數字化數據的維護、保存與增值。在該領域,基於數據管護技術的主要應用爲創建開放檔案信息系統,如歐盟的電子資源保存與接入網絡項目(ERPANET)、美國佛羅里達數字檔案項目(FDA)開發的數字資源庫(DAITSS)等用於存儲數字化信息的資源庫。與圖書館學討論的「數據管護」相比,本文着重強調進行「數據管護」自動化和智能化處理技術,更加面向專門領域的應用,更加註重具體的實現細節。
一個典型的應用案例是,在生物大數據應用中,科學家們能夠經過在線訪問現有生物和古生物數據集來研究生物多樣性。利用長期收集到的大量全球生物數據,人們能夠得到與進化過程以及物種向極地遷移相關的科學知識,更進一步地,還能夠得到關於氣候變化的知識。利用數據管護技術,能夠對收集到的生物數據和信息進行管護,並造成一個全球生物的數據管護框架。目前已有一些工做對生物收集工做者進行數據管護問卷調查,他們負責管護美國國家生物多樣性建設相關項目的各種標本。調查結果代表,在生物數據的管護中存在着極大的數據多樣性,而且爲了可以反映生物數據管護的複雜性,還須要增長更多的數據管護問題。爲了讓這些數據在將來研究中能夠對特定的領域專家之外的研究者提供說明與指導,並使數據化的生物數據可以獲得長期持續的管護,須要使用專門的元數據建立工具和數據標準,對生物數據管護工做進行長期的維護。
數據管護在學術界和工業界尚沒有統一的定義。通常認爲,數據管護是指關於數據在其生命週期,即從生成數據和初始存儲起,到繁衍變化或者廢棄刪除的整個過程當中的持續管護活動。數據管護的主要目的是使數據在後續研究及重複利用的過程當中保持可信任性,另外在商業用途中也須要確保數據的可重塑性。
圖1給出了數據管護的基本過程。該過程分爲3個階段:數據收集、數據處理以及數據 發佈。
(1)數據收集階段
該階段完成對原始基礎數據的獲取工做,主要包括數據加載和數據抽取。
數據加載主要指將外界的原始數據裝載到數據管護系統中的過程。原始數據的獲取有多種途徑。例如,在Web應用中,用戶能夠經過從網絡直接下載、網頁爬取以及利用應用程序接口(application programming interface,API)抓取等方式獲得互聯網中的信息,或者將傳統以紙質媒介記錄的信息經過掃描、人工輸入等方式存入數字化存儲媒介中。須要將這些來源不一樣、格式不一樣的信息加載到用戶使用的編程環境下,以便對數據進行進一步的處理。
圖1 數據管護的基本過程
對於每個獲取到的數據,均須要肯定它的質量及整潔度(tidiness),即數據的內容是否有效、數據格式是否易於解析。對於一個數據表格的評判主要有屬性值是否存在多值屬性、每一行或每一列表示的意義是否相同等。若是存在這些問題,則認爲該數據爲非整潔的數據,須要進行進一步的處理。
數據抽取是指利用信息抽取技術,從非結構化數據(如網頁、文本、新聞、郵件等)中識別有用的信息。與數據加載相比,系統認爲數據加載的數據是所有有效的,而數據抽取則是進一步提取更加有效的信息的過程。具體技術有實體抽取(entity extraction)、識別命名實體。例如,使用天然語言處理技術和機器學習算法從網頁內容中識別實體(如人物、地點、公司等)。
(2)數據處理階段
該階段主要將數據處理成可用的形式,主要包括數據清洗、數據轉換和數據集成。
數據清洗是指對上一階段被判斷爲低質量或非整潔的數據進行清理,從而避免因爲髒數據的存在而致使數據使用者作出不可靠的分析和錯誤的決定。
數據轉換是指對清洗過的數據進行格式轉換,以便後續使用。因爲同一含義的數據可能有多個來源和多個表達形式,所以,須要將這些數據轉換成統一格式,經過過濾、歸檔或者使用某些正則表達式對數據進行轉換,從而未來自多個數據集的同一數據進行合併。而後,用戶能夠根據自身需求,將這些數據以數據庫或文件的方式進行歸檔存儲。例如將PDF、WORD、PPT等文件格式轉換成普通文本格式。
數據集成是指將多源異構數據進行合併處理。經過消除異構性,將已有的數據和關係合併成統一的數據格式和統一的語義。在數據集成過程當中,還須要抽取元數據和記錄溯源信息,進行元數據管理和溯源管理。
數據整合是一種擴展的數據集成處理技術,能夠利用數據整合技術發現和增長新的語義,創建新的關聯關係。數據整合是一種擴展的數據集成處理,包括關聯發現、數據分類 等功能。關聯發現也稱做數據連接,利用類似性函數,如歐氏距離、編輯距離、餘弦距離、傑卡德函數等,創建數據實體之間的關聯關係。例如,將某一數據連接到WikiData或谷歌知識圖譜。數據分類指利用各類分類器,如貝葉斯、支持向量機、決策樹、KNN等機器學習算法,將數據實體進行分類或聚類。
(3)數據發佈階段
該階段主要完成數據歸檔、數據產品生成。
數據歸檔是指按照某種存儲模型,將數據進行組織和存儲。例如,將管護好的數據集保存到關係數據庫或NoSQL鍵值數據庫中。
數據發佈是指按照產品標準,將數據製做成產品並出版和發行,例如,圖書檢索數據庫、生物數據庫、遙感圖像數據庫、水文地理數據庫等。
在數據發佈過程當中,還須要考慮版本控制、隱私保護和 安全控制。
數據管護的典型應用領域以下。
● 創建管護數據庫(curated database)。管護數據庫是一種結構化的、高質量的數據庫,其中的內容是經過大量人力採集管護而成,如對已有的原始數據進行諮詢、驗證、匯聚,對新的原始數據進行解釋和合並等。許多管護數據庫已正式發佈,可代替圖書館的字典、百科全書、地名辭典等,起到權威參考書的做用。典型的管護數據庫有蛋白質序列數據的UniProt、人口統計數據的CIA World Fac ebook。
● 保證機器學習與數據挖掘的質量。目前社交推薦技術大多數採用機器學習的算法,根據已知的用戶的基本信息,預測其可能感興趣的事物或對象。利用數據管護技術,能夠在選取訓練樣本時將管護出來的集成數據做爲初始數據,使機器獲得的數據內容更爲豐富,進而提升檢測結果的準確率,從而令人們可以精確地將他們的知識添加到機器所須要學習的地方。
● 數據沼澤淨化與信息檢索。因爲如今不少數據源存在設計不良、未有效維護等問題,致使其自己成爲一個數據沼澤(data swap),從而下降了對數據的檢索能力,用戶沒法有效地對這些數據進行分析和利用。爲了將這類數據轉化爲可利用、可再生的數據湖(data lake),須要經過數據管護技術對其進行「淨化」。一方面對數據集自己進行清洗和分類;另外一方面,對新引入的數據進行系統歸檔,以便使該數據集一直維持在「清澈」狀態,方便用戶對數據進行檢索訪問。
● 數據質量保證與數據治理。數據管護者在進行數據管護時,會長期對數據自己進行監督管理,從而使其監管下的數據一直保持在「潔淨」狀態。例如,對於生物大數據,須要對生物多樣性提供有效的保證,經過在物種分佈建模過程當中使用數據管護技術對數據源進行追蹤,保證生態圈的健全性。
2 關鍵技術
圖2給出了數據管護系統框架。在接口層分爲管護者(curator)和普通用戶2種類型的接口,管護者具備工做流管理的權限,包括數據抽取、數據整合、數據清洗、數據歸檔和數據發佈。普通用戶能夠對數據進行檢索和查詢,並將結果以可視化的形式顯示。支撐層包括元數據管理、溯源管理、版本控制和訪問控制4個模塊,經過在4個模塊上的操做能夠對底層數據進行訪問。數據層分爲管護數據庫和元數據數據庫,元數據數據庫用於存儲該數據集中的全部基本數據,用戶權限等操做信息則存放在管護數據庫中。
圖2 數據管護系統框架
2.1 數據抽取
對於抽取的數據,須要判斷其質量及整潔度。目前數據判斷的方法主要有2種:第一種方法爲視覺化評估,即直接將數據加載到已有的應用軟件(如Excel、GoogleSheet等)中,經過人工閱覽數據的方式來檢查數據的質量和整潔度;第二種方法爲程序化評估,即經過編寫程序的方式來檢查數據的摘要和特定部分,如數據的頭部或尾部。
2.2 數據清洗
數據清洗技術包括對髒數據的發現與修復技術。數據清洗能夠分爲手動和自動2種方式。手動方式指人工對數據進行修正或清理,該方法操做簡單,可是存在着效率低、成本高的問題。所以,該方法僅適用於須要清洗的數據量極少的狀況。自動清洗指經過編程的方式完成對數據的清洗。在利用程序對數據進行清洗時,首先要肯定數據清洗的標準,包括數據中的關鍵詞以及表格的屬性標準。基於這些標準,用戶能夠經過編寫相應的程序對數據存在問題的地方進行清洗與修正。當完成清洗程序並結束運行後,還要對清洗結果進行測試,以保證數據獲得了有效的處理。測試能夠採用與數據質量評估相同的方法。此外,爲了保證正確性,在數據清洗以前一般要對原始數據進行備份,以保證進行了錯誤處理後的數據能夠恢復。
目前在學術界和工業界有大量的工做研究和設計相應的數據清洗算法。對於髒數據發現問題,現有算法大可能是使用完整性約束進行設計,經過捕獲數據庫須要確保的完整性規則(如函數依賴、否認約束等)來設計髒數據的斷定條件。經過這種基於規則的算法,能夠捕獲冗餘、不一致以及缺失值等狀況。當捕捉到這些髒數據後,須要對其進行修復,以保證數據的質量。在修復階段,須要考慮修復程度與修復效率的平衡問題,現有方法經過制定修復標準以及設計修復模型來實現。對於修復標準,現有算法一般會制定多種關於數據和質量規則的 假設,包括信任所聲明的完整性約束,將全部不知足約束條件的數據更新並移除錯誤;信任所給出的數據完整性,容許必定程度的放 鬆約束;對數據和完整性同時變化的可能性 進行檢測。現有的修復技術大多隻能解決一種類型的錯誤,但已有一些工做開始考慮多種類型錯誤之間的相互影響,並提出一種數據的總體修復方法。在修復效率方面,現有算法主要採用2種策略來設計修復模型:一種策略是採用全自動機制,如根據某種代價函數,計算原始數據集與修復後的數據集間的距離,使代價最小化;另外一類策略則在修復過程當中引入人工操做,識別錯誤並建議修復的方法,或經過機器學習模型來執行自 動修復決策。
在現有的數據清洗算法中,基於規則的髒數據發現與修復是目前比較廣泛的技術之一。基於規則的算法因爲在結構化數據中容易發現規則並以此肯定和清洗數據,所以具備很大的優點。可是,對於非結構化或半結構化數據(如JSON或文本數據),因爲規則難以捕獲,所以沒法得到很高的效率。近年來,一些研究引入了人工手段設 計數據清洗算法。這些採用衆包技術的算法一般在監督學習算法中採用主動學習等方法選取更爲有用的信息,以提升學習的效果,從而保證數據清洗的質量。基於衆包技術的方法能夠經過用戶的反饋,避免可能因爲完整性約束而致使制定有害規則,從而使清洗結果更知足用戶需求。除了上述問題外,目前數據清洗技術還面臨的一個問題是如何保證處理海量數據的穩定性。隨着大數據時代的來臨,如何對大規模、快速增加的數據進行有效的清洗是一個重要的挑戰。現有的方法主要 採用冗餘檢測的分塊技術、基於採樣的清洗技術、分佈式數據清洗等來解決這一問題。
2.3 數據集成
數據集成技術是指未來自於不一樣數據源、不一樣結構的數據整合在一塊兒,以實現對數據內容的擴充。具體而言,數 據集成主要分爲以下3個部分。
● 模式匹配:對給定的兩個或多個模式中的元素生成相應的聯繫。
● 實體解析:從全部的數據中識別出在現實世界中表示同一實體的多個記錄。
● 數據整合:對於同一實體中出現分歧的內容進行解決,並找出正確結論。
在模式匹配階段,主要完成的是對不一樣來源或結構的數據實現模式級的匹配,即找出表示同一內容的元素。因爲各個數據集來源不一樣,可能會存在異構的狀況。所以,在模式匹配階段,首先要對異構的數據模式進行調和,針對不一樣來源的數據生成一個統一的結構;而後,對數據中的屬性進行匹配,將各個數據中的屬性都與調和後的結構中的屬性相映射;最後再對數據中的語義關係進行映射,以保證調和數據可以被正確闡述。
在實體解析階段,主要是識別出在現實世界中表示同一實體的記錄。在近幾年的研究中,實體解析做爲數據集成的一個核心組件,獲得了普遍的關注與研究,目前對實體解析問題的研究主要包括以下3個步驟。
● 在一個或多個屬性值上創建塊函數,利用該函數把實體切分爲幾個塊,而後,對最不類似的實體對進行過濾,從而減少須要進行匹配的數據數量。
● 使用給定的類似性函數或規則定義記錄間的類似性,將知足閾值的記錄對認爲是能夠匹配的。
● 經過聚類算法將記錄進行分類,即將表示同一實體的記錄放在相同的類別中。
在數據整合階段,將表示現實世界中同一實體的多個記錄進行整合,造成一個簡單、一致、乾淨的數據。在數據整合階段,最關鍵的部分是真值發現,即肯定來自多個數據源的數據中的真值。現有對數據整合的研究工做主要能夠分爲3類:第一類是對特定數據(如時態數據、圖數據)的整合問題的研究;第二類是利用數據特性(例如長尾效應)和專家領域知識等技術對傳統整合技術的性能進行優化;第三類是新興的數據整合問題(如知 識融合、基於查詢的數據整合等)。
數據集成面臨的一個主要問題是如何選擇數據。因爲不一樣的相關數據源具備大量的重疊數 據,目前的研究工做採 用機率統計、時間感知選擇等技術,設計合理的算法來選擇一個好的數據源查詢順序,從而提升響應速度。除此以外,數據集成面臨的另外一問題是如何對來自不一樣數據源、不一樣格式的數據進行整合,參考文獻等採用最小代價模型、輕量級摘要構建、統一的虛擬模式等方法執行對異構多源數據的查詢,從而達到異構數據集成的目的。除此以外,在大數據環境下,數據集成所要處理的數據是來自不一樣數據源的多模式、跨領域的數據。所以,傳統的基於某一特定領域而且模式已知的模式匹配技術沒法直接應用。對此,能夠從尋找實體在不一樣領域下的異構特徵、識別出與實體相關的完整屬性特徵集合等方面開始着手研究。
2.4 元數據管理
現有對元數據管理的研究大多以設計和開發元數據管理系統的形式實現對元數據的管理。目 前設計元數據管理系統主要有兩類方法。第一類方法爲存儲元數據分析,該類方法把元數據視爲整個數據的一個全局組件,每個查詢或分析都要經過該組件來執行。第二類方法把數據湖分解爲多個數據池, 而每個數據池都是某一特定類型的數據。在這種方法裏,數據的存儲、元數據管理、查詢對於每類數據都是不一樣的,而這樣的方法有助於確保數據的特殊性。
在數據湖應用中,原始數據在沒有被查詢前,都是以最原始的狀態存儲的,而且沒有任何明確的模式,這被稱爲「schema-on-read」或延時綁定。可是,隨着海量數據以飛快的速度涌入數據湖,數據顯式模式的缺少會迅速地致使數據湖變爲實用性較低的數據沼澤。所以元數據管理成爲數據湖的重要組成部分。另外,一個有效的元數據管理系統也是數據可以被有效地檢索、查詢和分析的重要保證。元數據能夠 分爲數據集內部和數據集間的元數據等類型。其中,數據集內部的元數據構成了各個數據集的概述輪廓,這些元數據包括描述內容的屬性以及數據集的統計性、結構性的信息。而數據集間的元數據代表了不一樣的數據集或其屬性間的關係,這些元數據包括數據約束(如包含依賴)、鏈接性、親和性等其餘性質。
當前已有不少成熟的元數據管理系統,可是這些管理系統各自獨立開發,同一開發者開發的產品具備很好的兼容性,可是在跨系統進行元數據管理時,這些系統的性能不盡如人意。另外,現有的元數據管理技術研究的大部分是表層的元數據,即用於定義數據的數據,忽略了深層的用於數據間的關係的數據。這樣的關係元數據須要在半結構化數據中經過社區發現等技術分析獲得。經過這些關係元數據,能夠更好地保證數據的質量,同時進一步幫助用戶理解數據集的含義,以便後續對數據的應用。所以在將來的工做中,能夠從上述兩個方面着手設計更加完善的元數據管理系統。
2.5 溯源管理
溯源信息一般是指描述最終產品生產過程的任何信息,包含關於實體、數據、處理、活動等在生產過程當中的各類元數據。本質上,溯源信息能夠看成描述整個生產過程的元數據。而溯源信息的收集(也稱做捕獲)和處理是十分重要的,例如,能夠利用溯源信息進行質量評估、重現性保證以及對最終產品的信任加強。根據溯源管理的範圍,按照從通常化到特殊化或檢測程度從低到高,能夠把溯源的類型分爲溯源元數據、信息系 統溯源信息、工做流溯源信息和數據溯源信息。
溯源元數據是最基礎的溯源信息,包含了在生產過程當中全部可能出現的元數據。它給用戶提供了對最終產品和生產過程當中的任何溯源信息的建模、存儲和訪問操做的最大程度上的自由,而且還支持對那些內部不容許公開的溯源管理的私有解決方案進行分類操做。另外,溯源元數據不須要對包括溯源操做、溯源信息的數據模型等涉及底層處理的操做加以限制或假設。所以,溯源元數據被定義爲描述使用任何數據模型和計算模型的任一輩子產過程的元數據。
信息系統溯源信息是指在涉及信息傳播(例如存儲/檢索、通訊、信息發佈)的信息系統中有關處理過程的元數據。儘管每一個過程的內部一般是未知的,可是溯源信息能夠經過處理過程的輸入、輸出和相關參數而收集到。
在工做流溯源信息中,工做流可看做一個有向圖,其頂點爲帶有輸入、輸出或參數的任意函數或模塊,邊爲這些模塊之間的預約義數據流或控制流。根據這個處理過程模型,支持工做流溯源的系統利用工做流圖中的全部信息,提升了對溯源收集的檢測程度。在工做流圖的特徵發生變化時,這種豐富的信息容許處在不一樣應用領域的溯源信息具備不一樣的形式和粒度。
數據溯源信息容許以「最高分辨率」追蹤單個數據項的處理,即溯源本 身是處於單個數據項及它們所經歷的操做的級別。收集數據溯源信息一般應用在結構化數據模型和聲明性查詢語言中,而且在這一過程當中,數據溯源信息還利用了清晰語義,即基於代數、微積分或其餘形式化方法。這也是數據溯源在工做流溯源的上一層(即數據溯源的檢測程度級別最高)的緣由。
對於數據溯源 問題,其重要的兩個方面是數據標註與版本控制。數據溯源問題能夠被解釋爲標註的一種形式,即用數據的溯源標註數據元素。大多數被管護的數據都是與現有的數據結構的標註相關的,這種標註能夠經過關係數據庫中的主表所表現,可是有時某些數據的最新性和有效性的重要信息被保存在輔助表中。實際上標註數據本質上是半結構化的,而且一般存在於輔助數據庫中。對「內核」數據的查詢一般不會識別這種標註數據,這就是管護數據庫中產生錯誤數據和髒數據的主要緣由之一。目前有不少數據溯源工做在着手解決這一問題,例如參考文獻都是基於Polygen模型進行設計的,於是,數據的溯源對查詢形式十分敏感。而對於版本控制問題,爲了保證溯源過程當中引用的版本是合適的,一種直接的方法是將數據的全部版本都存儲下來,這樣用戶就有責任引用正確的版本,並從多個版本的數據中返回正確的查詢結果。可是這種方法對於經度查詢(如「最近的4個版本都更新了那些內容?」)難以處理。由於對於這類問題,這些方法須要將每個相關數據至少瀏覽一次才能回答。爲了解決這一問題,能夠只存儲連續版本間的變量。可是這類方法對於「返回全部存在指定實體的版本」這類問題仍須要遍歷全部相關版原本返回結果。爲了解決這些問題,參考文獻[51]提出了一個歸檔的方法來平衡這兩類方法。參考文獻也經過面向版本存儲引擎、在關係數據庫之上添加版本模塊等方法解決版本控制問題。
因爲溯源管理能夠對數據的發展乃至源頭加以追蹤,在將來的研究中,能夠考慮將溯源管理結合在不一樣場景中進行應用。例如在社交網絡中,利用溯源管理技術能夠幫助發現和追蹤假信息或者謠言的源頭。可是因爲一些文章缺少建立者的信息,所以沒法直接追蹤到其溯源信息。對於這類問題,目前已有一些工做正在開始着手解決。除了社交網絡外,溯源管理對於區塊鏈技術也有很好的幫助。在區塊鏈中,帳本能夠被視爲一個比特幣的溯源記錄,這樣區塊鏈技術就能夠在其餘情境下記錄溯源信息,如供應鏈溯源等。
3 典型數據管護系統及工具
本節首先介紹近年來推出的幾種具備表明性的數據管護系統和工具,主要內容包括:系統結構、功能模塊、應用範圍等,並對目前流行的典型數據管護系統的特色進行比 較和分析。
3.1 DBWiki
DBWiki是英國愛丁堡大學開發的一個支持數據管護的多用途數據平臺。該平臺收集數據並建立管護數據庫,該系統還支持版本追蹤、起源跟蹤、註釋等一些數據庫系統不常提供的功能。同時,DBWiki將使用的便捷性和百科的靈活性與數據庫的魯棒性和穩定性相結合,提高自身的性能。DBWiki系統結構如圖3所示。
在平臺構建方面,該平臺分爲數據存儲層、數據訪問與修改層、請求與響應層。在數據存儲層,DBWiki是基於分層數據模型構建的,採用有序、肯定的數據樹對數據進行建模,而且每個樹節點都有一個惟一標識,每一棵數據樹都分配一個模式來描述樹中的可能路徑。DBWiki目前支持一些常見的數據和模式修改操做,包括增長、刪除、修改、重命名等,同時還支持不一樣數據樹間的節點或子樹的複製、粘貼。對於每個樹中的節點,都分配一個時間戳,用於列出該節點出現過的各個數據庫版本。基於時間戳和建立數據庫版本的操做信息,還能夠對數據節點提供溯源信息。
在數據庫查詢方面,DBWiki能夠對數據樹進行查詢,而且將結果切入該系統的Wiki頁面中,所以,DBWiki的頁面其實是結合告終構數據視圖的超文本的動態內容。目前,DBWiki支持2種查詢類型:一種是根據節點標識從數據庫中檢索節點或相應子樹,同時利用查詢可能包含的時間戳約束來過濾掉一些子樹中的節點;另外一種是基於路徑表達式,即節點標識序列,路徑表達式容許經過位置參考及某一節點的子節點的取值構成約束條件進行過濾。
在用戶接口方面,DBWiki是經過網頁瀏覽器與用戶進行交互的,而且用戶的查詢及對數據的操做是使用URL進行編碼的。一旦請求的數據被檢索,DBWiki將經過HTML生成器生成相應的響應頁面。DBWIki的一個設計標準是保持HTML的生成與系統的其餘部分相分離,從而實現高度的定製化。HTML的生成主要由3個配置文件引導:第一個配置文件是HTML模板,包含用於存放一些預約義的用戶接口組件的佔位符;第二個配置文件是CSS文件,用於規定HTML的輸出格式;第三個配置文件是佈局定義,用於說明如何把樹形結構數據映射爲HTML頁面、表格或列表。全部的文件均可以經過用戶接口進行編輯,而且經過這些配置文件使用戶在定製網頁的感官上更加靈活。
圖3 DBWiki系統結構
3.2 Vizier
Vizier是一個多模塊的數據糾錯和管理工具。該系統支持與Python、SQL的無縫集成操做以及自動數據管護和糾錯方法。Vizier將Spark做爲執行後臺,能夠處理多種格式的大規模數據集。同時該系統還支持對數據的起源和版本進行管理,從而容許協同和不肯定性的管理操做。另外,將數據表方式(spreadsheet-style)接口、記事本(notebook)模塊以及系統的可視化集成,從而對局內用戶(user in the loop)予以支持與引導,使得該工具很是易於使用。
如圖4所示,Vizier分爲前端和後端兩部分。前端的網絡用戶接口經過RESTAPI (網絡API)與Vizier進行交互,從而完成對Vizier記事本工做流的建立、查看和修改。同時該API還提供了分頁瀏覽功能,以便於對工做流中的結果數據集和各自相關元數據進行訪問。Vizier的API主要創建在3個後端組件的基礎之上,包括VisTrails、Mim ir和Spark。其中工做流是經過VisTrails進行管理的,它是一個能綜合支持數據和工做流轉換的數據探索系統。VisTrails的一個特性是在工做流步驟之間的數據流都是經過Spark數據幀實現的。所以,工做流操做步驟能夠直接被轉換爲Spark中 的操做,而且在Spark本地上直接執行。Mimir組件實現的按需ETL工具Lenses,是Vizier中數據驗證和糾錯的主要使能器。同時, Mimir組件還實現了有限形式的細粒度溯源管理,用於跟蹤工做流中的錯誤或其餘標註。
圖4 Vizie r系統結構
3.3 Clowder
Clowder是一個開源數據管護系統,它可以支持多研究領域間的多數據類型的長尾數據和元數據的數據管護。機構和實驗室能夠在本地硬件或遠程雲計算資源上安裝和定製本身的框架實例,爲分散的研究人員團隊提供共享服務。該系統採用了一個開源數據管護模型,包括有效的工做流、行爲準則、郵件列表和聊天通道。利用該系統,數據能夠被直接從儀器中讀取,或者用戶經過手動的方式上傳,而後利用Web前端與遠程合做者共享。
如圖5所示,Clowder框架聽從典型的網絡應用層次框架,使用HTML/JavaScript 網絡前端和JSONRESTful網絡服務API做爲系統頂層架構。其主要的網絡應用是採用PlayFramework和Scala程序語言編寫,其中Play Framework遵循的是模型-視圖-控制器模式。模型在圖形用戶界面和網絡API共享。而Scala特徵將會利用依賴注入爲一個或多個執行提供服務,這意味着在控制器中的代碼不會與後端服務通訊中的代碼緊密相連。整個系統的全部信息都存儲在MongoDB數據庫中,其中索引創建在ElasticSearch中,而未處理的文件則存放在文件系統中,RabbitMQ是用於實施元數據抽取的總線。
圖5 Clowder系統結構
3.4 MDCS
MDCS是由美國國家標準與技術研究院開發的一個開源的材料數據管護系統。該系統可以將材料數據捕獲、共享並將其轉換爲基於XML的結構化形式。在該系統中,數據是使用XML模式中編碼的用戶自選擇模板組織的,而這些模板被用於建立數據表單。MDCS使用非關係(NoSQL)數據庫MongoDB存放文檔。利用該系統,實現基於Web的模板驅動的表單數據檢索、基於RESTful API調用的數據搜索功能。同時,該系統還可以實現多個MDCS存儲庫之間的互聯,以支持跨搜索庫的聯合搜索。該系統自2015年發佈起,共發佈了6個版本,添加了對圖像數據、BLOB (binary large objects)等類型數據的支持,資源庫的備份與恢復等功能。
3.5 系統比較
本節對近年發佈的5種數據管護系統進行了比較,見表1。除上述DBWiki 、Vizie r、Clowd er和MDCS外,還包括幫助數據科學家探索和管護數據的CURAR E系統以及處理醫學影像的MA TA系統。
表1比較了上述系統所能實現的功能,包括支持的數據模態,是否可以實現數據清洗、數據抽取(包括實體識別、數據分類、數據標註)、數據整合(包括模式匹配及實體連接)等功能,是否可以對元數據進行處理,是否可以進行版本控制和溯源,以及是否可以實現可視化、檢索、發佈。從表1中能夠看出,各個系統都可以支持包括元數據在內的多種類型和格式的數據,而且對這些數據都進行了整合操做,最後將其結果可視化地返回給用戶,這是由數據管護的目的所決定的,而且全部系統均支持簡單的搜索操做。因爲部分系統處理的數據在輸入時已保證是乾淨、有效的,所以不具備數據清洗和抽取的功能。對於版本控制及溯源功能,因爲Clowder、CURARE和MATA均存儲的是當前的最新數據,並不對歷史數據進行追蹤,所以不具有版本控制和溯源的功能。
4 問題與挑戰
在工業界,數據自己已經被各大公司和機構認爲是一種重要資產,這些數據不只須要存儲起來,並且須要對其進一步評估,發現其現有或潛在價值,而且捨棄其中無價值的部分。因爲數據海量性以及來源多樣性的問題,數據管護技術成爲科學界和工業界用於處理數據資產的重要手段,而且逐漸獲得普遍的關注。目前,有包括Vizier、Clowder等在內的數據管護軟件和資源,利用這些產品能夠實現對用戶數據的清洗、歸檔以及管理工做。
儘管這些數據管護產品在不斷地上線更新,可是在處理這些數據時還有許多問題須要解決。對於一個公司或機構而言,若是想要實現數據的合理正確管護,須要大量的人力物力投入,如選擇合適的人員策劃如何管護數據,並選擇合適的數據管護工具實現這一目標,或者自行開發一個符合自身要求的數據管護產品,實現對本公司數據資產的維護與管理。
5 結束語
數據管護技術是對海量數據進行有效處理的重要手段之一。數據管護技術經過對原始數據的清洗、集成、歸檔等操做,有效地提升了數據的使用率,並減緩了其淘汰的速度。本文圍繞着數據管護技術的發展示狀,系統介紹了數據管護中的關鍵技術和解決策略,並介紹了其在不一樣領域的應用。能夠看出,數據管護技術已經在學術界和工業界獲得了普遍的研究與應用。最後,本文提出了數據管護技術的發展前景與將來挑戰,在從此的研究中將會根據這些問題進行更深刻的探索與研究。