APP下载

关于混凝土行业MongoDB数据库应用的研究

2018-11-29任会民杨旭辉刘宪红刘飞

科技与创新 2018年20期
关键词:日志数据库混凝土

任会民,杨旭辉,刘宪红,刘飞



关于混凝土行业MongoDB数据库应用的研究

任会民,杨旭辉,刘宪红,刘飞

(中建商品混凝土有限公司,湖北 武汉 430074)

随着移动互联网、云计算、大数据、物联网等信息技术的广泛应用,混凝土行业信息系统使用的数据库也有了更多的选择。MongoDB是当前比较流行的NoSQL数据库之一。很多情况下,MongoDB数据库可用于替代混凝土行业传统的关系型数据库。为了提高混凝土行业的管理水平,针对混凝土企业常见的业务,结合MongoDB数据库的特点,对MongoDB数据库进行了研究,并分析出MongoDB数据库在混凝土行业适用的场景。MongoDB数据库适用于大多数混凝土企业。

互联网;混凝土;MongoDB数据库;分布式架构

在互联网时代,我们的社会结构、生活方式、工作场景、思维范式等都呈现出全新的特点,一切传统的思维和习惯都面临着重塑。混凝土企业正加紧向“互联网+”转型,业务电商化、管理智能化、产业链生态化等成为混凝土市场新的主力场。

混凝土行业需要使用新的信息技术来满足互联网+的需求。MongoDB是最近流行的NoSql数据库中的一种,MongDB数据库的存储方式、查询方法、架构、数据处理方式等特点,在混凝土行业使用可以起到更好的效果。

1 MongoDB的概念

1.1 NoSQL的概念

NoSQL(NoSQL=Not Only SQL),即“不仅仅是SQL”。

NoSQL,指的是非关系型的数据库。NoSQL有时被称为Not Only SQL的缩写,它是与传统关系数据库不同的数据库管理系统的通用术语。NoSQL用于超大规模数据的存储。例如,谷歌或Facebook每天为其用户收集数万亿比特的数据。这些类型的数据存储不需要固定模式,并且可以横向扩展。NoSQL这个术语最早出现于1998年,是一个由Carlo Strozzi开发的轻量级、开源、非SQL启用的关系数据库。NoSQL最常见的解释是“非关联”,强调Key-Value Stores和文档数据库的优势[1]。

1.2 MongoDB的概念

MongoDB是一个基于分布式文件存储的数据库,属于非关系数据库,用C++语言编写而成,旨在为Web应用程序提供可扩展的高性能数据存储解决方案。

MongoDB是一个高性能、开源、无模式的文档数据库,是比较流行的NoSql数据库之一。MongoDB是处于关系数据库和非关系数据库之间的产品。他支持的数据结构非常宽松,类似于Json的Bjson格式,因此它可以存储更复杂的数据类型[2]。

1.3 MongoDB的特点

MongoDB的最大特点是支持的查询语言功能非常强大,其语法有些类似于面向对象的查询语言。几乎所有单表查询的功能(如关系数据库)都可以实现,并且还支持数据索引。MongoDB服务器在Linux、Windows或Mac OS X平台上运行,并支持32位和64位应用程序。建议在64位平台上运行,因为MongoDB在32位模式下运行时支持的最大文件大小为2 GB。

MongoDB具有高性能、易于部署和使用、用户可以轻松存储数据等优点。主要功能特性有:①对于集合存储,很容易存储对象类型的数据;②模式自由;③支持动态查询;④支持完全索引,包含内部对象;⑤支持查询;⑥支持复制和故障恢复;⑦使用高效的二进制数据存储,包括大对象(如视频);⑧自动处理碎片以支持云计算层次结构的可伸缩性;⑨支持RUBY、PYTHON、JAVA、C++、PHP、C#等多种语言;⑩文件存储格式为BSON(一种JSON的扩展);⑪可通过网络访问。

2 MongoDB的国内应用案例

国外的应用案例很多,在MongoDB的官网上有详细说明,涉及金融、传统等各类行业,下面主要来说一下国内的案例。

2.1 奇虎360

奇虎360技术有限公司是大家非常熟悉的病毒软件防护公司,同时为网络以及移动平台提供产品。2011年起,奇虎360成为MongoDB的用户,至今奇虎已经在MongoDB上构建了100多个不同的应用,其中包括新服务以及从传统数据库Mysql上迁移过来的服务。每天都会在MongoDB上运行超过1 000多个实例,并且支持200亿次查询。

2.2 东方航空

中国东方航空2015开始开发全新航空电商系统,选用了可横向扩展的NoSQL数据库MongoDB。预估将来要能承载一天10亿次数据查询。东方航空开始先评估了Oracle关联式数据库。

东方航空航班数据库每秒钟都要接收几百笔的数据更新,数据来自中国全球分销系统GDS,航班数据一有变更就需要马上同步,整个过程必须经过查询、比较、计算以及插入等动作,他们评估的Oracle数据库显然无法加载,因此他们选择了MongoDB数据库。

2.3 携程

携程国际机票数据的缓存数据,从Redis上迁移到MongoDB数据库上后,可以缓存数百亿条国际机票查询记录,并能够做到实时处理高并发的增删改查。迁移完成之后,数据准确度提高了20%,速度提高80%.

2.4 高德

MongoDB在高德得到广泛应用,AOS、云图、收藏夹等业务都使用了MongoDB数据库,考虑到schema free、开发成本低以及高可用等特性,结合高德的发展需要,高德选择了MongoDB。

3 MongoDB在混凝土行业的应用范围

根据MongoDB数据库的特点,MongoDB适合以下场景:数据量大、读写次数高、需求多变、数据模型无法确认,需要对接多个数据源等。结合混凝土行业特征,MongoDB可用于下列范围。

