




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 图数据库在工程数据中心的应用 陈肖勇 蔡永健 顾丹鹏 何栓康 主令恒摘 要: 为了提升工程建设及运维过程的工作效率和质量,建设覆盖工程全过程的全生命周期工程数据中心具有重大意义。工程数据中心数据建设的特点在于数据之间关联的多样化和复杂化,为适应这样的数据存储需求,采用区别于关系型数据库的图数据库构建工程主数据的存储方案,以维护其复杂多变的关联关系,并为基于图结构数据进行数据分析应用提供了可能。关键词: 图数据库; 数据存储; 数据中心; 图结构数据中图分类号:tp392
2、160; 文献标识码:a 文章编号:1006-8228(2021)09-42-04abstract: in order to improve the work efficiency and quality of project construction and maintenance process, it is of great significance to establish a full life cycle engineering data center covering the whole process of the project. the
3、 characteristics of data construction of engineering data center are the diversification and complexity of data association. in order to adapt to such data storage needs, the graph database, which is different from the relational database, is used to construct the storage of main engineering data in
4、 order to maintain the complex and changeable association relationship, and provide the possibility for graph structured data based data analysis and application.key words: graph database; data storage; data center; graph structured data0 引言工程數据中心的数据建设特点在于数据之间关联多样化和复杂化,系统设计之初需要考虑到为建立主数据管理体系和数据标准体系提供
5、灵活可配置的数据模型,对于其采用的主数据库选型,传统的关系型数据库受到了一定的限制和约束。近年来,有别于传统关系型数据库,出现了一系列新型的no-sql数据库类型(not only sql,非关系型数据库),其中图数据库(graph database)是一种以图结构进行语义查询,并使用顶点、边与属性来表示和存储数据的数据库1。图数据库的关键概念是边,通过边将顶点连接在一起,从而进行快速的图检索操作。图数据库的关注点是“关联关系”形成的图,其目标是对现实世界中的实体与实体之间的关联关系进行存储与分析:将实体抽象为顶点、将实体之间的关联关系抽象为边。通过顶点和边形成的图谱结构,直观自然的表达万物关
6、联的世界,同时解决了复杂关联关系深层检索的性能问题。考虑到工程数据中心的主数据特点,本文探讨在工程数据中心的设计中应用图数据库存储和管理工程主数据,以维护其复杂多变的关联关系,实践中本文案例选取了具备多种nosql特点的原生多模型图数据库arangodb,构建了工程数据中心的主数据服务。1 图数据库简介现实世界中的一切事物都处在联系之中,如人际关系、电脑网络、地理数据、分子结构模型等,无一不处在纷繁复杂的联系之中。这种联系,形成了一种互相关联的数据,联系才是数据的本质所在。传统的关系型数据库并不能很好地表现数据的联系,而一些nosql数据库又不能表现数据之间的联系。同样是nosql的图数据库,
7、是以图的结构形式来存储数据的,它所存储的就是联系的数据,是关联数据本身2。关联数据中的联系本来就很复杂,若要在关系型数据库中使用结构化形式来表现这种联系,则一般不能直接表示,处理起来既烦琐又费事,并且随着数据的不断增长,其访问性能将日趋下降。无数的开发人员和数据库管理人员都或多或少地使用过关系型数据库,在其应用的规模化进展过程中,对于数据库的性能优化往往捉襟见肘、陷入窘境。图数据库没有模式结构的定义,也不需要这些定义,它使用非结构化的方式来存储关联数据,所以能够直接表现数据的关联特性。2 图数据库优势2.1 数据处理速度图数据库可以很高效地插入大量数据。图数据库面向的应用领域数据量可能都比较大
8、,比如知识图谱、社交关系、风控关系等,总数据量级别一般在亿或十亿以上,有的甚至达到百亿级。关系型数据库如mysql不做分库分表的情况下插入百万数据基本就很慢,图数据则能够胜任亿级以上的数据,比如neo4j、arangodb等图数据库,在持续插入亿级的数据基本还能保持在一个较高的速度3。图数据库可以很高效地查询关联数据。传统关系型数据库不擅长做关联查询,特别是多层关联。因为关系型数据库一般需要做表连接,表连接是一个很昂贵的操作,涉及到大量的io操作和内存消耗。图数据库对关联查询一般都进行针对性的优化,比如存储模型上、数据结构、查询算法等,防止局部数据的查询引发全部数据的读取4。2.2 扩展性图数
9、据库使用图的方式来表达现实世界的关系很直接、自然,易于建模。比如工程中某位工程师绘制了一张图纸,就可以建立一条边连接这个工程师和这张图纸,这条边就叫做“绘制”边,同时这位工程师还是可以有很多其他的边,比如所属部门、检查设备边等,同样这张图纸也有其他边,这样很自然地就构建了关系网。此外,图数据库提供了针对图检索的查询语言和专业的分析算法工具。图数据库语言比如gre面临、cypher等,算法比如shortestpath、pagerank,personalrank、louvain等,这些语言、算法工具为图数据库的扩展提供了很大的便利。3 数据处理技术方案3.1 数据库选择与设计arangodb是一个
10、原生多模型数据库,兼有key/value键/值对、graph图和document文档数据模型,提供了涵概三种数据模型的统一的数据库查询语言,并允许在单个查询中混合使用三种模型。基于其本地集成多模型特性,支持搭建高性能程序,并且这三种数据模型均支持水平扩展。本文的实践中,选择了arangodb数据库作为工程数据中心主数据服务的存储解决方案,主要理由是其多模型特征在利用其图存储特性之外,还能利用键/值对模型与工程数据中心包括元数据服务在内的其他服务模块进行跨数据库数据映射匹配。3.1.1 容器设计不同于关系型数据库,图数据库没有表结构,取而代之的是容器的概念。容器与表相似,可以定义属性字段和标签。
11、容器分普通容器和边容器,普通容器用于存储图的节点,边容器则存储图的边。工程数据中心的应用场景将工程数据对象用普通容器存储为节点,并定义为主数据容器。主数据容器包含固定字段和动态字段,固定字段用于标识数据对象的类型和基本信息,动态字段是一个json形式保存键值对的字段,用于保存基于实际应用场景定义的数据对象属性。3.1.2 动态字段设计为适应可动态配置的属性字段结构,把属性字段定义在单独的表进行维护,并约束属性字段的名称、类型、规则和取值范围,通过唯一的属性字段id进行匹配。具体匹配方式为,在用于存储动态字段的json子串中,用属性字段id作为键值对的键,对应的属性值作为键值对的值。当数据对象被
12、读取时,对json字串中每个键值对,利用属性字段id匹配查询出每个属性字段的名称、类型等信息,配上键值对的值,即为完整的每个属性。该设计还可以将数据对象的关联关系抽象为一种属性字段,并通过属性字段id和图数据存储结构的边进行标签关联,数据对象与另一个数据对象的关联描述作为一个引用属性在数据对象的内容中体现。3.2 事务处理在数据处理的过程中,不可避免的需要面对事务机制,在存在多种关联关系的图结构数据中,数据联动修改时的事务机制实现也是图数据库应用实践中需要面对的问题。spring data arangodb对数据库事务机制的支持并不完善,实践中开发团队对此进行了额外的处理,利用arangodb
13、 java driver驱动模块提供的事务相关接口完成了事务封装的实现。事务实现流程见图1:通过构建自定义的事务处理模版,将数据处理相关的核心流程进行封装,并将事务实现的相关流程(获取事务id、构建选项参数、调用)操作嵌入模版,利用驱动提供的arangoaspect完成事务机制的实现。4 图数据库应用实践4.1 工程数据中心说明工程数据中心项目目标是为建立各工程行业bim模型及工程数据标准,梳理设计、建管、运维三大平台的主数据及关系,实现工程全过程数据贯通,并在此基础上不断围绕工程进行数据的集成、复用、沉淀,从而创造数据价值和业务价值5。工程主数据指具有高业务价值的、可以在工程内跨越各个阶段、
14、各个业务部门被重复使用的数据,是具有单一、准确、权威性质的数据。工程主数据包含工程元数据、工程引用数据、工程结构数据、业务结构数据。工程元数据,指工程数据中心最基础的数据,是关于工程数据的数据,或者是用于描述其他工程数据的结构数据。工程引用数据,定义了工程元数据的可能取值范围,也可称为属性值域。工程结构数据,描述了工程数据之间的关系,反映了现实世界的实体间的关系或流程。业务结构数据,数据描述了各工程业务的直接参与者,业务结构数据描述的数据实体通常由一个唯一的数据编码以及大量的属性信息构成。根据工程数据中心业务应用需求,数据层负责数据存储,包括工程元数据、工程引用数据、工程结构数据、业务结构数据
15、、模型文件、模型属性、空间位置及文档文件等,这些数据包含结构化与非结构化数据,为了存储这些数据,需要采用多种存储技术,构建异构数据系统,具体包括:分布式缓存(redis)这类内存数据库,用于提升服务响应性能;对象存储(minio,objectstorage service)用于存储非结构化数据,如模型、文档;关系型数据库(mysql)用于存储主数据及系统相关数据;图数据库(arangodb)用于存储工程对象数据,组成工程对象关系网络;空间数据库(postgresql+postgis)用于存储bim的空间几何数据。4.2 图数据库的应用图数据库在工程数据中心用于存储工程对象数据,包括数据对象和对
16、象关联关系。具体数据对象的创建思路分两步。第一步,建立数据标准,数据标准描述了工程对象数据的关系结构和属性字段定义。将数据标准结构化存储,其结果称为工程元数据,这些工程元数据并不以图结构存储而是更适合以sql数据库存储,仅用于驱动工程对象数据的存取操作过程。第二步,完成工程元数据创建后,可以在图数据库具体创建工程数据对象,按上文3.1.2节所述的动态字段设计逻辑,工程数据对象基于第一步的工程元数据创建数据对象实体,包括其动态属性字段,即为图结构的节点,和创建数据对象之间的关联关系,即为图结构的边。在实践过程中,第一步过程扩展为工程数据中心的工程元数据管理模块,用于维护数据标准的创建、迭代和应用
17、管理;第二步过程则被项目数据管理模块涵盖,在底层实现时,通过将工程元数据的内容抽象为“数据模版”,并指导在图数据库上创建和更新工程数据对象,包括控制工程数据对象的数据域,操作其属性字段的类型、值域和校验规则,也包括以将数据对象关联关系抽象为主对象的一个引用属性的方式,操作数据对象关联所对应的边。在数据对象以图结构完成存储之后,工程数据中心可以基于图数据库提供的一系列图算法函数,对工程数据对象的关系网进行一系列的分析、遍历和统计。5 结束语本文介绍了图数据库作为no-sql数据库的一种,其与关系型数据库对比的优点。为满足工程数据中心的主数据存储应用场景的需求,本文重点阐述了采用图数据库arangodb构建工程数据中心主数据服务存储方案的设计思路和应用实践过程。基于以上论述可见,采用图数据库作为工程数据中心的主数据服务存储方案规避了采用关系型数据库会遭遇的一系列难题,有效降低了开发和系统后续升级维护的复杂度,并且
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 夜间施工周边居民沟通协调方案
- 锂电池生产流程自动化与物联网整合方案
- 病房改造项目风险评估与应对方案
- 校园消防安全教育-讲话
- 校园安全教育管理讲座
- 消防大队校园安全教育
- 公路项目勘察与设计方案
- 给水工程水库建设与管理方案
- 给水工程供水管网设计方案
- 地热供暖示范项目配套技术方案
- 煤矿掘进科培训课件
- 产品质量监督管理制度
- DB43-T 2724-2023 农村公路养护工程预算编制办法及定额
- CJ/T 480-2015高密度聚乙烯外护管聚氨酯发泡预制直埋保温复合塑料管
- 肥胖症诊疗指南(2024年版)解读
- 入股瑜伽店协议书
- 旅游团队境外医疗援助补充协议
- 联通智慧矿山协议合同
- 混凝土考试试题及答案
- 《小学交通安全教育》课件
- 四川省成都市2025届高三上学期第一次诊断性考试化学检测试卷(附答案)
评论
0/150
提交评论