大数据存储技术mongodb在支撑系统数据分级存储中的实践.docx
成果上报申请书成果名称大数据存储技术mongodb在支撑系统数据分级存储中的实践成果申报单位中国移动通信集团北京成果承当部门/分公司信息系统部工程负责人姓名崔希宁工程负责人联系和Email13901287025cuixiningbmcc工程参与人姓名杨海威、王江、张雨晴、宋哲、常莎成果专业类别*业务支撑所属专业部门*业务支撑线条成果研究类别*现有业务优化省内评审结果*(按填写说明4)关键词索引(35个)大数据海量查询非结构型数据库数据生命周期管理应用投资万元(指别的省引入应用大致需要的投资金额)产品版权归属单位北京移动对企业现有标准标准的符合度:(按填写说明5)符合NGB0SS3.O标准如果该成果来源于研发工程,请填写研发工程的年度、名称和类型(类型包括:集团重点研发工程、集团联合研发工程、省公司重点研发工程、其他研发工程),可填写多个:省公司重点工程NGCRM3.5专利情况:如果该成果产出相关专利,且专利处于国知局专利申请审查阶段或已授权,请说明专利名称、类型、申请号、状态、是否海外申请等情况。(按填写说明7)成果简介:简要描述成果目的和意义,解决的问题,取得的社会和经济效益。随着云技术的逐渐推广,基于云技术的大数据海量信息存储也应用得越来越广泛。本研究基于开源数据库技术,研究实施大数据的处理方法策略,并在数据信息生命周期管理中落地实施。在通常意义上,大数据(bigdata),或称巨量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内到达撷取、存储、管理、处理、并整理成为帮助企业经营决策更积极目的的信息或运营支撑。大的数据需要特殊的技术,以有效地在容忍时间内完成处理。适用于大数据的技术,包括大规模并行处理(MPP)数据库,数据挖掘,分布式文件系统,分布式数据库,云计算平台,和可扩展的存储系统。核心是数据分片存储,分布移动计算。在北京移动数据分级存储ILM系统三期建设中,我们在非结构化数据库技术NoSQL的应用方面进行了相关的探索和尝试,并成功运用到统一历史数据归档查询中心平台建设中,为数据中心数据分级存储系统(生命周期)的数据存储及分析查询开辟了一种新的方式。解决数据处理对传统oracle数据库技术的依赖,极大降低企业本钱提高企业的创新能力。省内试运行效果:描述成果引入后在本省试运行方案、取得的效果、推广价值和建议等。随着北京移动数据分级存储系统三期,即ILM三期系统的上线,统一历史数据归档查询中心中的数据已经涵盖老的BoSS3、SiebelCRM以及新的NGCRM、NGBOSS、营销管理平台等系统的历史数据。其中既包含基于常见的关系数据库Oracle数据的直接归档的数据,还包含基于非结构化数据存储的非结构化数据,以及通过转换后的软件和存储本钱更低的半结构化数据。在采用MOngoDB数据库后,统一归档查询中心对于基于文本的非结构化以及半结构化归档历史数据的查询性能得到大幅提升。尝试解决了不适合在Bl也不适合在CRM构架下处理的数据关联分析的需求。应对不断增加的大数据即时分析业务问题。同时,本结构支持云平台技术,能够到达开源节流提高企业在移动互联环境核心竞争力。新的系统完全在刀片环境,开源环境实现,极大降低软硬件建设维护本钱。文章主体(3000字以上,可附在表格后):根据成果研究类别,主体内容的要求有差异,具体要求见表格后的“填写说明6”。1 .业务支撑分级存储系统数据生命周期系统出现的问题随着公司在业务运营过程中产生的数据步入PB级,电信运营企业“大数据时代渐渐来临。一方面随着业务产生的历史数据的爆炸性增长,对于历史海量数据的管理和检索带来了巨大挑战;另一方面,在企业活动产生的数据中20%的是结构化的,而80%那么是非结构化或半结构化的,原有关系型数据库也面临诸多瓶颈。与业务信息系统中大量用于交易记录和统计分析等的结构化数据相比,非结构化数据具有某种特定和持续的价值,这种价值在共享、查询、分析等使用过程中得以产生和放大,并最终对企业业务和战略产生影响。在管理方式上,相对于存储在关系型数据库里,用二维逻辑表来表现的结构化数据而言,那些不方便用数据库二维逻辑表来表现的数据就是所谓的非结构化数据,包括报表、账单、影像、办公文档、扫描文件、Web页面、电子邮件以及多媒体音频和视频信息等。因此在管理这些非结构化数据时,原来主要用于管理结构化数据的关系数据库的局限性暴露地越来越明显,面对这些种挑战,大数据处理技术、非结构化数据库技术的引入就变得1 *7, E,匕畋Il * K 化岫 <业务支人堂历史检nfine y NGOSS.NOCRM. CAI. COSSW %的切支日益迫切。2 .解决问题的思路在通常意义上,大数据(bigdata),或称巨量资料,指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内到达撷取、存储、管理、处理、并整理成为帮助企业经营决策更积极目的的信息或运营支撑。大的数据需要特殊的技术,以有效地处理大量的必须在容忍经过时间内处理的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库,数据挖掘,分布式文件系统,分布式数据库,云计算平台,和可扩展的存储系统。核心方法是数据分片和分布移动计算。在北京移动数据分级存储ILM系统三期建设中,我们在非结构化数据库技术NoSQL的应用方面进行了相关的探索和尝试,并成功运用到统一历史数据归档查询中心平台建设中,为我们的历史数据归档及分析查询开辟了一种新的方式。3. MOngoDB的根底研究和试验比照1)大数据处理技术根底比照目前流行的M)SQL数据库,包括应用越来越广泛的MOngODB、HBaseCaSSandra等。根据不同纬度的根底研究可以得到:EXDATAHADOOPGREENPLUM投资昂贵开源EMC扩展性困难容易容易灵活性不可以自由扩展可以自由扩展可以自由扩展存储方式Orade数据库HADc)C)P文件系统PostgreSqI提供效劳接口Oracle文件系统f接口数据检索支持各种关联不支持简单的辘关联冗余管理ASM冗余管理自动备份冗余数据块数据库节点冗余仅支持Linux各种操作系统异构Linux蜂国内较少高级效劳国内稀少EMC效劳根据我们的实际系统情况我们选择MongoDB进行研究和应用。MongoDB是一个高性能,开源,无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。MOngO使用C+开发,提供了以下功能: 面向集合的存储:适合存储对象及JSON形式的数据。 动态查询:MOngo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。 完整的索引支持:包括文档内嵌对象及数组。MOngO的查询优化器会分析查询表达式,并生成一个高效的查询方案。 查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。 复制及自动故障转移:Mongo数据库支持效劳器之间的数据复制,支持主-从模式及效劳器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。 自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器。MOngODB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。MOngODB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它可以存储比拟复杂的数据类型。MongO最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大局部功能,而且还支持对数据建立索引。MOngODB的特点是高性能、易部署、易使用,存储数据非常方便。主要特性有: 面向集合存储,易存储对象类型的数据。 模式自由。 支持动态查询。 支持完全索引,包含内部对象。 支持查询。 支持复制和故障恢复。 使用高效的二进制数据存储,包括大型对象(如视频等)。 自动处理碎片,以支持云计算层次的扩展性。 文件存储格式为BSON(一种JSON的扩展)。 可通过网络访问。 支持OSX、LinUX及WindoWS等操作系统,并提供了PythOn,PHP,RUby,Java及C+语言的驱动程序。基于MongoDB的特点,MongoDB适合用于以下场景: 网站数据:MongoDB非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。 缓存:由于性能很高,MongoDB也适合作为信息根底设施的缓存层。在系统重启之后,由MongODB搭建的持久化缓存层可以防止下层的数据源过载。 大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比拟昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。 高伸缩性的场景:MongoDB非常适合由数十或数百台效劳器组成的数据库。Mongo的路线图中已经包含对M即RedUCe引擎的内置支持。 用于对象及JSON数据的存储:Mongo的BSON数据格式非常适合文档化格式的存储及查询。MongoDB的使用也会有一些限制,例如以下场景不适合: 高度事务性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。 传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更适宜的选择。 需要复杂SQL的场景;2)对于其根本特性,进行MongODB与OraCIe的大数据处理试验比照和分析我们这里针对电信行业支撑系统产生的历史数据在信息生命周期管理过程中的典型操作,在相同资源环境下的安装两种不同数据库MOngODB和OraCle,分别进行了以下实验:在同一台主机上安装VMWare虚拟机,并在虚拟机上安装MongoDB和OraCle数据库;对生产系统上的历史数据抽取成CSV格式后进行分批数据导入,并记录下相关数据以及CPU和内存资源消耗情况;在每一批数据导入完成后,对数据库中当前已有的数据库分别进行单一条件、多条件查询并按照无索引和有索引两种方式查询数据,并记录查询的效率;实验环境主机型号:HPDL580G4虚拟机:X86-64bit操作系统:LinuxRedHat5.564bitCpu:2C(*4核)Memory:8GMongoDBVersion:2.2.20racleVersion:Oracle11GRelease2Storage:70G试验结果,具体数据导入获得的实验数据如表-2所示:表T数据批量导入性能及系统资源消耗比拟导入数据量(万)数据导入时长(三)数据导入速度(条/S)数据导入期间CPU(%)数据导入Mem(%)MongodbOracleMongodbOracleMongodbOracleMongodbOracle100179.99229.65556435516.2427.26.347.810095.44178.5610478560016.526.46.8710.58200164.32348.2312171574335.8538.715.6220.5300577.97950.795191315545.638.726.2523.2500720.072280.836944219255.2941.131.5823.4说明:(1)MOngODB数据库采用MOngOImPOrt批量导入工具,在采用普通插入模式进行实验;Oracle数据库采用sqlldr批量导入工具进行数据导入情况下获得以上实验数据:通过以上实验数据,可以获得以下实验结论:(1)在大批量数据导入时速度上MongoDB导入性能比OracleSqlloader明显要快;(2)在数据导入时随着数据量的增长,MOngoDB在CPU和内存消耗的上升速度比Orade要快,因此在小批量数据导入情况下,MongoDB的CPU和内存的消耗比Oracle少,但是在大批量数据导入情况下,MongoDB的CPU和内存的消耗比Oracle多。在实验过程中也验证了MongODB在32位操作系统上存储的数据容量上限为2.5G的情况。在将生产系统历史数据导入相应数据库后,获得的查询相关实验数据如表-2所示:表-2数据查询性能比拟总数据量(万)单一条件查询(无索引)(s)单一条件查询侑索引)(s)多条件查询(无索引)(s)多条件查询侑索引)(s)MongoDBOracleMongoDBOracleMongoDBOracleMongoDBOracle1004.4081.090.0010.052.6440.270.0050.032003.80.50.00010.093.0520.480.0070.034006.3883.720.0050.063.7390.990.0110.0170051.5*5.970.0090.0312.5624.010.0030.03120087.2336.950.0090.0619.8797.290.0040.07说明:(1) MOngODB数据库采用MOngolmPOrt批量导入工具导,在采用普通插入模式进行以上实验;(2) MongoDB采用单节点方式;Oracle数据库采用SqlIdr批量导入工具进行数据导入情况下获得以上实验数据;通过以上实验数据,可以获得以下实验结论:(1)在没有索引的情况下,无论是单条件查询还是多条件查询,MongoDB的查询性能比Orade的查询性能要低很多:(2)在有索引的情况下MongoDB的查询效率相对没有索引的情况有显著提升,甚至已经超出了相同记录下Oracle的查询性能;(3)在有索引的情况下,在大数据量查询时,无论是单条件查询还是多条件查询,总体上MongoDB的查询性能比Oracle的查询性能要高;(4)MongODB在执行一次查询后,同样查询条件下第二次查询时查询时长比第一次要短;4.采用MongoDB分布数据处理技术优化支撑数据分级存储系统的数据导入存储、查询分析功能和业务实现机制基于以上研究和试验,在非结构化数据的归档和查询需求越来越多的业务和数据环境下,在北京移动数据分级存储系统三期中采用非结构化数据库MOngODB优化改造了数据处理和分析的实现机制。例如,一个典型应用针对从营销管理平台产生的营销历史短信数据归档及查询。由于从营销管理平台提供的数据都是基于文本的半结构化数据。营销短信的数据量巨大,半年的数据量有上亿条,且这些数据又具备非结构化数据的特点,但是逻辑相比照拟简单,没有过多关联的情况。其他需求如上下行短信,其数据量巨大,传统的数据库之间的数据迁移操作十分困难。MongoDB可将一个文档或文件以BSoN(BinaryJSON)的格式存入其中。并可以实现类似关系数据库单表查询的绝大局部功能,而且还支持对数据建立索引。基于MongoDB的统一历史数据归档中心归档及查询功能实现过程如下:流程处理:(1)文本数据、直接数据,数据源可以是结构化的数据库数据,也可以是半结构化非结构化的数据。(2)数据导入进程,对于外部的需要归档的数据需要经过专门的数据导入进程进行相应的转换,以便MOngoDB数据库处理;例如,对于其中一个外围提供的文本文件的MOngoDB入库命令如下:mongoimport-dTIBC03_HIST-cSWI_IN_BAK_01-typetsv-headerline-drop<SWIIN01.tsv根据我们的验证,在大批量数据导入时速度上MongoDB导入性能比OracleSqlloader明显要快。(3) MOngODB数据文件,由于VongODB是一种基于JSoN(JaVaSCriPtObjectNOtation)的非关系型数据库,可将一个文档或文件以BSON(BinaryJSON)的格式存入其中。JSON是一种轻量级的数据交换格式,这种交换格式易于阅读和编写,同时也易于机器解析和生成。以BSON格式存储的非结构化数据,在MongoDB数据库中称之为文档(Document)每个文档可理解为关系数据库中的一条记录(ReCord),假设干记录使用集合(COlleCtion)统一管理,假设干集合属于同一个数据库,如此一来,文件数据可宜接存储于数据库中。(4) MongODB驱动,MongoDB是以C+开发的,但是支持基于网络访问的Java、PythOr1、PHP等语言的驱动,我们这里用到了MongoDB的Java驱动程序。(5) WebSPhere数据查询,归档后的历史数据查询功能集成在基于WebSPherC的统一历史数据查询中心中,为用户提供统一的历史数据查询视图。最终实现基于Linux平台、Websphere中间件、以及MongoDB数据库的历史短信查询界面截图如下:基于实际数据处理的运行效果,新的构架有以下特性:- 导入性能上:在大批量数据导入时速度上MongoDB导入性能比OracleSqlloader明显要快;- 资源消耗上:在数据导入时随着数据量的增长,MongODB在CPU和内存消耗的上升速度比Orade要快,因此在小批量数据导入情况下,MongoDB的CPU和内存的消耗比Orade少,但是在大批量数据导入情况下,MongoDB的CPU和内存的消耗比Oracle多;- 索引特性:在没有建立索引情况下,无论是单条件查询还是多条件查询,MongoDB的查询性能比Oracle的查询性能要低很多;在有索引的情况下MongoDB的查询性能相对没有索引的情况有显著提升,甚至超出了相同记录数下Oracle的查询性能;- 查询性能:在有索引的情况下,在大数据量查询时,无论是单条件查询还是多条件查询,总体上MongoDB的查询性能比Oracle的查询分析性能要高;5.优化后到达的效果和意义,产生的经济效益随着北京移动数据分级存储系统三期,即ILM(InformationLifecycleManagement)三期系统的上线,统一历史数据归档查询中心中的数据已经涵盖老的BoSS3、SiebelCRM以及新的NGCRM、NGBOSS,营销管理平台等系统的历史数据。其中既包含基于常见的关系数据库Oracle数据的直接归档的数据,还包含基于非结构化数据库MongoDB的非结构化数据,以及通过转换后的软件和存储本钱更低的半结构化数据。在采用MOngoDB数据库后,统一归档查询中心对于基于文本的非结构化以及半结构化归档历史数据的查询性能得到大幅提升。尝试解决了不适合在Bl也不适合在CRM构架下处理的数据关联分析的需求。应对不断增加的大数据即时分析业务问题。同时,本结构支持云平台技术,能够到达开源节流提高企业在移动互联环境核心竞争力。新的系统完全在刀片环境,开源环境实现,极大降低软硬件建设维护本钱。 方案全部支持X86平台,有效降低了主机效劳器的能力需求和采购本钱,现阶段一般小型主机投资本钱都约百万元,而同样能力刀片只要几十万投资。此项经济效益会随着用户规模的扩大而持续增长。 通过由X86平台替代原小型机能力,有效降低了主机效劳器的维保费用。 通过数据库小型机能力需求向X86刀片平台迁移实现了绿色环保,使机房能源节约大幅提高,每年可节省大量电能消耗。“成果上报申请书”的填写说明:1、“成果专业类别指:核心网、无线、传输、IP、网管、业务支撑、管理信息系统、市场研究、通信电源、数据业务、其他。2、”成果研究类别指:超前研究、新产品开发、相关网络解决方案、现有业务优化、其他。3、“所属专业部门指:完成该成果的单位在省公司或地市分公司所属的专业线条部门。可填写:规划方案线条、网络线条、业务支撑线条、管理信息系统线条、数据线条、市场线条、集团客户线条、其他。4、“省内评审结果指:优秀、通过。5、“对企业现有标准标准的符合度指:列举该成果使用并符合的中国移动统一发布的企业标准的名称和编号,详细描述该成果在现有的企业标准根底上所需新增的功能要求(如业务流程的改变、设备新增的功能要求等)。6、“文章主体:根据不同科技成果分类实施不同的主体要求,具体如下:1)超前研究类成果主体包括:/背景情况,技术特点分析/标准化情况/其他运营商应用情况(可选)/技术开展趋势,引入策略分析2)相关网络解决方案类成果主体包括:,背景情况/技术方案:概述、网络解决方案(如果涉及到网络方面的改造,信令改造,路由改造等,应有详细的描述)、设备及系统改造/建设要求、码号资源需求/效果(解决了哪些问题)/本省应用推广情况3)新产品开发类成果主体包括:/业务及功能简介:业务概述、业务主要功能介绍,技术实现方窠:包括业务实现组网结构图、相关系统(平台、终端)功能和要求、业务实现流程、码号要求等/业务申请和开通:包括用户范围及业务使用范围、业务申请与注销等/业务商务模式及资费:包括商务模式、业务资费模式、业务收费方式等,市场前景分析4)现有业务优化类成果主体包括:/业务及功能简介:业务概述、业务主要功能介绍,现有业务存在的问题:现有缺陷分析、解决问题的思路,原有业务方案/流程:业务实现组网结构图、相关系统(平台、终端)功能和要求、业务实现流程/优化后的方案/流程:业务实现组网结构图、相关系统(平台、终端)功能和要求、业务实现流程,优化后到达的效果,产生的经济效益5)其他类成果主体,参考1)-4)的成果主体要求,阐述清楚工程背景、实现方案、解决的问题、取得的社会和经济效益等。