夏秀峰,郭 洋
(沈陽航空航天大學 a.計算機學院; b.遼寧省通用航空重點實驗室,沈陽 110136)
?
信息科學與工程
基于NoSQL的PDM零件非幾何信息存儲策略
夏秀峰a,b,郭 洋a
(沈陽航空航天大學 a.計算機學院; b.遼寧省通用航空重點實驗室,沈陽 110136)
MBD技術(shù)在制造業(yè)上的應用,使現(xiàn)有PDM系統(tǒng)中存在著大量RDB難以處理的非結(jié)構(gòu)化數(shù)據(jù)。提出了一種PDM混合數(shù)據(jù)存儲策略,用RDB存儲零件的描述信息,而其實際內(nèi)容則用NoSQL數(shù)據(jù)庫存儲。該方案不僅可以利用RDB的結(jié)構(gòu)化特點來方便查詢與統(tǒng)計,還能充分利用NoSQL靈活的存儲結(jié)構(gòu)較快處理非結(jié)構(gòu)化數(shù)據(jù)。實驗結(jié)果表明,該策略可以有效的提升查詢速度,降低數(shù)據(jù)的存儲空間。
產(chǎn)品數(shù)據(jù)管理;非幾何信息;存儲策略;非結(jié)構(gòu)化數(shù)據(jù);NoSQL技術(shù)
PDM是當今制造型企業(yè)重要的管理工具之一,在企業(yè)的現(xiàn)代化生產(chǎn)活動中發(fā)揮著無可替代的作用。然而,隨著MBD(Model Based Definition,基于模型定義)技術(shù)的出現(xiàn)和逐漸完善[1-3],改變了傳統(tǒng)的用三維實體模型來描述幾何形狀信息,用二維工程圖來定義尺寸、公差、工藝信息的分步產(chǎn)品數(shù)字化定義方法[4-5]。既然描述產(chǎn)品數(shù)據(jù)的方法有了質(zhì)的飛躍,作為產(chǎn)品數(shù)據(jù)管理的PDM技術(shù)理應需要進行相應的改進,以適應發(fā)展的需要。
早在2000年,清華大學的郁鼎文教授等人就開始關注PDM信息的總體表達,將產(chǎn)品的總體信息分為了產(chǎn)品對象分類模型、產(chǎn)品對象屬性模型、產(chǎn)品對象組織模型等7個方面[6]。2003年,浙江大學的李善平教授注意到若從整個生命周期的角度出發(fā),產(chǎn)品的描述將不僅僅是產(chǎn)品的幾何信息與屬性信息,還包括更多的產(chǎn)品設計和開發(fā)過程中的信息[7]。文獻[8]嘗試利用數(shù)據(jù)庫技術(shù),在特征分類的基礎上對零件信息進行建模。自2003年MDB模型被ASME批準為機械產(chǎn)品工程模型的定義標準后[9],國內(nèi)的相關研究成果如雨后春筍般不斷涌現(xiàn)出來。文獻[10]分析了MBD 的三維標準模型,并在此基礎上開發(fā)了三維標注模塊。文獻[11]提出以飛機結(jié)構(gòu)件MBD 模型為唯一依據(jù),自動識別模型中的幾何特征信息和非幾何特征信息。
MBD模型中,通常采用表1所示的規(guī)范樹形式來存放如公差、尺寸、旗注、關鍵特征之類的非幾何信息[12-13]。
表1 三維零件模型結(jié)構(gòu)化規(guī)范樹的結(jié)點類型
表1中,xyplane、yzplane、zxplane、Partbody、External references、Construction geometry、Engineering geometry、Reference geometry等屬性是MBD模型的幾何信息,存在于模型文件中。在PDM中,這些細節(jié)數(shù)據(jù)一般都隨著模型文件的加載而顯示,不是重點的數(shù)據(jù)存儲對象。而對于Standard notes、Part notes、Annotation notes、Material description、Annotation set、Approval status、Publication等屬性,作為零件的非幾何信息需要抽取放置在PDM中,是查詢、統(tǒng)計、匯總的主要參數(shù)。本文將圍繞基于MBD的零件非幾何信息,研究在基于NoSQL的PDM中數(shù)據(jù)庫的表達與存儲問題。
在現(xiàn)今基于RDB的PDM系統(tǒng)中,非幾何信息的具體表達一般如圖1所示[14]。
圖1為MBD規(guī)范樹中的標準說明、零件說明及標注說明。在MBD規(guī)范中,標準注釋、零部件注釋、標注說明、各類連接定義等注釋信息構(gòu)成了非幾何信息的全部,且必須滿足這樣的格式:A|B|C。根據(jù)標注說明的不同數(shù)據(jù)來源,A、B、C分別有不同的含義,一般規(guī)定A為特征號,B為材料注釋標識號,C為說明描述,描述該處材料文本信息[15]。
圖1 規(guī)范樹中的標準說明、零件說明及標注說明定義
1.1 存儲策略分析
目前,基于RDB的PDM通常將信息存放于后臺的結(jié)構(gòu)化RDB中。數(shù)據(jù)來源不同,A、B、C的含義也不盡相同,因而不能用統(tǒng)一的模式去硬性規(guī)定,但從數(shù)據(jù)的內(nèi)容上看,該數(shù)據(jù)屬于非結(jié)構(gòu)化數(shù)據(jù)。從零件總體的角度來考慮,由于在規(guī)范樹中,非幾何信息的種類固定,且任何一類非幾何信息都是零件信息不可分割的內(nèi)容,加之不同的非幾何信息之間無交集、無傳遞性,符合范式的要求,因而在形式上仍具有結(jié)構(gòu)化的特點。
就目前而言,由于PDM采用RDB的關系表來存儲系統(tǒng)中越來越多的非結(jié)構(gòu)化數(shù)據(jù),某些信息的傳遞甚至還停留在文件級上,這使得整個系統(tǒng)的讀取效率不高、存儲性能低下?;谝陨峡紤],若能將這些在PDM系統(tǒng)中經(jīng)常用到的非幾何信息,以一種合理的方式存儲在數(shù)據(jù)庫中,將是解決現(xiàn)有系統(tǒng)查詢緩慢、存儲效率低、數(shù)據(jù)交換困難的有效途徑。本文提出一種折中方案,用結(jié)構(gòu)化數(shù)據(jù)庫存儲零件的描述信息,而其實際內(nèi)容則用NoSQL數(shù)據(jù)庫存儲。混合存儲架構(gòu)圖如圖2所示。
圖2 零件信息存儲混合模式
現(xiàn)有大型制造業(yè)生產(chǎn)廠商的PDM一般采用集群的作業(yè)方式來滿足多用戶訪問的需要,因而圖2模擬現(xiàn)有廠商的運行環(huán)境,兩種數(shù)據(jù)均采用集群數(shù)據(jù)庫存儲。在RDB中,以兩臺服務器作為兩個節(jié)點,來構(gòu)建RDB集群,并在兩個節(jié)點上建立一個數(shù)據(jù)庫實例,節(jié)點間采用心跳連接,以確保整個數(shù)據(jù)庫可以在一個節(jié)點down掉之后能馬上將所有業(yè)務遷移到另一節(jié)點上繼續(xù)使用,保證RDB的高可用性。另外,兩個節(jié)點可以同時接受讀寫請求,最大限度地滿足企業(yè)對高并發(fā)操作的需求。
在NoSQL中,以副本集的方式來組織數(shù)據(jù)庫的各個節(jié)點。每個節(jié)點是NoSQL的一個分片(Sharding),以保證分布式環(huán)境下的高并發(fā)操作。在每個分片下構(gòu)建多個副本集(ReplSet),用來冗余存儲非結(jié)構(gòu)化數(shù)據(jù),以提高整個NoSQL集群的可靠性。當接到讀寫任務時,NoSQL的路由器在名字節(jié)點中選中片鍵(Sharding),進而在數(shù)據(jù)節(jié)點中進行具體讀寫操作。在實際的應用過程中,由于NoSQL數(shù)據(jù)庫的出現(xiàn),可以分擔RDB的讀寫任務,減輕了完全由RDB所提供服務時的壓力。
1.2 存儲表結(jié)構(gòu)設計
為滿足RDB的規(guī)范化要求,現(xiàn)有PDM往往采用分表策略,將同一個實體的不同信息分別存儲在不同的關系表中,這無疑使連接查詢的效率降低,且存在不必要的冗余數(shù)據(jù)。
根據(jù)2.1節(jié)提出的混合存儲策略,將數(shù)據(jù)的形式存儲在RDB中,數(shù)據(jù)的具體內(nèi)容則存儲在NoSQL中,即可分擔查詢的壓力,又可減降低零件信息的占用空間。首先,在結(jié)構(gòu)化數(shù)據(jù)庫中建立Part表,表結(jié)構(gòu)如表2所示。
表2中,零件編號PartNumber作為Part表中唯一的主鍵,Version表示本條記錄的版本信息,Created_stamp表示創(chuàng)建的時間戳,Created_Edit表示創(chuàng)建時的編輯人,Update_stamp表示更新時的時間戳,Update_Edit記錄更新時的編輯人。StandardNotes等屬性代表PartNumber記錄下的各屬性的個數(shù)。例如,當StandardNotes有5條記錄時,對應PartNumber的StandardNotes屬性值為5。當可選條目(如Annotation Set屬性)中沒有記錄時,該值為0。該策略優(yōu)勢在于當尋找具體的內(nèi)容信息時,可以只搜索相應屬性條目的記錄后,便可終止查詢,避免了因遍歷而增加的查詢代價。
其次,在非結(jié)構(gòu)化數(shù)據(jù)庫中,建立如下文檔:
{
" _id":ObjectId(" XXX"),
" PARTNUMBER":" XXX",
"Version":" XXX",
" Form_Attribute":" XXX",
" Type":{ " XXX":" XXX",
……
" XXX":" XXX",
}
}
其中,_id 為非結(jié)構(gòu)化數(shù)據(jù)庫自動生成字段,PartNumber屬性表示零件號,Version表示版本信息,且與結(jié)構(gòu)化數(shù)據(jù)庫中的PART表中的PartNumber、Version對應。Form_Attribute表示本文檔是隸屬于StandardNotes、PartNotes、AnnotationNotes、MaterialDescripition、AnnotationSet、ApprovalStauts、Publication中的哪一條。在Type數(shù)組中,記錄具體的屬性內(nèi)容。
1.3 讀寫操作
為了更明確的表示本方案的數(shù)據(jù)類型與查詢方式,下面給出插入操作和查詢操作的偽代碼。插入操作的偽代碼如下:
建立新游標RS;
RS(0)=零件A.零件號;
i=1;
While(RS(i)!=EOF)
插入Version、Created_stamp、Created_Edit、Update_stamp、Update_Edit屬性信息;
IF 相應屬性的記錄數(shù)!=NULL THEN
RS(i)=count(對應屬性的記錄);
Insert;
{
" _id":系統(tǒng)默認值,
" PARTNUMBER":"零件A.零件號",
"Version":" RS(‘Version’).values",
" Form_Attribute":"相應屬性",
" Type":{ 具體內(nèi)容}
}
ELSE
RS(i)=0;
END IF
i++;
END While
查詢操作的偽代碼如下:
通過零件號設查詢A零件的相關信息,RS為當前數(shù)據(jù)庫游標。
IF RS.PARTNUMBER==A.零件號 THEN
FOR(i=0;RS(i)!= NULL;i++)
IF RS(i).VALUES!=0 THEN
FIND(PATENUMBER=RS(0).values&&Form_Attribute=RS(i).NAME&&Version=RS(1).values.Limit(RS(i).values);
END IF
END FOR
ELSE
RS.next;
END IF
為了驗證該存儲方案的合理性,搭建實驗環(huán)境進行實驗。實驗平臺參數(shù)如表3所示。
在關系數(shù)據(jù)庫中,使用雙節(jié)點的Oracle 11G RAC集群。在NoSQL集群中,采用4節(jié)點的MongoDB,以Master/Slaver的形式工作,一個節(jié)點作為Master節(jié)點,其余三個作為Slaver節(jié)點。
實驗方案采用上文提到的混合存儲策略,在MongoDB中存入非幾何信息的內(nèi)容信息,在Oracle中存入零件的描述信息。對比方案是將非幾何信息的內(nèi)容信息以CLOB(Character Large Object,字符大對象)的格式存儲在Oracle中,描述信息的存儲方式不變。實驗在一萬條數(shù)據(jù)、十萬條數(shù)據(jù)和百萬條數(shù)據(jù)量下,將兩種方案進行對比,從存取效率和占用空間兩方面進行分析。
2.1 存取效率
從實驗方案和對比方案的查詢與插入兩方面來說明本方案的優(yōu)勢。
在查詢實驗中,實驗方案與對比方案以十萬條數(shù)據(jù)量為基準,測試用戶數(shù)量為100、500、1000時所需的查詢時間。通過對多次實驗結(jié)果計算平均值后,實驗對比結(jié)果如圖3所示。
圖3 查詢時間對比圖
由圖3可以看出,在多種用戶訪問數(shù)量下,本文提出的混合存儲方案查詢時間明顯優(yōu)于傳統(tǒng)RDB存儲方案。尤其是在大量用戶的并發(fā)訪問下,由于對比方案的并發(fā)能力有限,在用戶數(shù)量超過500后,試驗方案在查詢時間方面明顯少于老方案。
在存儲實驗中,設用戶數(shù)量為100、500、1000時,每個用戶對數(shù)據(jù)庫進行10次插入操作后所需時間的總和,如圖4所示。
圖4 存儲時間對比圖
由圖4可以看出,在不同用戶數(shù)量的存儲操作下,本文提出的混合存儲方案的存儲操作時間明顯優(yōu)于傳統(tǒng)RDB存儲方案。
2.2 占用空間
在Oracle RAC默認環(huán)境下,數(shù)據(jù)使用雙副本存儲方式,因此所需存儲空間大大增加。通過對數(shù)據(jù)庫的分析得知,在新方案中Oracle平均單條數(shù),據(jù)大小為26 B *2=52 B/條,萬條數(shù)據(jù)占空間508 kB;MongoDB同樣使用雙副本存儲方式,每條數(shù)據(jù)平均占430 B*2=860 B,萬條數(shù)據(jù)占空間8 398 kB,新方案中萬條數(shù)據(jù)存儲空間為8 906 kB。而在老方案中,由于數(shù)據(jù)的結(jié)構(gòu)不同,Oracle中每條記錄平均為504 B*2=1 008 B/條,萬條數(shù)據(jù)存儲空間為9 844 kB。
實驗結(jié)果對比如圖5所示,隨著數(shù)據(jù)量的增長,存儲空間使用量呈線性增長,由于冗余數(shù)據(jù)的降低,新方案在占用空間方面優(yōu)于老方案。
圖5 占用空間對比
本文針對基于MBD的零件模型靜態(tài)非幾何信息在PDM下的存儲與查詢問題進行了研究。提出了一種新的PDM底層數(shù)據(jù)存儲環(huán)境,利用RDB與NoSQL的共同存儲零件非幾何信息的折中存儲方案。通過實驗證明,該方案在存取效率及占用空間方面都優(yōu)于傳統(tǒng)的單一RDB存儲策略,為解決零件非幾何數(shù)據(jù)給PDM所帶來的困擾提供了新的思路。
[1]Alemannic M,Estefania F,Vanzetti E.Model-based definition design in the product lifecycle management scenario[J].International Journal of Advanced Manufacturing Technology,2011,1(4):1-14.
[2]梅中義,楊濤.基于模型定義的飛機全三維設計實現(xiàn)技術(shù)[J].航空制造技術(shù),2013(8):26-31.
[3]Quintana Virgilian,Rivets Louis,Pelerine Robert,et al.Will model-based definition replace engineering drawings throughout the product lifecycle a global perspective from aerospace industry[J].Computer in Industry,2010,6(1):497-508.
[4]石秀芬.基于模型定義技術(shù)(MBD技術(shù))的分析研究[J].機械管理開發(fā),2013(3):45-47.
[5]Neng Wan,Zhi Yong Chang.Machining process knowledge discovery technology:on the basis of MBD process model[J].Applied Mechanics and Materials,2013,2181(271):1006-1011.
[6]郝建材,張玉峰,郁鼎文.基于PDM的產(chǎn)品總體信息模型的研究[J].制造技術(shù)與機床,2000(5):62-64.
[7]胡玉杰,李善平,郭鳴.基于本體的產(chǎn)品知識表達[J].計算機輔助設計與圖形學學報,2003,15(12):1531-1537.
[8]陳超,黃建龍,劉世忠.基于零件特征的信息的數(shù)據(jù)庫表達[J].機械設計與制造,2004(5):14-16.
[9]Y14.41-2003.Digital product definition data practices[S].ASME,2003.
[10]潘康華.基于MBD的機械產(chǎn)品三維設計標準關鍵技術(shù)與應用研究[D].北京:機械科學研究總院,2012:42-57.
[11]簡建幫.基于MBD和特征的飛機結(jié)構(gòu)件數(shù)控加工方法[J].機械科學與技術(shù),2011,30(5):756-760.
[12]周秋忠,范玉青.MBD技術(shù)在飛機制造中的應用[J].航空維修與工程,2008(3):55-57.
[13]WojciechSkarka.Application of MOKA methodology in generative model creation using CATIA[J].Engineering Applications of Artificial Intelligence,2006,20(5):677-690.
[14]王境宇,鄧立營.基于CATIA的產(chǎn)品定義信息三維表達及組織方法[J].制造業(yè)自動化,2011,33(6):130-133.
[15]馮國威,梁艷,等.基于模型定義的數(shù)據(jù)組織與系統(tǒng)實現(xiàn)[J].航空制造技術(shù),2011(9):62-66.
(責任編輯:劉劃 英文審校:劉紅江)
The storage strategy of non-geometric information of parts in PDM based on NoSQL
XIA Xiu-fenga,b,GUO Yanga
(a.College of Computer Science;b.Liaoning General Aviation Laboratory,Shenyang Aerospace University,Shenyang 110136,China)
With the application of MBD in the manufacturing industry,a large number of unstructured dataisstoredinthePDMsystemwhichis hard to process by RDB.A hybrid storage strategy is proposed with RDB to store description information of parts and NoSQL to store non-geometric-information.It uses the structural characteristics of RDB to facilitate the query and statistics,and fully usesthestorage structures of NoSQL to process unstructured data quickly.The experimental results show that this strategy can effectively improve the query speed and reduce the data storage space.
product data management;non-geometricinformation;storage strategy;unstructured data;NoSQL technology
2014-11-19
航空科學基金(項目編號:2013ZG54032)
夏秀峰(1964-),男,山東青島人,教授,主要研究方向:數(shù)據(jù)庫理論與技術(shù),E-mail:xiaxiufeng@163.com。
2095-1248(2015)02-0061-06
TP311
A
10.3969/j.issn.2095-1248.2015.02.013