APP下载

基于NoSQL的PDM零件非几何信息存储策略

2015-05-04夏秀峰

沈阳航空航天大学学报 2015年2期
关键词:结构化数据库节点

夏秀峰,郭 洋

(沈阳航空航天大学 a.计算机学院; b.辽宁省通用航空重点实验室,沈阳 110136)



信息科学与工程

基于NoSQL的PDM零件非几何信息存储策略

夏秀峰a,b,郭 洋a

(沈阳航空航天大学 a.计算机学院; b.辽宁省通用航空重点实验室,沈阳 110136)

MBD技术在制造业上的应用,使现有PDM系统中存在着大量RDB难以处理的非结构化数据。提出了一种PDM混合数据存储策略,用RDB存储零件的描述信息,而其实际内容则用NoSQL数据库存储。该方案不仅可以利用RDB的结构化特点来方便查询与统计,还能充分利用NoSQL灵活的存储结构较快处理非结构化数据。实验结果表明,该策略可以有效的提升查询速度,降低数据的存储空间。

产品数据管理;非几何信息;存储策略;非结构化数据;NoSQL技术

PDM是当今制造型企业重要的管理工具之一,在企业的现代化生产活动中发挥着无可替代的作用。然而,随着MBD(Model Based Definition,基于模型定义)技术的出现和逐渐完善[1-3],改变了传统的用三维实体模型来描述几何形状信息,用二维工程图来定义尺寸、公差、工艺信息的分步产品数字化定义方法[4-5]。既然描述产品数据的方法有了质的飞跃,作为产品数据管理的PDM技术理应需要进行相应的改进,以适应发展的需要。

早在2000年,清华大学的郁鼎文教授等人就开始关注PDM信息的总体表达,将产品的总体信息分为了产品对象分类模型、产品对象属性模型、产品对象组织模型等7个方面[6]。2003年,浙江大学的李善平教授注意到若从整个生命周期的角度出发,产品的描述将不仅仅是产品的几何信息与属性信息,还包括更多的产品设计和开发过程中的信息[7]。文献[8]尝试利用数据库技术,在特征分类的基础上对零件信息进行建模。自2003年MDB模型被ASME批准为机械产品工程模型的定义标准后[9],国内的相关研究成果如雨后春笋般不断涌现出来。文献[10]分析了MBD 的三维标准模型,并在此基础上开发了三维标注模块。文献[11]提出以飞机结构件MBD 模型为唯一依据,自动识别模型中的几何特征信息和非几何特征信息。

MBD模型中,通常采用表1所示的规范树形式来存放如公差、尺寸、旗注、关键特征之类的非几何信息[12-13]。

表1 三维零件模型结构化规范树的结点类型

表1中,xyplane、yzplane、zxplane、Partbody、External references、Construction geometry、Engineering geometry、Reference geometry等属性是MBD模型的几何信息,存在于模型文件中。在PDM中,这些细节数据一般都随着模型文件的加载而显示,不是重点的数据存储对象。而对于Standard notes、Part notes、Annotation notes、Material description、Annotation set、Approval status、Publication等属性,作为零件的非几何信息需要抽取放置在PDM中,是查询、统计、汇总的主要参数。本文将围绕基于MBD的零件非几何信息,研究在基于NoSQL的PDM中数据库的表达与存储问题。

1 非几何信息的存储策略

在现今基于RDB的PDM系统中,非几何信息的具体表达一般如图1所示[14]。

图1为MBD规范树中的标准说明、零件说明及标注说明。在MBD规范中,标准注释、零部件注释、标注说明、各类连接定义等注释信息构成了非几何信息的全部,且必须满足这样的格式:A|B|C。根据标注说明的不同数据来源,A、B、C分别有不同的含义,一般规定A为特征号,B为材料注释标识号,C为说明描述,描述该处材料文本信息[15]。

图1 规范树中的标准说明、零件说明及标注说明定义

1.1 存储策略分析

目前,基于RDB的PDM通常将信息存放于后台的结构化RDB中。数据来源不同,A、B、C的含义也不尽相同,因而不能用统一的模式去硬性规定,但从数据的内容上看,该数据属于非结构化数据。从零件总体的角度来考虑,由于在规范树中,非几何信息的种类固定,且任何一类非几何信息都是零件信息不可分割的内容,加之不同的非几何信息之间无交集、无传递性,符合范式的要求,因而在形式上仍具有结构化的特点。