3.1 ERP数据库设计

MongoDB数据库适合需求多变的ERP系统设计。在经济新常态下,随着国家和地方的经济转型升级和结构调整,预拌混凝土行业的经营环境和市场形势都发生着剧烈变化,特别是信息技术与互联网技术的创新和应用,对预拌混凝土企业的传统商业模式、经营方式、管理手段等方面,都提出了更大的挑战。混凝土行业为了顺应、把握和引领新时势下的经营与发展,进行了大量的探索和实践,特别是在精细化改革与建设方面,投入很大精力,开展了一系列攻坚工作。精细化改革离不开信息化手段的支撑,混凝土行业ERP需要随着行业大环境适时进行调整、优化,MongoDB数据库结构灵活,表结构更改比较自由,适合混凝土行业ERP系统设计。

3.2 消耗存储

MongoDB数据库适用于存储大容量混凝土生产消耗数据。材料消耗是混凝土企业的主要成本之一,混凝土ERP系统中需要对消耗数据进行采集、存储、分析。混凝土消耗以盘次为单位,区分不同的货仓材料,平均1车混凝土3~4盘,12种不同的货仓材料,按1个中型厂站,月产量3×104m3,仅仅消耗一项,1个月约产生14.4万条数据,长久以往,将产生数百万级的数据,对系统造成较大的压力,增加维护难度。可以将消耗存储与ERP系统主数据库分开,单独存放于MongoDB数据库中,MongoDB非常适合实时查询、修改、新增,它具有网站实时数据存储所需的可重复性和高灵活性,适用于具体生产消费数据的存储[4]。

3.3 多个系统对接

MongoDB适合多个系统之间数据对接。混凝土搅拌站存在ERP、工业控制系统、质量管理系统、磅房称重系统等多种信息系统。多个系统之间可以采用webservice、WCF等技术进行数据对接。MongoDB以文档方式进行数据存储,文档以BSON格式存在,这是一种JSON类文档的二进制编码格式,该结构类似于嵌套的键值对,每个文档都有唯一的标识符。MongoDB可以支持丰富的查询表达式、可以方便使用webservice技术在各个系统之间进行数据对接。

3.4 日志、配置存储

MongoDB可以存储系统日志、配置信息。影响混凝土搅拌站管理的因素有:①混凝土搅拌站工控的品牌较多,有思伟、中建机械、三和、三一等多种品牌;②每个地区的实际情况不一样,如环保等,有的地区有特殊要求;③每个区域公司会根据自身发展情况制定不同的管理要求等。混凝土信息系统设计时需要考虑通用性,在系统前台增加响应功能,并根据不同情况进行配置,满足通用性的要求。由于其高性能,MongoDB适合作为信息系统的缓存层。

混凝土对生产实时性要求较高,并要求信息系统有较高的稳定性,一旦出现故障,要求能快速排查,迅速解决问题;同时,需要对后续原因进行总结和分析,以避免后续的类似故障。混凝土企业内部运行的各类信息系统会产生大量的运行及访问日志,日志里会包含一些错误、警告及用户行为等各类信息,通常系统会以文本的形式记录日志信息,但当产生大量的日志之后,要想从大量日志里挖掘出有价值的内容,则需要对数据进行进一步的存储和分析,文本方式就难以满足要求。当信息系统发生故障时,日志可以存储在MongoDB数据库中,这样日志数据的价值就可以实现最大化,并加速问题的处理[5]。

3.5 分布式架构设计

MongoDB支持分布式文件存储。针对混凝土行业对数据安全性要求较高、数据量较大的特点,MongoDB可以将数据同步在多个服务器。MongoDB的复制技术提供数据的冗余备份,并跨多个服务器存储数据副本,从而提高数据可用性并确保数据安全。

MongoDB分片技术可以满足MongoDB数据量的巨大增长。当MongoDB存储大量数据时,一台机器可能不足以存储数据,并且可能不足以提供可接受的读写吞吐量。此时,我们可以通过在多台机器上拆分数据来使数据库系统存储和处理更多数据[3]。

4 总结

随着信息化技术的不断发展,MongoDB在混凝土行业ERP系统数据库设计、大容量数据存储、分布式系统设计、日志存储、配置信息存储等方面可以发挥巨大的作用,提高混凝土行业信息化水平。

[1]陈浩.非关系型与关系型空间数据库协同应用探究[J].电子测试,2014(12).

[2]吴鹏,刘恒旺,丁慧君.基于本体和NoSQL的机械产品方案设计的知识表示与存储研究[J].情报学报,2017(3).

[3]刘彬.分布式数据注册中心数据分区存储策略研究[D].成都:成都理工大学,2016.

[4]金鑫.商品水泥搅拌站管理决策及控制系统研究[D].重庆:重庆大学,2008.

[5]张迪.基于NoSQL的大规模Web日志分析系统的设计与实现[D].上海:复旦大学,2013.

2095-6835(2018)20-0038-02

F426.92

A

10.15913/j.cnki.kjycx.2018.20.038

任会民(1974—),男,湖北人,本科,工程师,研究方向为信息化管理。杨旭辉(1989—),男,湖北人,本科,研究方向为信息化管理。刘宪红(1982—),男,湖北人,本科,研究方向为信息化管理。刘飞(1992—),男,安徽人,硕士,研究方向为城市计算、现代电子商务。

〔编辑:严丽琴〕

猜你喜欢

日志数据库混凝土
混凝土试验之家
浅谈煤矸石在固废混凝土中的应用
关于不同聚合物对混凝土修复的研究
一名老党员的工作日志
低强度自密实混凝土在房建中的应用
读扶贫日志
雅皮的心情日志
雅皮的心情日志
数据库
数据库