郁毅明,洪語(yǔ)晨,王 曄,董啟文
(華東師范大學(xué) 數(shù)據(jù)科學(xué)與工程學(xué)院,上海 200062)
化工材料研究所的主要業(yè)務(wù)是研發(fā)新型材料的配方,化學(xué)配方數(shù)據(jù)繁雜多樣.隨著信息化的發(fā)展,相關(guān)企業(yè)提出了新的需求,化工材料領(lǐng)域的信息化建設(shè)也越來越復(fù)雜[1].
基于項(xiàng)目的某航天科工領(lǐng)域的材料研究所在信息化過程中使用了大量的科學(xué)技術(shù)手段,研究所的當(dāng)前業(yè)務(wù)系統(tǒng)已經(jīng)集成了相關(guān)的工藝設(shè)計(jì)管理系統(tǒng)、數(shù)據(jù)交換系統(tǒng)等.在配方研發(fā)方面采購(gòu)了各類專業(yè)性的計(jì)算仿真軟件來提升和輔助配方的設(shè)計(jì)和分析效率.
但是面對(duì)來自不同公司的種類、數(shù)量繁多的工具軟件和應(yīng)用系統(tǒng),該研究所尚未將這些不同職能的工作統(tǒng)一集中管理.圖1 介紹了當(dāng)前研發(fā)業(yè)務(wù)的流程.初始階段會(huì)分解項(xiàng)目,不同平臺(tái)各自獨(dú)立運(yùn)行,進(jìn)行材料設(shè)計(jì)、仿真計(jì)算等.但是在引進(jìn)數(shù)據(jù)中心前,它們之間的實(shí)驗(yàn)數(shù)據(jù)或配方共享存在壁壘.尤其是分布在不同科室和多個(gè)系統(tǒng)中的數(shù)據(jù)不能集中,使得大部分的數(shù)據(jù)銜接工作依賴于人工處理,并且難以從這些分散的數(shù)據(jù)中挖掘有用的知識(shí)來指導(dǎo)和優(yōu)化配方設(shè)計(jì).因此,首先需要解決如何將分散的、老舊的數(shù)據(jù)進(jìn)行上傳、存儲(chǔ)及保障數(shù)據(jù)的質(zhì)量.
圖1 材料研發(fā)業(yè)務(wù)流程Fig.1 Material research and development process
當(dāng)前,數(shù)據(jù)治理領(lǐng)域的理論研究已較豐富,但尚未有統(tǒng)一的標(biāo)準(zhǔn).因此,本行業(yè)的實(shí)驗(yàn)數(shù)據(jù)治理模塊的設(shè)計(jì)過程主要借鑒和參考一些已有的數(shù)據(jù)治理模型來指導(dǎo)架構(gòu)設(shè)計(jì),該內(nèi)容會(huì)在后文中提到.
為了解決數(shù)據(jù)治理中普遍存在的一些問題,企業(yè)界在數(shù)據(jù)治理方面也有相當(dāng)多比較成熟的數(shù)據(jù)治理產(chǎn)品.如睿智智能數(shù)據(jù)治理平臺(tái),其具有統(tǒng)一的數(shù)據(jù)安全、質(zhì)量、生命周期管理;阿里出臺(tái)的大數(shù)據(jù)開發(fā)治理平臺(tái)Data Works,是基于DataX 數(shù)據(jù)交換框架的一個(gè)平臺(tái),能夠?yàn)閿?shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)湖、湖倉(cāng)一體等方案提供大數(shù)據(jù)開發(fā)治理支持.除了上述產(chǎn)品,還有國(guó)內(nèi)外的其他產(chǎn)品,它們的主要問題都聚焦在解決數(shù)據(jù)標(biāo)準(zhǔn)不統(tǒng)一、數(shù)據(jù)質(zhì)量問題嚴(yán)重和應(yīng)對(duì)結(jié)構(gòu)化數(shù)據(jù)的治理場(chǎng)景上[2].但是不同企業(yè)總會(huì)有自己特有的需求,必須在這些已有產(chǎn)品和技術(shù)的基礎(chǔ)上進(jìn)行需求改進(jìn).雖然化工材料行業(yè)也同樣需要解決這些核心問題,但是特別的地方在于以下3 點(diǎn).
首先,實(shí)驗(yàn)數(shù)據(jù)的存儲(chǔ)和處理不規(guī)范.升級(jí)前數(shù)據(jù)和數(shù)據(jù)之間都是單獨(dú)存在的,沒有建立起應(yīng)有的聯(lián)系,甚至有一部分?jǐn)?shù)據(jù)只是簡(jiǎn)單地以文檔形式保存,打通數(shù)據(jù)壁壘并完整可靠地上傳至數(shù)據(jù)中心是數(shù)據(jù)治理需要解決的一個(gè)問題[3].另外,材料研發(fā)行業(yè)具有一定的特殊性,實(shí)驗(yàn)所需的配方組合或者實(shí)驗(yàn)結(jié)果的產(chǎn)出具有高度的不確定性.而傳統(tǒng)web 應(yīng)用的表結(jié)構(gòu)基本是固定的,不能很好地滿足表結(jié)構(gòu)頻繁變動(dòng)的需求,缺乏可迭代可擴(kuò)展的能力[4].
其次,實(shí)驗(yàn)數(shù)據(jù)的質(zhì)量無法得到保證.一方面,引進(jìn)數(shù)據(jù)中心前數(shù)據(jù)可能存儲(chǔ)在不同的介質(zhì)中;另一方面,已經(jīng)初步信息化的科室數(shù)據(jù)之間也有代差,如數(shù)據(jù)標(biāo)準(zhǔn)、數(shù)據(jù)格式、數(shù)據(jù)標(biāo)識(shí)的要求各不相同.因此,需要對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)進(jìn)行標(biāo)準(zhǔn)規(guī)范,如數(shù)據(jù)的唯一性規(guī)則、連續(xù)性規(guī)則、數(shù)據(jù)的最大最小值等.這樣可以提高數(shù)據(jù)質(zhì)量,為以后的數(shù)據(jù)資產(chǎn)共享打下堅(jiān)實(shí)的基礎(chǔ)[5].此外,在材料配方的研發(fā)方面,需要定制企業(yè)自身需要的數(shù)據(jù)標(biāo)準(zhǔn)和規(guī)范.因?yàn)樵诓牧涎邪l(fā)過程中,配方會(huì)經(jīng)由不同的科室進(jìn)行仿真、實(shí)驗(yàn)及安全老化分析,配方在流轉(zhuǎn)過程中可能因現(xiàn)實(shí)問題而存在噪聲和缺失值,在大量數(shù)據(jù)存儲(chǔ)的時(shí)候必須統(tǒng)一進(jìn)行處理[6].
最后,研究所當(dāng)前的各工作環(huán)節(jié)基本上是離散的、孤立的.研發(fā)人員為了掌握配方在各科室的進(jìn)展往往需要大量的會(huì)議來協(xié)調(diào),這極大地制約了配方設(shè)計(jì)及第三方計(jì)算軟件的應(yīng)用效果.因此,為了協(xié)助研發(fā)人員和管理人員把控材料研發(fā)進(jìn)度和掌握各配方性能,勢(shì)必要將實(shí)驗(yàn)數(shù)據(jù)資源進(jìn)行整合,而且發(fā)揮數(shù)據(jù)的價(jià)值,輔助相關(guān)人員進(jìn)行決策[7].
當(dāng)前,對(duì)于數(shù)據(jù)治理還沒有權(quán)威的標(biāo)準(zhǔn)定義.IBM 對(duì)數(shù)據(jù)治理的定義為數(shù)據(jù)治理是對(duì)質(zhì)量控制的規(guī)程[8],具體框架如圖2 中的4 個(gè)層次,層次之間并不是互相獨(dú)立運(yùn)行的.支撐域作為整個(gè)框架的支撐部分,需要為核心域提供可靠的數(shù)據(jù)保障和安全保障.數(shù)據(jù)保障指的是有統(tǒng)一的數(shù)據(jù)資源服務(wù),如元數(shù)據(jù)和主數(shù)據(jù)等;安全保障指的是對(duì)系統(tǒng)業(yè)務(wù)操作的日志審核功能,或?qū)ο到y(tǒng)內(nèi)部的安全管控等.核心域在獲得支撐域的支持后,便能在數(shù)據(jù)的全生命周期中把控?cái)?shù)據(jù)質(zhì)量.同時(shí),為了能夠制定符合公司業(yè)務(wù)需求的數(shù)據(jù)標(biāo)準(zhǔn),增強(qiáng)數(shù)據(jù)質(zhì)量管理的能力,公司和企業(yè)需要有合適的數(shù)據(jù)治理委員會(huì)或者專業(yè)的數(shù)據(jù)治理人員,這便是重要的促成因素.最后成果層是指數(shù)據(jù)治理要能夠?yàn)槠髽I(yè)規(guī)避相應(yīng)的風(fēng)險(xiǎn)并創(chuàng)造價(jià)值,以此結(jié)果為導(dǎo)向會(huì)逆向督促核心域和支撐域的持續(xù)改進(jìn)[9].
圖2 IBM 提出的數(shù)據(jù)治理框架Fig.2 Data governance framework proposed by IBM
DGI (Data Governance Institute)[10]認(rèn)為,數(shù)據(jù)治理是指在企業(yè)數(shù)據(jù)管理中分配決策權(quán)和相關(guān)職責(zé),重在關(guān)注數(shù)據(jù)治理的責(zé)任范圍和執(zhí)行流程,需要解決什么時(shí)候、通過什么流程完成決策.舉例來說,如果其他平臺(tái)接入的數(shù)據(jù)字段需要修改,應(yīng)該跟哪些部門商討,最終的修改由誰來執(zhí)行等問題.總而言之,當(dāng)前國(guó)內(nèi)外數(shù)據(jù)治理的目的就是將治理功能分模塊化處理,提高數(shù)據(jù)管理整個(gè)過程中的數(shù)據(jù)質(zhì)量.唯有保證較高的數(shù)據(jù)質(zhì)量才能實(shí)現(xiàn)數(shù)據(jù)資產(chǎn)的最大化,以此輔助企業(yè)進(jìn)行決策和降低風(fēng)險(xiǎn).
在數(shù)據(jù)治理的實(shí)踐探索中,國(guó)內(nèi)外也產(chǎn)生了大量的實(shí)際應(yīng)用.例如,在企業(yè)級(jí)應(yīng)用上有構(gòu)建了知識(shí)管理戰(zhàn)略與數(shù)據(jù)治理相結(jié)合的概念框架.在高校的信息化平臺(tái)中,有Ogier、Hall 和Bailey[11]等運(yùn)用英國(guó)格拉斯哥大學(xué)人文高級(jí)技術(shù)與信息研究所開發(fā)的數(shù)據(jù)資產(chǎn)框架 (Data Asset Framework,DAF)來評(píng)估圖書館的電子資源.其實(shí)還有很多醫(yī)療、金融、公安等方面的數(shù)據(jù)治理框架,不過都集中在熱門領(lǐng)域,化工材料這方面的特定場(chǎng)景目前還比較缺乏.
在化工材料企業(yè)的研發(fā)業(yè)務(wù)中,整個(gè)數(shù)據(jù)中心負(fù)責(zé)材料研發(fā)數(shù)據(jù)項(xiàng)目中的知識(shí)獲取任務(wù),基于配方數(shù)據(jù)、仿真數(shù)據(jù)和實(shí)驗(yàn)數(shù)據(jù)來構(gòu)建專題數(shù)據(jù)庫(kù),然后對(duì)其進(jìn)行數(shù)據(jù)分析和挖掘,根據(jù)挖掘出的知識(shí),幫助配方設(shè)計(jì)優(yōu)化以達(dá)到項(xiàng)目目標(biāo).數(shù)據(jù)中心由數(shù)據(jù)治理模塊、數(shù)據(jù)交換模塊、分析挖掘模塊、業(yè)務(wù)應(yīng)用模塊、安全管控模塊和平臺(tái)管理模塊組成.而這次的模塊設(shè)計(jì)主要是介紹其中的數(shù)據(jù)治理模塊.
數(shù)據(jù)治理是數(shù)據(jù)中心的重要部分,主要解決上述提到的化工材料企業(yè)內(nèi)的3 個(gè)關(guān)鍵問題,以此保證數(shù)據(jù)的可用性、一致性、完整性、合法性、安全性.確保數(shù)據(jù)在生命周期中有較高的質(zhì)量,為材料配方設(shè)計(jì)提供高效的服務(wù).該模塊主要包括元數(shù)據(jù)管理、數(shù)據(jù)標(biāo)準(zhǔn)管理、數(shù)據(jù)質(zhì)量管理、主數(shù)據(jù)管理和數(shù)據(jù)資產(chǎn)管理功能,如圖3 所示.
圖3 數(shù)據(jù)治理模塊架構(gòu)Fig.3 Data govern system structure
元數(shù)據(jù)的一般定義是描述數(shù)據(jù)的數(shù)據(jù),能夠做到對(duì)所有數(shù)據(jù)的抽象總結(jié).根據(jù)元數(shù)據(jù)模型,首先,我們可以提出一套基于表結(jié)構(gòu)的元數(shù)據(jù)模型.其次,基于元數(shù)據(jù)可以抽象表的結(jié)構(gòu),針對(duì)該元數(shù)據(jù)進(jìn)行修改,從而達(dá)到動(dòng)態(tài)修改表結(jié)構(gòu)的目的,而用戶無須關(guān)心底層對(duì)表的代碼實(shí)現(xiàn),并且各類元數(shù)據(jù)表中存儲(chǔ)著表結(jié)構(gòu)、外鍵等信息,表的血緣分析、關(guān)聯(lián)度分析等都基于此開發(fā).數(shù)據(jù)標(biāo)準(zhǔn)是指企業(yè)為保障數(shù)據(jù)的內(nèi)外部使用及交換的一致性和準(zhǔn)確性而制定的規(guī)范性約束,這套標(biāo)準(zhǔn)詳細(xì)介紹了材料配方研制中需要用到的所有數(shù)據(jù)存儲(chǔ)都應(yīng)當(dāng)符合制定的規(guī)則.數(shù)據(jù)質(zhì)量管理要能夠做到對(duì)數(shù)據(jù)進(jìn)行事前預(yù)防和事后診斷,并根據(jù)數(shù)據(jù)標(biāo)準(zhǔn)制定數(shù)據(jù)質(zhì)量檢測(cè)方案,所有數(shù)據(jù)的存儲(chǔ),如元數(shù)據(jù)的存儲(chǔ)都需要經(jīng)過質(zhì)量檢測(cè).主數(shù)據(jù)管理主要是為了更好地滿足跨部門或者跨科室之間的信息共享,是一種關(guān)鍵的、權(quán)威的大價(jià)值數(shù)據(jù).數(shù)據(jù)資產(chǎn)便是整套流程的最后產(chǎn)出,達(dá)到數(shù)據(jù)價(jià)值利用最大化.
2.1.1 基于表元數(shù)據(jù)的擴(kuò)展存儲(chǔ)
為了滿足材料配方研制過程中頻繁修改表結(jié)構(gòu)的需求,提出了基于表元數(shù)據(jù)的擴(kuò)展存儲(chǔ)方案.元數(shù)據(jù)是關(guān)于數(shù)據(jù)的數(shù)據(jù),是為了描述數(shù)據(jù)的相關(guān)信息而存在的數(shù)據(jù).而基于表的元數(shù)據(jù)就是描述表的數(shù)據(jù).在實(shí)際的生產(chǎn)操作過程中,系統(tǒng)還有其他的業(yè)務(wù)功能模塊.以正在研制的推進(jìn)劑配方進(jìn)行仿真實(shí)驗(yàn)為例,圖4 所示的是某科室的仿真計(jì)算表,該表將會(huì)存儲(chǔ)其他業(yè)務(wù)部門對(duì)配方進(jìn)行仿真計(jì)算后的結(jié)果.以往數(shù)據(jù)的表結(jié)構(gòu)都是固定的,但此時(shí)因業(yè)務(wù)變化,為了能夠額外展示相關(guān)配方性能的研究進(jìn)度,需要增加室溫強(qiáng)度、室溫延伸率等配方屬性.而當(dāng)前的表中只有常規(guī)的常溫、低溫、高溫這幾種屬性,業(yè)務(wù)人員在此情況下需要對(duì)表結(jié)構(gòu)進(jìn)行擴(kuò)展,方便業(yè)務(wù)系統(tǒng)計(jì)算完數(shù)據(jù)后能有新的位置存儲(chǔ).
圖4 仿真數(shù)據(jù)的表結(jié)構(gòu)描述Fig.4 Table structure description of simulation data
為了做到能夠?qū)Ρ磉M(jìn)行修改,系統(tǒng)需要一個(gè)能夠描述所有表結(jié)構(gòu)的表,只需要修改該表,表中對(duì)應(yīng)的業(yè)務(wù)表也會(huì)隨之變化,故需要維護(hù)一個(gè)描述表結(jié)構(gòu)的表.此時(shí)將會(huì)遇到幾個(gè)關(guān)鍵的問題: 后端邏輯是根據(jù)表結(jié)構(gòu)來寫的,如何在不修改后端邏輯的基礎(chǔ)上修改表結(jié)構(gòu);修改變動(dòng)不能立即生效而是需要申請(qǐng)審批后再進(jìn)行數(shù)據(jù)轉(zhuǎn)移.
首先,需要建立一個(gè)field 表作為表的元數(shù)據(jù)表.所有修改都是先對(duì)field 表進(jìn)行修改,如圖5所示,field 表存儲(chǔ)的就是元數(shù)據(jù).field 表中直接存儲(chǔ)了表名、表的列名、數(shù)值類型、是否是主鍵等信息.另外,因?yàn)閿?shù)據(jù)中心的數(shù)據(jù)庫(kù)持久化框架采用的是JPA (Java Persistence API),應(yīng)用的數(shù)據(jù)層Repository 可以繼承各類JPA 提供的倉(cāng)庫(kù),如JpaRepository 等,他們封裝了對(duì)數(shù)據(jù)庫(kù)的操作,可以直接使用JPA 提供的接口對(duì)數(shù)據(jù)進(jìn)行查詢,即直接用方法名來查詢,省去了編寫SQL (Structure Query Language) 的任務(wù).JPA 會(huì)根據(jù)不同的請(qǐng)求生成SQL 語(yǔ)句,然后調(diào)用數(shù)據(jù)庫(kù)的服務(wù)來執(zhí)行.
圖5 Field 類圖Fig.5 Field class diagram
當(dāng)管理者希望更改仿真的數(shù)據(jù)特性時(shí),可在前端頁(yè)面選擇相關(guān)業(yè)務(wù)表所對(duì)應(yīng)的field 內(nèi)容中的字段進(jìn)行直接增刪改查,而不需要像開發(fā)者一樣寫代碼.所有對(duì)業(yè)務(wù)表的改動(dòng)都應(yīng)當(dāng)先通過field來修改,如圖6 所示,修改完內(nèi)容后提交修改申請(qǐng).不同級(jí)別的管理員會(huì)根據(jù)修改請(qǐng)求是否合法進(jìn)行判斷,如果需要?jiǎng)h除部分?jǐn)?shù)據(jù)也應(yīng)當(dāng)由更高級(jí)的管理員來判斷是否合理.申請(qǐng)通過后,field 表的數(shù)據(jù)會(huì)更改,并且相對(duì)應(yīng)的業(yè)務(wù)表結(jié)構(gòu)也會(huì)動(dòng)態(tài)更改.field 表的更改和業(yè)務(wù)表的更改會(huì)根據(jù)Spring 提供的@Transactional 注解做到原子化操作.該模塊提供的對(duì)field 的操作有更改字段中文名稱、字段的名稱、字段數(shù)據(jù)類型、是否為主鍵、是否有外鍵等,并且會(huì)根據(jù)是否是數(shù)值類型進(jìn)行判斷,如果是數(shù)據(jù)類型則可以設(shè)置其最大最小值.這個(gè)在用戶查詢所有信息后,凡是擁有訪問權(quán)限的用戶,根據(jù)系統(tǒng)提供的相關(guān)提示可以自行管理field 表格,之后就不需要聯(lián)系后端或者開發(fā)人員進(jìn)行代碼上的修改.
圖6 根據(jù)元數(shù)據(jù)管理修改表結(jié)構(gòu)Fig.6 Modifying the table structure according to metadata management
2.1.2 元數(shù)據(jù)模板服務(wù)
原有的數(shù)據(jù)在各自科室的研發(fā)過程中會(huì)以傳統(tǒng)的文件格式保存下來,當(dāng)前的數(shù)據(jù)中心還需要將這些單獨(dú)的、以文件形式存在的數(shù)據(jù)上傳至數(shù)據(jù)中心,所以需要為用戶提供上傳模板.但是因?yàn)楸斫Y(jié)構(gòu)的頻繁變動(dòng),上傳要求也會(huì)隨之改變.因此,需要設(shè)計(jì)一個(gè)模板上傳服務(wù).當(dāng)前表結(jié)構(gòu)基于表元數(shù)據(jù)的動(dòng)態(tài)擴(kuò)展,所以上傳模板也按照表元數(shù)據(jù)進(jìn)行動(dòng)態(tài)修改.Apache POI 為java 提供了一系列針對(duì)微軟產(chǎn)品的操作庫(kù),系統(tǒng)使用了XSSFWorkbook 實(shí)現(xiàn)類操作Excel.在使用表元數(shù)據(jù)對(duì)表動(dòng)態(tài)擴(kuò)展后,會(huì)調(diào)用元數(shù)據(jù)模板接口,該流程會(huì)掃描剛才修改或者創(chuàng)建的表結(jié)構(gòu),讀取列信息,將信息寫到一個(gè)工作簿對(duì)象,最終以輸出流寫到Excel 文件中,并將Excel 文件推送至前端以供用戶下載.
2.2.1 數(shù)據(jù)標(biāo)準(zhǔn)管理
當(dāng)前企業(yè)存在自身特殊的數(shù)據(jù)質(zhì)量要求,保證系統(tǒng)中存儲(chǔ)的數(shù)據(jù)質(zhì)量是數(shù)據(jù)治理面臨的首要問題.目前對(duì)數(shù)據(jù)質(zhì)量有不同的定義: 數(shù)據(jù)質(zhì)量是數(shù)據(jù)適合使用的程度;數(shù)據(jù)質(zhì)量是數(shù)據(jù)滿足特定用戶期望的程度;數(shù)據(jù)質(zhì)量是指一個(gè)信息系統(tǒng)在多大程度上實(shí)現(xiàn)了模式 (schema) 和數(shù)據(jù)實(shí)例的一致性,以及模式和數(shù)據(jù)實(shí)例在多大程度上實(shí)現(xiàn)了正確性、一致性、完整性和最小性[12].
在數(shù)據(jù)質(zhì)量模塊中,根據(jù)研究所和材料配方研制的需求,模塊將數(shù)據(jù)標(biāo)準(zhǔn)分為技術(shù)標(biāo)準(zhǔn)和元數(shù)據(jù)標(biāo)準(zhǔn).技術(shù)標(biāo)準(zhǔn)主要根據(jù)業(yè)務(wù)需求而制定,更多的是以文檔形式展現(xiàn)給業(yè)務(wù)人員查詢.系統(tǒng)主要是為其開辟了一個(gè)存儲(chǔ)的地方.而元數(shù)據(jù)標(biāo)準(zhǔn)又能夠分為編碼標(biāo)準(zhǔn)和性能標(biāo)準(zhǔn)兩個(gè)小類.編碼標(biāo)準(zhǔn)能夠?qū)⑵髽I(yè)中的部門或者項(xiàng)目中的各實(shí)驗(yàn)配方進(jìn)行統(tǒng)一格式化的唯一編碼.確保每一條數(shù)據(jù)能夠?qū)?yīng)唯一的編碼,并且管理者或者系統(tǒng)在大批量處理這些數(shù)據(jù)時(shí)能夠根據(jù)編碼直接識(shí)別數(shù)據(jù)的分類和含義,如圖7 所示.編碼標(biāo)準(zhǔn)代表了該類數(shù)據(jù)的編碼必須符合特定的規(guī)定.以實(shí)驗(yàn)室項(xiàng)目編碼標(biāo)準(zhǔn)為例,在實(shí)際應(yīng)用中大類代碼規(guī)定范圍為0—99,如果設(shè)定的數(shù)據(jù)庫(kù)中大類編碼最大值是7,那么系統(tǒng)中凡是大類代碼大于7 的都是不符合數(shù)據(jù)標(biāo)準(zhǔn)的數(shù)據(jù),實(shí)際含義就是不存在此大類的項(xiàng)目.性能標(biāo)準(zhǔn)則是用來描述實(shí)驗(yàn)特定性能的,為實(shí)驗(yàn)數(shù)據(jù)框定了表達(dá)的形式.例如,在推進(jìn)劑的配方中有燃溫屬性,該屬性的目標(biāo)值是2 600 K,起始值是3 400 K,實(shí)驗(yàn)?zāi)康氖窍M紲啬軌蛟叫∫越咏繕?biāo)值,因此,對(duì)于燃溫的性能標(biāo)準(zhǔn)需要確定其數(shù)值類型—最大值、最小值和保留的小數(shù)位數(shù).既然規(guī)定的起始值是3 400 K,那么數(shù)據(jù)產(chǎn)生后,如果大于3 400 K,就一定是個(gè)非法或者錯(cuò)誤的數(shù)據(jù).性能標(biāo)準(zhǔn)在之后的數(shù)據(jù)資產(chǎn)展示中也會(huì)用到,能夠清晰地衡量配方數(shù)據(jù)的性能.
圖7 編碼標(biāo)準(zhǔn)示例Fig.7 Coding standard example
同樣地,數(shù)據(jù)標(biāo)準(zhǔn)的修改和制定也需要進(jìn)行審批,先提交相關(guān)申請(qǐng),申請(qǐng)通過后才會(huì)執(zhí)行邏輯.這保證了系統(tǒng)的可靠性和安全性.
2.2.2 數(shù)據(jù)質(zhì)量檢測(cè)
數(shù)據(jù)質(zhì)量檢測(cè)是對(duì)數(shù)據(jù)標(biāo)準(zhǔn)的執(zhí)行和補(bǔ)充.對(duì)數(shù)據(jù)的質(zhì)量檢測(cè)應(yīng)當(dāng)在數(shù)據(jù)存儲(chǔ)前和存儲(chǔ)后都有檢測(cè),這樣才盡可能地保證數(shù)據(jù)的質(zhì)量.一類是從預(yù)防的角度而言,在數(shù)據(jù)的生命周期的任何一個(gè)階段,都有嚴(yán)格的數(shù)據(jù)規(guī)劃和約束來防止臟數(shù)據(jù)的產(chǎn)生;另一類就是事后診斷,由于數(shù)據(jù)的計(jì)算和演化過程中可能產(chǎn)生錯(cuò)誤數(shù)據(jù),應(yīng)當(dāng)需要由特定算法進(jìn)行定時(shí)的檢查來解決和填補(bǔ)這些數(shù)據(jù).
在數(shù)據(jù)上傳和存儲(chǔ)的過程中就應(yīng)當(dāng)先對(duì)數(shù)據(jù)進(jìn)行清洗.數(shù)據(jù)標(biāo)準(zhǔn)為使用者提供了上傳模板,用戶在上傳數(shù)據(jù)前按照要求格式填寫內(nèi)容.對(duì)于結(jié)構(gòu)化數(shù)據(jù),模塊會(huì)將其視為一個(gè)文件輸入流,將輸入流轉(zhuǎn)換成一個(gè)Workbook 對(duì)象,該對(duì)象可以很容易地操作Excel 文件.而對(duì)于非結(jié)構(gòu)化數(shù)據(jù),模塊只是檢查它是否是一個(gè)完整的文件.
結(jié)構(gòu)化數(shù)據(jù)文件上傳到后端后作為輸入流,封裝成Workbook 對(duì)象.掃描文件的表頭將其和數(shù)據(jù)庫(kù)中表的字段名字對(duì)應(yīng).隨后逐行進(jìn)行合法性檢測(cè),根據(jù)數(shù)據(jù)標(biāo)準(zhǔn)判斷,如判斷字符是否為空,是否超過最大、最小值等.如果這一行沒有錯(cuò)誤,則會(huì)把這一行的數(shù)據(jù)添加到“correctRows”中,而有錯(cuò)誤的行會(huì)標(biāo)注錯(cuò)誤信息添加到“errorRows”中.前者正確的數(shù)據(jù)將直接儲(chǔ)存在數(shù)據(jù)庫(kù)相應(yīng)的表中,后者錯(cuò)誤的數(shù)據(jù)會(huì)作為附件通知用戶查看哪些數(shù)據(jù)出了錯(cuò)誤,并進(jìn)行修改后重新上傳.
當(dāng)數(shù)據(jù)已經(jīng)存儲(chǔ)后,用戶可以根據(jù)相關(guān)的科室,制定針對(duì)表里具體行的數(shù)據(jù)質(zhì)量檢測(cè)規(guī)則.模塊為用戶提供了以下多種數(shù)據(jù)質(zhì)量檢測(cè)方案.
(1) 規(guī)范性檢驗(yàn): 主要檢驗(yàn)各配方和業(yè)務(wù)部門的代碼格式是否規(guī)范,會(huì)根據(jù)之前制定的正則表達(dá)式匹配相應(yīng)的數(shù)據(jù),如果有不符合標(biāo)準(zhǔn)的情況,會(huì)將該條數(shù)據(jù)存儲(chǔ)在相應(yīng)的錯(cuò)誤表中,顯示在前端,專業(yè)人員看到問題后進(jìn)行手動(dòng)修改.
(2) 正確性檢驗(yàn): 主要是檢測(cè)數(shù)據(jù)中是否有異常值和離群值的產(chǎn)生,如果一個(gè)數(shù)據(jù)偏離其他數(shù)據(jù)且分布過多就會(huì)將這條數(shù)據(jù)同樣記錄到對(duì)應(yīng)的錯(cuò)誤表中,隨后在前端被專業(yè)人員查詢出來,專業(yè)人員對(duì)該條數(shù)據(jù)進(jìn)行重新計(jì)算和糾正,或者忽略.
(3) 時(shí)效性檢驗(yàn): 主要是判斷數(shù)據(jù)的錄入時(shí)間和產(chǎn)生時(shí)間是否有矛盾的地方,不應(yīng)當(dāng)出現(xiàn)錄入的時(shí)間早于數(shù)據(jù)產(chǎn)生的時(shí)間.
(4) 完整性檢驗(yàn): 主要是對(duì)空值的數(shù)據(jù)或者值為零的數(shù)據(jù)進(jìn)行填充.如果檢測(cè)發(fā)現(xiàn)多條數(shù)據(jù)都為空值,則需要考慮該列是否還有必要存在.另外,該模塊提供了定時(shí)任務(wù),對(duì)于特定的需求,后端使用了Quartz框架來執(zhí)行定時(shí)任務(wù).因?yàn)閷?duì)數(shù)據(jù)填充值的算法由企業(yè)提供,后端會(huì)有一個(gè)類來實(shí)現(xiàn)Job 接口,需要實(shí)現(xiàn)execute 方法,該方法可以獲得spring 傳入的context 上下文參數(shù),以此獲取制定任務(wù)時(shí)編寫好的任務(wù)詳情,根據(jù)任務(wù)詳情的參數(shù)執(zhí)行具體的定時(shí)任務(wù).例如,對(duì)于力學(xué)性能的檢測(cè)會(huì)通過計(jì)算上一個(gè)月的平均值來填充某一條數(shù)據(jù)的缺失.
綜上所述,數(shù)據(jù)的檢測(cè)主要由系統(tǒng)來完成,并且基于實(shí)驗(yàn)室提出的特殊質(zhì)量檢測(cè)規(guī)則進(jìn)行異常數(shù)據(jù)檢測(cè).但是仍有部分?jǐn)?shù)據(jù)檢測(cè)到異常,對(duì)此系統(tǒng)可能無法自行修正而是給出標(biāo)準(zhǔn)建議,需由業(yè)務(wù)人員手動(dòng)修改提交;修改不是馬上生效,而是生成相應(yīng)的審批流,需要管理員審核通過后才能修改成功;而且數(shù)據(jù)修改前和修改后的內(nèi)容都會(huì)顯示出來,保證了數(shù)據(jù)的可溯源性和安全性.
數(shù)據(jù)資產(chǎn)管理的核心是數(shù)據(jù)資產(chǎn)化[13].在材料配方研制過程中產(chǎn)生的數(shù)據(jù)經(jīng)過標(biāo)準(zhǔn)化處理和質(zhì)量提升后,能夠?yàn)槠髽I(yè)不斷地創(chuàng)造價(jià)值的數(shù)據(jù),便是數(shù)據(jù)資產(chǎn).而在當(dāng)前的企業(yè)中,如何將資源整合,并通過什么方式展現(xiàn)資產(chǎn)是本章需要討論的問題.數(shù)據(jù)資產(chǎn)管理本身由主數(shù)據(jù)管理、數(shù)據(jù)資產(chǎn)目錄、數(shù)據(jù)打分系統(tǒng)和數(shù)據(jù)大屏展示等部分組成.
2.3.1 主數(shù)據(jù)管理
主數(shù)據(jù)一般是系統(tǒng)間重要的共享數(shù)據(jù)[14].該功能主要是將主數(shù)據(jù)管理分為兩個(gè)部分,分別是主數(shù)據(jù)模型管理和主數(shù)據(jù)查詢.系統(tǒng)中一般已經(jīng)預(yù)設(shè)了一些主數(shù)據(jù),如人員信息模型、部門信息等.這些信息如果不進(jìn)行整合,在各科室中極有可能重復(fù)保存,各自保存的數(shù)據(jù)一致性也無法確定,從而導(dǎo)致這類關(guān)鍵信息的唯一性、有效性和共享性無法得到保障.
一份主數(shù)據(jù)模型可以讓登錄系統(tǒng)的用戶均能訪問到,并提供下載功能.若部門或人員信息有變動(dòng),將會(huì)在主數(shù)據(jù)管理的功能下,對(duì)該主數(shù)據(jù)表進(jìn)行修改,做到各科室的主數(shù)據(jù)保持一致性.如果有新的主數(shù)據(jù)需要新建,可以增加主數(shù)據(jù)表.生成主數(shù)據(jù)模型時(shí),操作人員需要選擇該模型隸屬于哪一個(gè)科室,這將直接作為部門外鍵關(guān)聯(lián)到部門信息.當(dāng)新建主數(shù)據(jù)模型后,首先,后端會(huì)根據(jù)該模型的元數(shù)據(jù)信息,生成一個(gè)XSSFWorkbook 對(duì)象,將屬性信息填充進(jìn)此對(duì)象.其次,將該對(duì)象以輸出流的形式保存在硬盤上.最后,操作人員在上傳該主數(shù)據(jù)表的數(shù)據(jù)時(shí)會(huì)依據(jù)上傳模板文件填充信息,避免導(dǎo)入數(shù)據(jù)時(shí)格式出錯(cuò)等不一致性問題.但隨著業(yè)務(wù)的發(fā)展,這類數(shù)據(jù)也需要可擴(kuò)展性,因此,主數(shù)據(jù)和元數(shù)據(jù)也有著很大的關(guān)系.對(duì)于主數(shù)據(jù)的管理需要充分依賴元數(shù)據(jù)的功能,前文中提到基于表元數(shù)據(jù)的擴(kuò)展存儲(chǔ),在主數(shù)據(jù)管理中同樣可以選擇對(duì)應(yīng)的主數(shù)據(jù)表來修改表的字段,增加擴(kuò)展性.
另外,主數(shù)據(jù)還是各部門間共享的核心業(yè)務(wù)數(shù)據(jù)之一.在材料配方研制領(lǐng)域中,主數(shù)據(jù)除了上節(jié)提到的基本人員信息外,成熟配方也是材料研發(fā)的核心主數(shù)據(jù).成熟配方是在實(shí)驗(yàn)過程中得到的實(shí)踐證明有效的配方,各科室的成熟配方最終都會(huì)在數(shù)據(jù)中心進(jìn)行保存.此類數(shù)據(jù)是各科室開展下一步實(shí)驗(yàn)的重要依據(jù),具有權(quán)威性和共享性,同時(shí)也是數(shù)據(jù)資產(chǎn)管理的重點(diǎn)管理對(duì)象.數(shù)據(jù)治理模塊為成熟配方建立了配方數(shù)據(jù)庫(kù),成熟配方產(chǎn)生的數(shù)據(jù)重復(fù)、字段錯(cuò)誤等問題由主數(shù)據(jù)管理單獨(dú)實(shí)現(xiàn).
2.3.2 數(shù)據(jù)資產(chǎn)目錄
數(shù)據(jù)資產(chǎn)目錄的建立能將各數(shù)據(jù)表信息匯總,解決系統(tǒng)中有哪些資源的問題.現(xiàn)數(shù)據(jù)資產(chǎn)檢索提供了在一個(gè)界面就能查詢有多少表、表結(jié)構(gòu)信息和業(yè)務(wù)數(shù)據(jù)內(nèi)容的能力.數(shù)據(jù)資產(chǎn)目錄會(huì)采集元數(shù)據(jù)的信息,進(jìn)行分類后在選擇欄集中展示,用戶查看一目了然.該功能將各部門和各科室產(chǎn)生的數(shù)據(jù)統(tǒng)一集中管理.用戶可以根據(jù)表的種類查詢當(dāng)前已有的數(shù)據(jù),如圖8 所示.在“選擇表”中可以預(yù)覽表,選擇需要查詢的字段.該功能是基于元數(shù)據(jù)和主數(shù)據(jù)管理來實(shí)現(xiàn)的,底層依然是維護(hù)一個(gè)field 表,因?yàn)轭l繁地改變表結(jié)構(gòu)后,原有的對(duì)象關(guān)系映射的操作部分失效,需要通過元數(shù)據(jù)表進(jìn)行連表查詢.
圖8 數(shù)據(jù)資產(chǎn)檢索界面Fig.8 Data asset retrieval
2.3.3 數(shù)據(jù)稽核打分系統(tǒng)
打分系統(tǒng)是對(duì)數(shù)據(jù)資產(chǎn)評(píng)估的一個(gè)重要部分,在數(shù)據(jù)資產(chǎn)展示中,展示什么數(shù)據(jù)、展示依據(jù)均需要通過打分系統(tǒng)來提供.用戶可以自定義選擇需要查詢的表,根據(jù)業(yè)務(wù)要求制定打分規(guī)則.在配方研制過程中,配方和仿真結(jié)果的數(shù)值應(yīng)當(dāng)處于一個(gè)合理范圍內(nèi),用戶選擇需要打分的表,也就是對(duì)某一科室的某一類實(shí)驗(yàn)數(shù)據(jù)進(jìn)行打分.選擇具體計(jì)算的數(shù)值列,規(guī)定區(qū)間上下限和權(quán)重后,點(diǎn)擊運(yùn)行,如圖9 所示.系統(tǒng)會(huì)自動(dòng)為該科室某一項(xiàng)目的所有配方性能進(jìn)行排序打分并打上標(biāo)簽,之后存儲(chǔ)在相應(yīng)的數(shù)據(jù)表中.打分可以讓研究員了解當(dāng)前配方排名靠前的性能如何,是否處于理想的區(qū)間內(nèi).標(biāo)簽的定義由研究員定義,之后的數(shù)據(jù)展示會(huì)有一部分以標(biāo)簽分類的方式展示.因?yàn)閿?shù)據(jù)要成為數(shù)據(jù)資產(chǎn)必需經(jīng)過評(píng)估和打分,能夠歸類于資產(chǎn)的必然是少部分,所以,要在數(shù)據(jù)資產(chǎn)大屏展示的指導(dǎo)企業(yè)決策的數(shù)據(jù)需要經(jīng)過篩選.
圖9 配方數(shù)據(jù)打分界面Fig.9 Recipe data scoring interface
2.3.4 數(shù)據(jù)資產(chǎn)大屏展示
對(duì)于數(shù)據(jù)資產(chǎn)大屏展示,最重要的就是依據(jù)數(shù)據(jù)稽核打分系統(tǒng)對(duì)各實(shí)驗(yàn)數(shù)據(jù)進(jìn)行打分,然后建立打分表.數(shù)據(jù)資產(chǎn)大屏的部分?jǐn)?shù)據(jù)會(huì)根據(jù)打分表來展示.一方面,相較傳統(tǒng)的數(shù)據(jù)圖表這樣展示更美觀和直接;另一方面,數(shù)據(jù)展示具有打分依據(jù),而非直接地堆砌.
如圖10 所示,用戶可以在資產(chǎn)展示大屏配置需要展示的選項(xiàng).一般展示方式有兩種: 第一種,直接從后端經(jīng)過的打分表中篩選出需要的數(shù)據(jù),打包后轉(zhuǎn)換成JSON 格式返回前端,根據(jù)Echarts 的屬性配置,填充在相對(duì)應(yīng)的位置來展示數(shù)據(jù);第二種,后端會(huì)根據(jù)用戶在前端的操作,直接在對(duì)應(yīng)的實(shí)驗(yàn)數(shù)據(jù)庫(kù)中選出數(shù)據(jù)庫(kù)后實(shí)時(shí)計(jì)算,將計(jì)算結(jié)果打包后返回給前端顯示.圖10 顯示的是推進(jìn)劑配方的資產(chǎn)大屏,以左上角為例,展示的是各項(xiàng)目配方力學(xué)性能實(shí)際水平和目標(biāo)水平的進(jìn)度比較.此處展示的是先前根據(jù)打分系統(tǒng)后排名前六的標(biāo)簽 (科室要求),能夠讓研究員清晰地掌握當(dāng)前配方的研究情況,因?yàn)樾柙敿?xì)展示配方各性能離目標(biāo)值的差距,故以進(jìn)度條的形式展現(xiàn),非常清晰.性能排名靠前的配方代表了項(xiàng)目當(dāng)前的最高水平,可以讓研究員把握總體項(xiàng)目方向.中間儀表盤風(fēng)格展示了當(dāng)前主要模型的預(yù)示進(jìn)度.最右圖展示的是DKH-AL 標(biāo)簽的月度增量和累計(jì)增量,體現(xiàn)了每個(gè)月該標(biāo)簽新產(chǎn)生的數(shù)量.首先,該功能對(duì)已有的數(shù)據(jù)和指標(biāo)持續(xù)監(jiān)控,保證業(yè)務(wù)的正常運(yùn)行.其次,能夠發(fā)現(xiàn)配方研制的發(fā)展趨勢(shì)和捕捉到特異點(diǎn),使研究員能快速了解科室配方的生產(chǎn)速率.
圖10 數(shù)據(jù)資產(chǎn)展示大屏Fig.10 Screen of data assets display
系統(tǒng)功能測(cè)試環(huán)境介紹: 系統(tǒng)后端使用的是當(dāng)前最流行的SpringBoot 框架,使用MySQL8.0 作為數(shù)據(jù)庫(kù)服務(wù)器,使用Tomcat7.0 作為Web 應(yīng)用服務(wù)器,以實(shí)驗(yàn)室網(wǎng)絡(luò)作為測(cè)試環(huán)境.處理器為AMD Ryzen 7 5800H,內(nèi)存16 GB.
系統(tǒng)功能測(cè)試順序?qū)凑諗?shù)據(jù)治理的基本順序入手.從數(shù)據(jù)的導(dǎo)入開始,新增一張數(shù)據(jù)表,為該表新建數(shù)據(jù)規(guī)則,檢驗(yàn)該表內(nèi)的數(shù)據(jù)異常是否會(huì)被系統(tǒng)檢測(cè)到;再對(duì)數(shù)據(jù)表進(jìn)行變動(dòng),查看上傳模板是否更新;數(shù)據(jù)質(zhì)量檢測(cè)定時(shí)任務(wù)啟動(dòng)是否正常;數(shù)據(jù)資產(chǎn)大屏展示的結(jié)果和數(shù)據(jù)打分系統(tǒng)的結(jié)果是否一致.具體測(cè)試用例見表1.
表1 系統(tǒng)基本功能測(cè)試用例表Tab.1 Basic function test cases
SQL 注入攻擊是目前web 應(yīng)用網(wǎng)絡(luò)攻擊中最常見的手段之一,安全風(fēng)險(xiǎn)較高.它不是利用操作系統(tǒng)的bug 來實(shí)現(xiàn)攻擊,而是針對(duì)程序員編程時(shí)的疏忽,通過SQL 語(yǔ)句,實(shí)現(xiàn)無賬號(hào)登錄,甚至篡改數(shù)據(jù)庫(kù)等不良操作.因此,系統(tǒng)數(shù)據(jù)安全測(cè)試主要是為了檢驗(yàn)防SQL 注入的能力.
本系統(tǒng)設(shè)計(jì)了基于表元數(shù)據(jù)的動(dòng)態(tài)存儲(chǔ)方案,在后端代碼中會(huì)出現(xiàn)大量SQL 拼接的情況.編寫代碼時(shí)需要防止SQL 注入,因此,后端SQL 多采用預(yù)編譯的方式如PreparedStatement 或者用#{}值占位符.具體步驟是假設(shè)了3 種注入方式,覆蓋平臺(tái)29 處表單的輸入情況.每處輸出填入3 種異常值和2 種正常值,判斷返回情況的正確率.正確率=預(yù)期返回結(jié)果數(shù)/ (正常SQL 數(shù)+含注入SQL 數(shù)).
第一種是條件注入的方式,在正常輸入中加入“or 1=1”.第二種是堆疊注入,在查詢語(yǔ)句中嵌入更新語(yǔ)句,更新已知賬戶的密碼,更改為簡(jiǎn)單密碼.但是此類操作基本難以成功,因?yàn)榇蠖喑志没蚣懿恢С滞瑫r(shí)執(zhí)行多條語(yǔ)句.第三種是錯(cuò)誤拋出檢驗(yàn),如果系統(tǒng)后臺(tái)未對(duì)數(shù)據(jù)庫(kù)操作的報(bào)錯(cuò)做封裝處理,則報(bào)錯(cuò)信息極有可能返回到前端,從而被黑客了解到數(shù)據(jù)庫(kù)表的具體信息.實(shí)驗(yàn)結(jié)果見表2.
表2 SQL 注入測(cè)試結(jié)果Tab.2 SQL injection test result
根據(jù)預(yù)設(shè)的填入值,實(shí)驗(yàn)表明當(dāng)前系統(tǒng)未有異常情況出現(xiàn).達(dá)到了預(yù)期的效果.
本系統(tǒng)主要為企業(yè)內(nèi)部人員開發(fā),高并發(fā)等業(yè)務(wù)場(chǎng)景在本項(xiàng)目中并不多見,因此,主要測(cè)試系統(tǒng)的響應(yīng)效率.測(cè)試的功能分別為登錄、新建元數(shù)據(jù)、修改元數(shù)據(jù)和稽核打分這4 個(gè)較為復(fù)雜的業(yè)務(wù)場(chǎng)景,使用的測(cè)試工具為Postman 和JMeter.Postman 是谷歌開發(fā)的一款網(wǎng)頁(yè)調(diào)試和接口測(cè)試工具;JMeter 是Apache 組織基于 Java 開發(fā)的壓力測(cè)試工具,用于對(duì)軟件做壓力測(cè)試.Postman 填寫需要測(cè)試的接口,打包成一個(gè)collections,軟件便可以模擬并發(fā)訪問collections 中的接口.
4 個(gè)功能的性能測(cè)試分別在10、20、40 的并發(fā)下循環(huán)訪問20 次,取平均值作為實(shí)驗(yàn)結(jié)果.測(cè)試結(jié)果如圖11 所示.從實(shí)驗(yàn)結(jié)果可以看出,在并發(fā)量不斷增加的情況下,響應(yīng)時(shí)間總體沒有超過100 ms,對(duì)用戶體驗(yàn)基本沒有影響,可以滿足研究所日常的使用需求.
圖11 接口訪問響應(yīng)時(shí)間Fig.11 Interface access response time
文章介紹了化工企業(yè)在實(shí)驗(yàn)數(shù)據(jù)配方方面的數(shù)據(jù)治理模塊的執(zhí)行流程和設(shè)計(jì)實(shí)現(xiàn).從當(dāng)前研究所面臨的實(shí)際問題出發(fā),分析業(yè)務(wù)需求,結(jié)合已經(jīng)成熟的數(shù)據(jù)治理框架和理論,提出了一系列亟待解決的問題.其中包括要建立一套符合業(yè)務(wù)規(guī)范的元數(shù)據(jù)管理體系,并根據(jù)企業(yè)的特殊性制定相應(yīng)的數(shù)據(jù)標(biāo)準(zhǔn)和規(guī)范,且用特定的方法去執(zhí)行,從而提高數(shù)據(jù)質(zhì)量.數(shù)據(jù)質(zhì)量管理有效解決了當(dāng)前化工企業(yè)數(shù)據(jù)標(biāo)準(zhǔn)的制定和對(duì)數(shù)據(jù)標(biāo)準(zhǔn)能否有效執(zhí)行的問題,將數(shù)據(jù)按照用戶希望的格式存儲(chǔ),并能預(yù)警數(shù)據(jù)在運(yùn)行期間出現(xiàn)的問題.具體展開主要有以下幾點(diǎn).
首先,元數(shù)據(jù)管理部分除傳統(tǒng)的創(chuàng)建和查看元數(shù)據(jù)管理以外,又為系統(tǒng)提供了一套基于表元數(shù)據(jù)動(dòng)態(tài)存儲(chǔ)的方案,能夠應(yīng)對(duì)化工材料中實(shí)驗(yàn)數(shù)據(jù)信息和種類的各種變化,增加靈活性.針對(duì)表結(jié)構(gòu)的修改都已經(jīng)實(shí)現(xiàn)了相關(guān)的接口,用戶本身可以在前端界面對(duì)于表結(jié)構(gòu)進(jìn)行直接操作,而不需要借助后端開發(fā)人員的介入.
其次,數(shù)據(jù)標(biāo)準(zhǔn)部分講述了系統(tǒng)如何依據(jù)化工領(lǐng)域的業(yè)務(wù)需求制定數(shù)據(jù)標(biāo)準(zhǔn),并通過數(shù)據(jù)質(zhì)量檢測(cè)功能來執(zhí)行數(shù)據(jù)標(biāo)準(zhǔn).在業(yè)務(wù)中將數(shù)據(jù)標(biāo)準(zhǔn)劃分為元數(shù)據(jù)標(biāo)準(zhǔn)和技術(shù)標(biāo)準(zhǔn),系統(tǒng)對(duì)技術(shù)標(biāo)準(zhǔn)負(fù)責(zé)存儲(chǔ),而對(duì)元數(shù)據(jù)標(biāo)準(zhǔn)要負(fù)責(zé)執(zhí)行.數(shù)據(jù)質(zhì)量對(duì)數(shù)據(jù)標(biāo)準(zhǔn)的執(zhí)行主要從事前預(yù)防和事后診斷兩個(gè)角度來檢測(cè),并集成了已有的表格操作庫(kù)和定時(shí)任務(wù)框架來完成數(shù)據(jù)質(zhì)量模塊的設(shè)計(jì)和實(shí)現(xiàn).
最后,數(shù)據(jù)治理就是實(shí)現(xiàn)數(shù)據(jù)價(jià)值的過程,即數(shù)據(jù)資產(chǎn)化.先是數(shù)據(jù)資產(chǎn)目錄的建立,允許數(shù)據(jù)資產(chǎn)檢索能夠在同一個(gè)地方預(yù)覽到所有科室的建表情況和表結(jié)構(gòu)信息,解決了數(shù)據(jù)資源有多少的問題.然后是設(shè)計(jì)了數(shù)據(jù)資產(chǎn)大屏的功能,配合數(shù)據(jù)稽核打分系統(tǒng),基于業(yè)務(wù)要求對(duì)實(shí)驗(yàn)數(shù)據(jù)和配方進(jìn)行打分排序.最終以用戶需要的形式對(duì)數(shù)據(jù)進(jìn)行可視化展示,使企業(yè)能夠很好地掌握當(dāng)前項(xiàng)目的進(jìn)展情況,了解配方性能研究的進(jìn)度以及實(shí)驗(yàn)數(shù)據(jù)產(chǎn)出的速率等,從而幫助企業(yè)進(jìn)行輔助決策.