就目前而言,由于PDM采用RDB的关系表来存储系统中越来越多的非结构化数据,某些信息的传递甚至还停留在文件级上,这使得整个系统的读取效率不高、存储性能低下。基于以上考虑,若能将这些在PDM系统中经常用到的非几何信息,以一种合理的方式存储在数据库中,将是解决现有系统查询缓慢、存储效率低、数据交换困难的有效途径。本文提出一种折中方案,用结构化数据库存储零件的描述信息,而其实际内容则用NoSQL数据库存储。混合存储架构图如图2所示。

图2 零件信息存储混合模式

现有大型制造业生产厂商的PDM一般采用集群的作业方式来满足多用户访问的需要,因而图2模拟现有厂商的运行环境,两种数据均采用集群数据库存储。在RDB中,以两台服务器作为两个节点,来构建RDB集群,并在两个节点上建立一个数据库实例,节点间采用心跳连接,以确保整个数据库可以在一个节点down掉之后能马上将所有业务迁移到另一节点上继续使用,保证RDB的高可用性。另外,两个节点可以同时接受读写请求,最大限度地满足企业对高并发操作的需求。

在NoSQL中,以副本集的方式来组织数据库的各个节点。每个节点是NoSQL的一个分片(Sharding),以保证分布式环境下的高并发操作。在每个分片下构建多个副本集(ReplSet),用来冗余存储非结构化数据,以提高整个NoSQL集群的可靠性。当接到读写任务时,NoSQL的路由器在名字节点中选中片键(Sharding),进而在数据节点中进行具体读写操作。在实际的应用过程中,由于NoSQL数据库的出现,可以分担RDB的读写任务,减轻了完全由RDB所提供服务时的压力。

1.2 存储表结构设计

为满足RDB的规范化要求,现有PDM往往采用分表策略,将同一个实体的不同信息分别存储在不同的关系表中,这无疑使连接查询的效率降低,且存在不必要的冗余数据。

根据2.1节提出的混合存储策略,将数据的形式存储在RDB中,数据的具体内容则存储在NoSQL中,即可分担查询的压力,又可减降低零件信息的占用空间。首先,在结构化数据库中建立Part表,表结构如表2所示。

表2中,零件编号PartNumber作为Part表中唯一的主键,Version表示本条记录的版本信息,Created_stamp表示创建的时间戳,Created_Edit表示创建时的编辑人,Update_stamp表示更新时的时间戳,Update_Edit记录更新时的编辑人。StandardNotes等属性代表PartNumber记录下的各属性的个数。例如,当StandardNotes有5条记录时,对应PartNumber的StandardNotes属性值为5。当可选条目(如Annotation Set属性)中没有记录时,该值为0。该策略优势在于当寻找具体的内容信息时,可以只搜索相应属性条目的记录后,便可终止查询,避免了因遍历而增加的查询代价。

其次,在非结构化数据库中,建立如下文档:

{

" _id":ObjectId(" XXX"),

" PARTNUMBER":" XXX",

"Version":" XXX",

" Form_Attribute":" XXX",

" Type":{ " XXX":" XXX",

……

" XXX":" XXX",

}

}

其中,_id 为非结构化数据库自动生成字段,PartNumber属性表示零件号,Version表示版本信息,且与结构化数据库中的PART表中的PartNumber、Version对应。Form_Attribute表示本文档是隶属于StandardNotes、PartNotes、AnnotationNotes、MaterialDescripition、AnnotationSet、ApprovalStauts、Publication中的哪一条。在Type数组中,记录具体的属性内容。

1.3 读写操作

为了更明确的表示本方案的数据类型与查询方式,下面给出插入操作和查询操作的伪代码。插入操作的伪代码如下:

建立新游标RS;

RS(0)=零件A.零件号;

i=1;

While(RS(i)!=EOF)

插入Version、Created_stamp、Created_Edit、Update_stamp、Update_Edit属性信息;

IF 相应属性的记录数!=NULL THEN

RS(i)=count(对应属性的记录);

Insert;

{

" _id":系统默认值,

" PARTNUMBER":"零件A.零件号",

"Version":" RS(‘Version’).values",

" Form_Attribute":"相应属性",

" Type":{ 具体内容}

}

ELSE

RS(i)=0;

END IF

i++;

END While

查询操作的伪代码如下:

通过零件号设查询A零件的相关信息,RS为当前数据库游标。

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

2 验证实验

为了验证该存储方案的合理性,搭建实验环境进行实验。实验平台参数如表3所示。

在关系数据库中,使用双节点的Oracle 11G RAC集群。在NoSQL集群中,采用4节点的MongoDB,以Master/Slaver的形式工作,一个节点作为Master节点,其余三个作为Slaver节点。

实验方案采用上文提到的混合存储策略,在MongoDB中存入非几何信息的内容信息,在Oracle中存入零件的描述信息。对比方案是将非几何信息的内容信息以CLOB(Character Large Object,字符大对象)的格式存储在Oracle中,描述信息的存储方式不变。实验在一万条数据、十万条数据和百万条数据量下,将两种方案进行对比,从存取效率和占用空间两方面进行分析。

2.1 存取效率

从实验方案和对比方案的查询与插入两方面来说明本方案的优势。

在查询实验中,实验方案与对比方案以十万条数据量为基准,测试用户数量为100、500、1000时所需的查询时间。通过对多次实验结果计算平均值后,实验对比结果如图3所示。

图3 查询时间对比图

由图3可以看出,在多种用户访问数量下,本文提出的混合存储方案查询时间明显优于传统RDB存储方案。尤其是在大量用户的并发访问下,由于对比方案的并发能力有限,在用户数量超过500后,试验方案在查询时间方面明显少于老方案。

在存储实验中,设用户数量为100、500、1000时,每个用户对数据库进行10次插入操作后所需时间的总和,如图4所示。

图4 存储时间对比图

由图4可以看出,在不同用户数量的存储操作下,本文提出的混合存储方案的存储操作时间明显优于传统RDB存储方案。

2.2 占用空间

在Oracle RAC默认环境下,数据使用双副本存储方式,因此所需存储空间大大增加。通过对数据库的分析得知,在新方案中Oracle平均单条数,据大小为26 B *2=52 B/条,万条数据占空间508 kB;MongoDB同样使用双副本存储方式,每条数据平均占430 B*2=860 B,万条数据占空间8 398 kB,新方案中万条数据存储空间为8 906 kB。而在老方案中,由于数据的结构不同,Oracle中每条记录平均为504 B*2=1 008 B/条,万条数据存储空间为9 844 kB。

实验结果对比如图5所示,随着数据量的增长,存储空间使用量呈线性增长,由于冗余数据的降低,新方案在占用空间方面优于老方案。

图5 占用空间对比

3 结束语

本文针对基于MBD的零件模型静态非几何信息在PDM下的存储与查询问题进行了研究。提出了一种新的PDM底层数据存储环境,利用RDB与NoSQL的共同存储零件非几何信息的折中存储方案。通过实验证明,该方案在存取效率及占用空间方面都优于传统的单一RDB存储策略,为解决零件非几何数据给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]梅中义,杨涛.基于模型定义的飞机全三维设计实现技术[J].航空制造技术,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]石秀芬.基于模型定义技术(MBD技术)的分析研究[J].机械管理开发,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的产品总体信息模型的研究[J].制造技术与机床,2000(5):62-64.

[7]胡玉杰,李善平,郭鸣.基于本体的产品知识表达[J].计算机辅助设计与图形学学报,2003,15(12):1531-1537.

[8]陈超,黄建龙,刘世忠.基于零件特征的信息的数据库表达[J].机械设计与制造,2004(5):14-16.

[9]Y14.41-2003.Digital product definition data practices[S].ASME,2003.

[10]潘康华.基于MBD的机械产品三维设计标准关键技术与应用研究[D].北京:机械科学研究总院,2012:42-57.

[11]简建帮.基于MBD和特征的飞机结构件数控加工方法[J].机械科学与技术,2011,30(5):756-760.

[12]周秋忠,范玉青.MBD技术在飞机制造中的应用[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的产品定义信息三维表达及组织方法[J].制造业自动化,2011,33(6):130-133.

[15]冯国威,梁艳,等.基于模型定义的数据组织与系统实现[J].航空制造技术,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-),男,山东青岛人,教授,主要研究方向:数据库理论与技术,E-mail:xiaxiufeng@163.com。

2095-1248(2015)02-0061-06

TP311

A

10.3969/j.issn.2095-1248.2015.02.013

猜你喜欢

结构化数据库节点
CM节点控制在船舶上的应用
Analysis of the characteristics of electronic equipment usage distance for common users
促进知识结构化的主题式复习初探
基于AutoCAD的门窗节点图快速构建
结构化面试方法在研究生复试中的应用
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
数据库
数据库
数据库
数据库