《基于wcf的通信数据etl服务的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
硕士学位论文基于WCF的通信数据ETL服务的设计与实现TheDesignandImplementationofCommunicationDataETLServicebasedonWCF学号:21109236完成日期:2Q!垒生垒月2墨目大连理工大学DalianUniversityofTechnology 大连理工大学学位论文独创性声明作者郑重声明:所呈交的学位论文,是本人在导师的指导下进行研究工作所取得的成果。尽我所知,除文中已经注明引用内容和致谢的地方外,本论文不包含其他个人或集体已经发表的研究成果,也不包含其他已申请学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。若有不实之处,本人愿意承担相关法律责任。学位论文题目:建立丝盟堑垒丝毖鳖塑红生避金堑业氢坦作者签名:∑蠡么日期:也!竺午—L月上日 大连理工大学硕士学位论文摘要网络优化是在对移动通信数据处理分析的基础上,对现有的网络设备进行调整,使之能够更好的服务广大手机用户的重要工作。各大网络设备与服务的提供商都需要一个数据分析平台对基站所产生的日志文件进行分析,找到网络中需要调整的方向或者目前网络中存在的问题。通过对网络优化中常用的移动通信数据的研究和对网络优化工作人员需求的调查,发现现有的网络优化工作仍然采用手动的方式,网络优化人员日常工作有相当一部分时间在处理各种各样的日志文件。数据处理程序不完善,很多的常用分析功能都需要人工完成,费时费力,而且重复性工作很多。根据网络优化工作人员的具体需求,总结在移动通信领域的数据处理需求,最终设计了基于WCF的通信数据ETL服务。系统使用WCF寄宿Windows服务的方式向外开放调用接口,方便外界引用数据服务,调用系统功能。系统使用基于表结构描述的数据存储方式,并对数据进行横向切分,使用SQLServer数据库很好的对大量不同格式的移动通信数据进行了表示和存储。在细致分析需求的基础上,将数据导入过程细化,分为文件列取、下载、解析、保存四个步骤,细致检测数据导入过程,检测任务异常。系统允许开发人员通过编写插件的方式进行二次开发,在不修改系统的情况下对系统进行直接扩展,增加数据处理功能。为了方便数据读取,满足数据透明性,在查询条件的限制和功能灵活性的平衡上做了一定的尝试,在考虑系统扩展性,预留计算扩展接口的情况下,提供两种不同的数据读取方式,并基于这两种数据读取方式,提供了面向移动通信领域的常用网络数据计算。系统设计和实现的过程中,充分考虑了客户端的需求,通过流水线,多线程和延迟加载等方式对系统的效率进行了优化,保证服务系统的响应时间和应答效率,提高数据处理效率。目前,在经过大连移动公司现场测试之后,通信数据ETL服务已经提交爱立信公司内部使用,作为网络数据处理的基础支持项目,协助网络优化工程师对网络数据进行分析,得到了相关工作人员的充分肯定,具有实际应用价值。关键词:网络优化;ETL;WCF;数据服务;大数据; 基于WCF的通信数据ETL服务的设计与实现TheDesignandImplementationofmobilenetworkdataETLservicebasedonWCFAbstractBasedondeanalysisofmobilenetworkdata,networkoptimizationisimportanttoworkontheexistingnetworkequipmenttobeadjustedSOthatitcanservethemobilephoneusersbetter.Thenetworkequipmentandserviceprovidersneedadataanalysisplatformtoanalysisdailylogfilesgeneratedbythebasestation,tofindthedirectionthenetworkneedstobeadjustedtoandtheexistingproblemsofthenetwork.TheresearchoncommonlyusedmobiledatainnetworkoptimizationandneedsofstaffsworkingonnetworkoptimizationfoundthatthenetworkoptimizationworkiSstilldonemanually.andconsiderablepartofthedailyworkofnetworkoptimizationstaffsiSspendindealingwithawidevarietyoflogfiles.Dataprocessingprogramisnotperfect.alotofcommonanalysisfunctionsaredonemanually,whichcostalotoftimeandrepetitiveWOrk.Basedonthedemandofnetworkoptimizationstaffs,summarizesthedataprocessingrequirementsinthemobilecommunicationfield,thedesignofthecommunicationdatabasedonETLWCFservicecomes.111esystemopenoutwardthecallinterfacebyusingWCFwithwindowsserviceasitshost.whichwillbeconvenientforclienttoreferdataservicesandcallthesystemfunctions.Byusingthedatastoragebasedontableschemaandhorizontalsegmentation,numerouscommunicationdataindifferentformatscouldberepresentedandstoredinSQLServerdatabase.Onthebasisofdetailedanalysisondemand,dataimportprogressisdividedintofourprocedure:listprocedure,downloadprocedure,parseprocedureandsaveprocedurethroughwhichtheimportprocesswillbedetailedtestedandtheexceptionsbedetected.Developersareallowedtowriteplug-insforsecondarydevelopmentapproach,increasethedataprocessingfunctions,extendthesystemdirectlywithoutmodifyingit.Inordertofacilitatedatareading,meetthedatatransparency,someattemptismadeontherestrictionsofqueryandtheflexibilityofsearchfunction.Inthecaseofsystemscalabilityconsiderationsandreservecomputingexpansioninterface,twodifferentdatareadmodeareprovided,basedonwhichprovidesomecommoncomputingfunctionsformobilenetworkdata.Inthedesignandimplementationofthesystem,fullyconsideringtheneedsoftheclient,theefficiencyofthesystemisoptimizedthroughpipeline,multithreading,delayloadingandSOonsothattheresponseefficiencyisensuredandthedataprocessingefficiencyisimproved.Sofar,aftertestthesysteminDalianChinaMobile,mobilenetworkdataETLservicehasbeensubmittedtoEricssonforinternaluseasthenetworkdataprocessingsupportproject,II— 大连理工大学硕士学位论文assistnetworkoptimizationengineerstoanalyzenetworkdataandhasbeenfullyaffirmedbytherelevantstaffs,haspracticalvalue.KeyWords:Networkoptimization;ETL;WCF;DataService;BigData;..111.. 基于WCF的通信数据ETL服务的设计与实现目录摘要⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一IAbstract...⋯.....⋯.....⋯.....⋯⋯⋯⋯.⋯.⋯⋯..⋯⋯..⋯⋯⋯..⋯⋯..⋯⋯⋯⋯..⋯⋯⋯..⋯⋯⋯..⋯⋯....II1绪论⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯~11.1课题研究的背景⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.11.2国内外研究现状⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.21.2.1网络优化的数据来源⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..21.2.2常见移动网络数据处理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一21.3本文的主要研究内容和作者的主要工作⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.42相关技术介绍⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯52.1ETL⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一52.2WCF..⋯⋯.⋯.⋯⋯..⋯⋯..⋯⋯⋯..⋯⋯⋯..⋯⋯⋯..⋯..⋯⋯⋯⋯⋯..⋯⋯⋯.....⋯..⋯⋯⋯..⋯72-3流水线技术⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.92.4多线程技术与线程池⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯102.5C拌反射与插件化编程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯1l3系统需求分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..133.1移动网络通信数据特点⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯133.2系统设计原则⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯143.3具体需求分类⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯153.4系统环境分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯164系统设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..174.1系统整体架构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯174.2数据库总体设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯174.2.1数据表命名规则⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯184.2.2基于表结构描述的数据存储方式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯184.2.3基于横向切表的大数据存储方式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯204.2.4数据导入任务管理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯224.2.5模板化数据读取⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯234.2.6数据库其他部分⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯254.3ETL服务设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯254.3.1数据导入业务逻辑分析和数据管理模块的设计⋯⋯⋯⋯⋯⋯⋯⋯254.3.2数据透明性与数据读取模块设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯28 大连理工大学硕士学位论文4.3.3数据计算模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯305系统功能实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯~325.1WCF技术在项目中的使用⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一325.2基于泛型编程实现的线程池⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯345.3数据管理模块的实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯365.3.1数据导入流水线与任务监控⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯365.3.2周期任务计时策略⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯385.3.3基于插件的功能扩充接口⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯395.3.4数据管理界面⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯445.4数据读取模块的实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯475.5数据计算模块的实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯505.5.1异步计算与结果返回⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯505.5.2内存效率优化与延迟加载⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯526系统测试与部署⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..546.1系统测试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯546.1.1单元测试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯546.1.2功能测试⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯576.2系统部署与运行⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯58结论⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..60参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..6l攻读硕士学位期间发表学术论文情况⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一64致谢⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一65大连理工大学学位论文版权使用授权书⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一66 大连理工大学硕士学位论文l绪论1.1课题研究的背景手机的通信技术规格从1G,以模拟技术为基础的蜂窝无线电话系统,经过无法直接传送如电子邮件、软件等信息,只具有通话和一些如时间日期等传送的2G和支持高速数据传输的蜂窝移动通讯技术(也就是3G),到如今刚刚开始使用第四代,即4G标准。2014年3月6日消息,据工信部统计数据,一月底中国移动通讯用户达12.35亿,较上月增长0.5%,同比增长10.8%。中国是人口大国,手机用户数量巨大,需要大量的基站等设备进行服务。而作为发展中国家的中国,基础设施薄弱,如何对移动通信网络进行优化,使用有限的硬件资源达到更好的通信效果,提高用户体验,一直是移动通讯行业的重大课题之一。网络优化工作是指对正式投入运行的网络进行数据采集、数据分析,找出影响网络运行质量的原因并且通过参数调整和某些技术手段,使网络达到最佳运行状态,使现有网络资源获得最佳效益,同时也对网络今后的维护及规划建议提出合理建测11。网络优化通过对基站进行性能数据采集,设备硬件检查和工程参数分析等手段,定位影响网络性能的原因,最终通过修改设备参数配置,调整网络结构等技术手段,以最佳的方式利用网络资源,在一定的成本控制之下,建设一个覆盖范围和容量指标尽可能大的无线通信网络,提供给用户良好的网络服务【21。按照在移动系统中从开通到正常运行的过程中所起的作用,网络优化可以分为两种不同的类型:工程型优化和维护型优化【31。前者在基站建立或扩容升级时进行,后者是在系统运行过程中,根据所覆盖区域具体情况变化做出的调整。由此可见维护型优化需要按周期进行,消耗的人力物力也更高。网络优化的依据主要是设备的日志文件。在实际应用中使用的设备,由于使用不同的技术,应用在不同环境下,规格能效都不尽相同,设备产生的日志文件千差万别。在日常的网络优化工作中,工程师经常需要应对不同型号的设备所产生的不同格式,不同内容的大量日志文件。这些文件中的数据,经过适当的提取和处理,将成为网络优化的重要依据。本课题来源于与爱立信公司合作的实际项目。爱立信公司作为移动通信领域的设备和服务供应商,需要一套系统对于大量繁杂的日志处理分析进行高效自动化处理,以减少对于人工经验的依赖,缓解缺乏高级技术工人的问题。 基于WCF的通信数据ETL服务的设计与实现1.2国内外研究现状1.2.1网络优化的数据来源目前,数据网络评估优化的流程主要包括5步,分别为数据采集,分析评估,问题定位,优化调整和效果验证【41。其中网络优化的数据来源主要包括OMC话务统计、DT(路测)、CQT(呼叫质量测试)和MR(钡g量报告)等【51。OMC话务统计是了解网络性能指标的重要途径,可以了解各小区的话务量,呼叫成功率,掉话率,拥塞率,切换成功率等重要的指标,了解TCH,SDCCH等信道的占用和信令承载情况,明确无线基站的话务分布,并据此分析出网络结构异常,话务量不均等问题【61。OMC通常只反应上行无线信号的情况,下行信号通过DT进行测量。DT(DrivingTest)也称路测,指在实际使用环境中,借助相关仪表或测试终端,沿特定路线移动并进行信号测量【71。路测的数据能够定性、定量、定位的检测出无线信道中下行信号中的覆盖、切换和服务质量等状况,从而检测网络的运行现状与规划是否存在差异,同时也可确定网络中是否存在干扰、盲区、小区孤岛以及高掉话率和高切换率地段【81。CQT(CallQualityTest),即呼叫质量拨打测试,一般由测试人员到指点地点使用测试专用的手机或笔记本电脑,进行一定数量的连接,测试无线网络信号的各项指标。CQT主要测试忙时话务量较多区域的电平、切换、掉话以及通过质量。由于CQT是对单个测试地点进行多次测量,故又称为“点测”。MR(MeasurementReport)即测量报告。用户终端在业务信道上向基站每480ms发送一次数据,MR测量报告来源于其中上传的数据【91。MR是用户反映的其实际所处无线环境测量报告,通过MR的优化工作来提升网络质量,可以有效定位弱覆盖、过覆盖、干扰等无线环境问题,对用户感知有较大提升【10】。1.2.2常见移动网络数据处理移动网络数据的应用场景很多,经常用来进行信号覆盖、干扰、接入、切换、掉话、话务平衡和信令的相关分析【11】。一个网络性能好坏的最基本的指标就是信号覆盖是否满足接入和通话要求。可以依据路测得到的数据来判断和分析前、反向链路的覆盖性能。对于影响网络覆盖指标,目前己知的主要原因有两点,其一是网络规划不合理,即在有些区域出现无覆盖和覆盖较差的情况,其次是基站的位置不合理,天线的方向角、下倾角不合理。在这里可以应用相关性算法,对大量的采样数据数据进行分析,得出覆盖率与某个具体原因的相关性大小,从而给优化人员以提示指导作用。 大连理工大学硕士学位论文移动通信网络是一个干扰受限系统,过强的干扰会使误码率大大增加,话音质量变差,严重时直接导致掉话。网络的频率规划和功率分配不合理,信号覆盖区内存在发射功率较强的直放站、微波站、寻呼台等可能干扰源或存在功率失控的基站或移动台等情况都可能造成干扰。由于干扰本身是一种相互关系,所以对干扰分析可以使用相关性分析。通过对出现大误码率时各参数设置的相关性分析,能得出可能导致高误码率的原因。同时可以根据已经掌握的情况,对网络的干扰做出预警分析,及时调整网络。移动通信网络的接入率反映网络的接续状态,是考察网络运行质量的主要指标之一。根据测试时具体的环境情况和后续的分析,影响网络接通率的主要原因可能为频信道的干扰,信号的强度较弱,以及PN污染问题等。在实际中可以通过对以往系统的接入情况进行对比分析,提前通知优化人员进行网络参数的调整,以提高网络的接通率。切换是移动通信的一个关键技术,用户之所以可以移动通话,最根本的原因就是移动台可以在不同载频和相位之间切换。切换成功率对于网络优化有特殊的意义。扇区或小区接入参数和切换参数设置不正确,临区列表设置有问题或切换带规划不合理,存在切换带过宽、过窄、以及存在乒乓切换带等现象都是影响切换成功率的主要原因。经过统计分析,可以找出系统最高成功率时的各参数设置指标,对以后的参数设置进行预先指导。掉话率是反映网络保持性的重要指标之一,在这里以测试的里程数与掉话的次数的比值作为衡量标准。根据测试时具体的环境情况和后续的分析,发生掉话的主要原因有信号覆盖强度和质量问题,系统参数和相邻小区列表设置问题和系统设备问题。通过使用相关分析、偏差检测等算法,可以准确定位问题的所在,从而准确的对网络做出调整。话务平衡是指各个扇区载频应该得到充分利用,避免某些扇区拥塞,而另一些扇区话务过轻的现象。话务平衡可以减小拥塞,提高接入成功率和切换成功率。网络规划不合理,话务模型不准确,基站和天线参数波动,或小区接入参数和切换参数设置不合理都有可能影响话务平衡。对于话务平衡的分析,需要找出话务繁忙的因素,它可能与时间段有关,也可能与消费群体的分布有关。同时可以通过序列分析,找出以前在具有相同影响话务量的因素存在的条件下,预测接下来的话务情况。提前调整网络参数,减小话务拥塞,提高接入成功率和切换成功率。移动台与基站之间的注册、鉴权、接入、切换等都是通过信令的交互完成的。所以信令的监测和参数分析对于了解和掌握网络的运行状态和运行质量有着重要的意义。通过对信令的跟踪,可以方便地定位故障,验证网络规划的合理性,方便对接入过程和切换过程的详细分析。 基于WCF的通信数据ETL服务的设计与实现1.3本文的主要研究内容和作者的主要工作本文主要阐述了一套使用WCF服务对外进行数据交互的移动网络数据ETL数据处理计算服务,能够适应不同格式的设备大量日志文件,以任务为单位完成自动数据解析并导入保存到数据库,对任务进度进行全程监控,同时可以使用插件对数据处理功能进行扩展。系统以WCF服务的形式对外提供调用接口,能够进行任务控制、数据读取、提交计算等操作。作者全程参与了系统的整个生命周期。主要的工作如下:(1)参与系统需求分析,多次与爱立信工程师进行沟通,了解目前所用软件系统局限。(2)设计系统整体架构,确定了系统的整体设计方案和使用技术。(3)设计数据在数据库中的存储结构和读取方式,确定数据库结构,搭建整体平台。(4)完成项目整体框架的编码和测试(5)多次到大连移动公司进行现场系统测试。本文共分六部分,内容安排如下:第一章为绪论,介绍课题的背景,国内外研究现状,论文组织结构等。第二章介绍基于WCF的通信数据ETL服务所使用相关技术的介绍。第三章进行整个软件系统的需求分析,对系统要求和技术目标进行说明。第四章进行整个软件系统的架构设计的说明,重点介绍数据库设计和ETL服务各个模块功能。第五章介绍ETL服务各部分的实现细节,包括抽象设计,扩展结构设计,效率提高技巧等。第六章说明系统的测试,包括对于多线程的流水线的测试等。结论部分对本文工作进行了总结,提出了存在的问题和进一步优化扩展的方向。 大连理工大学硕士学位论文2相关技术介绍2.1ETLETL031,Extraction.Transformation—Loading的缩写,即数据抽取(Extract),转换(Transform),装载(Loading)三个过程,是构建数据仓库的重要环节【121,是指抽取各种数据资源,并进行数据的清洗、转换,最终将满足目标模式的数据载入数据仓库的过程【14】。数据仓库(DataWarehouse)115】是一个面向主题的(SubjectOriented)、集成的(Integrate)、非易失的(Non.Volatile)、随时间变化的(TuneVariant)用来支持管理人员决策的数据集合圈【16]。^‘![二二二二三二二二]≤》—斟1醇)钉亘茎b疰亟丑书lL—————————————J图2.1ETL整体框架图Fig.2.1ArchitectureofETL数据的抽取就是数据的入口。数据抽取过程从异构的各种数据源中将需要处理的数据提取出来【17】。数据源可以是数据库,包括Oracle,SQLServer,Sybase,MySQL等常见的关系型数据库,也可以是数据文件,比如Excel,XML文件,网页【181,甚至文本文件或者二进制文件。只要是能够获得有效数据的方式,都可以作为数据源。抽取得到的数据可能不经过任何处理,与数据源的结构格式相同,也可能是有选择的抽取,只获得与数据仓库内容有关的信剧·纠。数据的转换就是将抽取所得数据经过一系列的变换加工转变为符合目标数据模式的过程,包括数据质量的检查,数据的清洗【201,数据的继承与合并等【2l】。由于数据的原始格式相差很大,数据的转换是一个需要非常注意的步骤,数据的转换不应造成数据含义变化并且尽量保证信息不丢失。数据转换的同时由于数据的多样性,容易造成“脏数据”,所以要进行数据清洗【冽,去掉非法数据,确保数据集中同一属性数值的一致,同时提高数据的质量[23】。霄 基于WCF的通信数据ETL服务的设计与实现数据装载的主要任务是将经过转换后的干净的数据集按照物理数据模型定义的表结构装入目标数据仓库的数据表中,并允许人工干预。以及提供强大的错误报告、系统日志、数据备份与恢复功能【24]。数据仓库所存储的数据就是海量的数据,通常会使用分布式数据库和相应的管理系统来对数据进行管理,数据装载就负责与数据库相连接,将转换后的数据存放到指定的位置【25】。ETL工具的本质是数据转换器,它提供一种从源到目标系统转换数据的方法[26】。ETL的作用在于将分散的数据集中在一起,形成逻辑上统一的可访问的数据集。这里的分散不是物理上的分散,指的是不能进行统一的访问,经常需要多次使用多种方式访问得到相关联的数据。ETL同时解决数据格式混乱,数据不清洁的问题。这一点从ETL的第二步可以看出,ETL的数据转换的重点就在于格式的统一和数据的验证。随着近年来软硬件技术的发展,大数据和云平台概念的深入传播和理解,数据仓库技术进一步深化,许多厂商致力于商业ETL工具的开发。常见的商业ETL工具有:Oracle公司的OWB(OracleWarehouseBuilder)[27,28】、ODI(OracleDataIntegrator)【291,微软的DTS(DataTransformationServicesl[30,31],Informatica公司的Informatica以及IBM公司的DataStage等等。除了商业ETL工具之外,还有一些开源的ETL工具。Kettle[32】是开源ETL工具中具有代表性的一款,使用Java编写,高效而且稳定。图2.2常见商业ETL工具操作界面Fig.2.2CommercialETLtools’interface 大连理工大学硕士学位论文2.2WCFWCF(WindowsCommunicationFoundation,Windows通信基础)133]是.NET3.0引入的核心技术之一,数据通信的应用程序开发接口,是在.NET平台下进行网络传输,构建网络服务应用的基础。在WCF出现之前,微软.NET2.0及其以前的版本中,同时存在有WebService(SOAPwithHTTPcommunication),.NETRemoting(TCP/HTTP/P啦linecommunication))以及基础的Winsock等通信支持,这些技术互相有所重叠,又有很多区别。使用不同方法传输数据会得到不同的益处,同时又各有其不足,对于开发人员来说,学习、使用和维护会变得非常复杂。与此同时,随着Web服务的发展,以及企业中的软件系统日益变得庞大和复杂,面向服务的体系结构(Service.OrientedArchitecture,SOA)[341逐渐被人们所接纳。W3C将SOA定义为:“一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以定义好的顺序调用这些服务来形成业务流程”【35】。SOA是一种松散耦合的软件体系结构,在这种体系结构中,由各自独立可重复的服务区构成系统功能【36]。图2.3SOA框架图Fig.2.3ArchitectureofSOA在这种背景下,微软整合了前面提到的集中网络通信方式,根据SOA的架构思想,与WindowsPresentationFoundmion及WindowsWorkflowFoundmion一起,作为.NET3.0的重要组成部分,推出了WCF,成为新一代Windows操作系统以及WinFX的三个重大应用程序开发类库。 基于WCF的通信数据ETL服务的设计与实现WCF通过访问点(Endpoint)实现消息的交换,客户端与服务端通过匹配的访问点进行连接。访问点包含“ABC”三部分内容,其中A代表地址(Address)、B代表绑定(Binding),C代表了契约(Contract)【37'381,三个部分一起定义了客户端和服务端在何处用怎样的方式交换什么样的信息。地址就是服务提供方在网络中的位置和服务的名称。WCF所支持的通讯协议有:H1TrP、TCP、Peernetwork、IPC(Inter--ProcessCommunicationovernamedpipes)和MSMQl391。例如:http://202.118.67.200:10077/Ericsson所表示的就是在IP为202.118.67.200的10077号端口有一个名为Ericsson的服务。地址一般使用配置文件进行指定,方便进行部署。绑定指定了服务端与客户端的交互方式【401。每个绑定都必须提供至少一个传输协议,一个消息编码格式和一个相关的消息版本,除此之外还有一些其他的功能,如安全性、双向通信、事务等。如在基于HTTP的绑定中,最基本的是BasicHttpBinding,它用于绑定符合WS—BasicProfile(ws—IBasicProfile1.1)的WCF服务。该绑定使用HTTP作为传送方式,是一个指定用符合基本网络服务规范通讯的绑定,并且使用Text/XML作为默认消息编码:WSHttpBinding是一个安全的通用的绑定,但它不能在双工中使用,如果想要满足双工,则需要使用WSDualHttpBinding等。微软为WCF提供了9种绑定方式供编程人员酌情使用,同时允许自定义绑定,灵活度非常高。契约是用来描述服务具体内容的方式。WCF中定义了四种契约,分别为定义客户端可以使用哪些服务操作的服务契约,定义服务传输的数据类型的数据契约,定义服务引发的错误信息,以及如何将这些异常传递给客户端的错误处理契约,和允许直接操控服务的消息内容和格式的消息契约【4l】。WCF服务并不能独立运行,它必须依托于宿主运行。WCF常用的宿主有4种。第一种是自承载方式,使用控制台应用程序或给予WinForm的应用程序作为宿主。第二种是系统服务方式,将WCF寄宿到windows服务中,优点是可以随着操作系统的启动而启动。第三种是IIs方式,这种方式与网络服务的部署方式类似。基于IIs的ASMX是WCF之前的最广泛适用的用来发布网络服务的技术,WCF继承了这个基础,配置发布方便而且稳定,缺点是只有basicHttpBinding和wsHttpBinding两种绑定可用。最后一种是Windows进程激活服务方式。Windows进程激活服务(Windowsprocessactivationservice,WAS)是Vista和WindowsServer2008自带的寄宿基础。WAS允许你在一个不依赖HTTP协议的鲁棒环境中寄宿服务。 大连理工大学硕士学位论文进程(宿主)应用程序域WOF访问点(EndpointI壑服务类⋯6“”⋯⋯⋯。瞧∥图2.4WCF框架图Fig.2.4ArchitectureofWCF2.3流水线技术流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。流水线模型最早在处理器架构中提出,其将指令的处理过程分解为多个子过程并在不同单元部件中执行【421。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。任务图2.5流水线示意图Fig.2.5Pipeline时间 基于WCF的通信数据ETL服务的设计与实现流水线模型用来描述对于处理固定事务的重复过程,如果处理过程本身是串行的,但是能够分解成相对独立的步骤,这些步骤之间没有交叉,有先后顺序,就可以用增加工人,让不同工人操作不同步骤的方式,将多个事务在多个工人间流水执行,大大提高处理效率。吞吐率和效率是用来描述流水线模型性能的两个重要参数f431。其中吞吐率指流水线单位时间内能处理完成的事务的数量。效率指流水线中的独立步骤实际占用时间占整个运行时间的比例。2.4多线程技术与线程池进程是进程实体的运行过程,是系统分配和调度的一个独立单位。进程包括运行中的程序和程序所使用到的内存等系统资源。一个进程是由多个线程所组成的。线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。多线程技术主要解决处理器单元内多个线程执行的问题,可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力【49】。另一方面,线程也是程序,所以线程需要占用内存,线程越多占用内存也越多;多线程需要协调和管理,所以需要CPU时间跟踪线程;线程之间对共享资源的访问会相互影响,必须解决竞用共享资源的问题;线程太多会导致控制太复杂,最终可能造成很多Bug。线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认堆栈大小,以默认的优先级运行,并处于多线程单元中。线程的数目永远不会超过最大值。超过最大值的其他线程可以排队,但它们要等到其他线程完成后才启动。线程池特别适合于执行一些需要多个线程的任务。使用线程池能够优化这些任务的执行过程,从而提高吞吐量,它不仅能够使系统针对此进程优化该执行过程,而且还能够使系统针对计算机上的其他进程优化该执行过程。采用线程池技术可以同时并行处理多个客户端的请求,系统的资源能够得到充分的利用,提高系统性能[501。 大连理工大学硕士学位论文图2.6线程池示意图Fig.2.6Architectureofthreadpool合理利用线程池能够带来3个好处:降低资源消耗、提高响应速度、提高线程的可管理性【s¨。一般来说,线程池都是采用预创建的技术,在应用启动之初便预先创建一定数目的线程。线程池将频繁创建和销毁线程所带来的开销分摊到了每个具体执行的任务上,执行的次数越多,则分摊到每个任务上的开销就越小。2.5c≠f反射与插件化编程反射是.NET中重要机制,通过反射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。.NET的应用程序结构分为应用程序域、程序集、模块、类型和成员几个层次,公共语言运行库加载器管理应用程序域,这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局。程序集包含模块,而模块包含类型,类型又包含成员,反射则提供了封装程序集、模块和类型的对象。我们可以使用反射动态地创建类型的实例,将类型绑定到现有对象或从现有对象中获取类型,然后调用类型的方法或访问其字段和属性【52】。插件允许在不修改主体程序的情况下根据一定的模式对软件功能进行扩展。插件开发需要公开接口,主程序通过接口与插件进行通信,主要是通过反射来获取相关的属性和方法,然后再执行指定的操作。任何开发人员都可以使用插件公开的接口根据自己的需要制作插件,嵌入到主程序中来增加新的功能,真正意义上实现“即插即用”软件开发。 基于WCF的通信数据ETL服务的设计与实现实际软件应用中,用户总有新的需求,软件总要更新。但是软件不能因为用户每次提出需求而重新设计开发。而且即便当时满足了用户的需求,也不能保证满足用户未来的需求。插件的优越性在于可以在不修改主程序的情况下经过快速的开发满足大多数用户的新需求,使软件的灵活性、可扩充性大大增强。需要插件时,拿来就能用,插件更新时,也只需更新单个插件。同时,用户可以有选择的使用插件,减少软件对系统资源的消耗。 大连理工大学硕士学位论文3系统需求分析3.1移动网络通信数据特点(1)格式多样中国的移动网络经过几十年的发展,通信技术规格几经变革。目前的网络环境中,中国的移动网络设备还未完全完成从2G到3G的完整过度,4G牌照已经发放,不少用户已经开始正常使用快速的4G网络。普通用户的用户体验在逐步提升的同时,移动网络服务商的设备结构变得更加复杂,所产生的日志文件的格式种类不断增加,仅常见的3G设备日志文件格式已经有十几种,为设备的维护和网络优化人员的工作带来不小的麻烦。(2)单一格式相对固定为了保证手机用户的用户体验,网络设备的各项参数虽然会几经优化,但是只要不进行网络设备更换或者软件升级,使用中的设备所产生的日志数据的格式就不会改变。相同型号的设备产生的日志格式都是相同的,而不同型号的设备所产生的数据,由于生产厂家有维护方面的考虑,也可能采用互相兼容的数据格式,这些对数据的处理都是非常有益的。(3)数据量大中国手机用户量巨大,每时每刻都有非常多的人在使用手机。人们使用手机进行通话,与亲人交流,诉说思念,与合作伙伴交流洽谈业务;使用手机上网浏览新闻,收发邮件。在人们使用手机进行通信的过程中,手机与基站之间有大量的数据交互,其中与手机和基站之间信号的质量,电平值,信号在邻区间的切换以及基站话务量等的通信连接数据会被相关的系统记录成日志文件。这些数据每时每刻都在产生,而且数量巨大,有的数据格式仅数十个基站每个小时有百万甚至千万之多,大量的数据为网络优化工作带来了巨大的压力。(4)时问性强移动网络通信数据中都包含有时间戳。数据的时间戳代表了数据产生的时间,表明当前数据记录了对应时间网络环境的各项状况。手机网络中,不同时间用户的活动有很大的差别,白天和黑夜,忙时和闲时,用户对于移动网络的使用习惯决定了基站等设备需要对应做出调整优化。(5)与地理信息相关 基于WCF的通信数据ETL服务的设计与实现在移动网络通信数据中,除了时间之外,地理信息也占有非常重要的位置。基站所处的位置,天线的方向,倾斜角等参数会对基站的性能有很大的影响,而这些影响都会在数据中表示出来,记录在设备的日志中。如果对通信数据进行分析,就能分析基站参数是否恰当,是否需要适当的优化,从而使网络达到最佳运行状态,使现有网络资源获得最佳效益,同时也对网络今后的维护及规划建议提出合理建议。3.2系统设计原则(1)可扩展性作为数据处理系统,主要在于对数据的处理方式。数据的处理方式不可能在系统设计实现阶段全部考虑到并且得到实施,在系统的实际应用中,可能会继续添加对于特定格式数据的处理方式,所以应该为后续扩展数据处理方式留出接口,方便对于新的不同格式数据的处理进行兼容。(2)高适用性系统在保证功能完整的情况下,要尽可能的留出可配置的参数,通过参数的配置,能够使系统更加适应不同的机器和网络环境,提高系统的适用性。(3)可靠性对于来自外部的请求,系统可以利用网络系统、数据库系统和应用系统的安全机制设置,对用户的操作进行合理限制,拒绝非法操作与越权操作,避免系统遭到破坏。对于格式合理,权限正确的请求,同样需要在处理的过程中对于异常和错误进行监控并正确处理,不应该由于数据错误导致系统崩溃。同时,作为数据服务,要能够保证7乘24小时连续工作,在网络和服务器正常的情况下,不能出现运行一段时间后系统崩溃或者速度严重下降等影响服务质量的问题。(4)可用性软件系统不是仅仅在测试环境下可用,需要在真实工程环境中满足各种情况。无论系统后台是否运行大量计算或者数据库操作,不能影响用户的正常操作。除此之外,对于客户端的请求,如数据导入,数据计算操作,系统不能预估处理时间,不应无限期的等待操作结束。服务对外避免使用同步方式进行交互,防止Fh于处理请求占用过长时间导致客户端访问超时。(5)负载均衡服务需要对客户端的请求做出响应。在不同的时间,客户端请求的数量是不同的,有时很多,有时几乎没有。作为服务,对于客户端的请求,不应由于短时间请求过多而出现系统无响应假死的现象。在系统繁忙时,可以使用等待队列的方式缓解压力。而在 大连理工大学硕士学位论文请求数量不多,并且服务器性能允许的条件下,有选择的使用多线程技术提高数据传输和计算的效率。3.3具体需求分类通信数据ETL服务的业务目标概括起来要求能够满足大量可定制的预定义格式数据的快速导入,保证数据的读取效率,为网络优化提供数据统计分析支持,提高网络优化工程师工作效率。具体如下:(1)多格式数据支持作为面向通信数据的ETL服务,要求能够支持通信领域的大量不同数据格式。通信领域中同一型号的设备产生的日志格式相同,对于这些日志格式,可以允许系统管理人员以一定的方式将已知的格式录入,便于系统对于已知格式应用已有的特定的数据解析转换处理工具。(2)大容量数据支持通信基站所产生的数据是大量的,在处理分析的过程中,对数据库造成的压力也是巨大的。系统需要特定格式的数据存储方式对大量的数据进行安排存放,优化存储和读取的时间,才能保证处理分析的效率。(3)多种数据源支持除了支持多种格式和大量数据之外,应该能够从不同类型的数据源获得数据。不同数据源意味着不仅对数据源的系统(windows,linux)可能使用不同的方式进行连接,而且可能使用FTP,HTTP,SMB等不同协议获得数据。(4)数据自动入库对于通信行业的日志数据进行分析,时间效率非常重要。随着日志数据的产生,系统要能够及时的将新产生的数据拉取到系统中来。所以系统需要提供数据源编辑功能,允许系统管理人员定义自动导入数据源,系统提供对于数据源中特定位置或特定文件名格式的数据自动处理导入数据库的功能,方便及时使用数据进行分析处理,及早发现网络中存在的问题。在自动入库功能中,需要包含数据文件的重复判定,避免由重复数据造成的数据库数据错误和混乱。(5)数据转换和数据清洗数据转换和数据清洗是保证数据格式和含义正确的重要步骤。为了保证系统的扩展性,在系统初期提供基本的数据转换和清洗功能,并提供扩展接口,允许外部处理程序嵌入本系统中进行数据处理。(6)数据读取接口 基于WCF的通信数据ETL服务的设计与实现对于数据的真正表结构等物理结构不应该直接对外暴露,同时为了实现(1)和(2)的功能,数据真正的物理结构也会相对复杂,所以对于外部程序需要对数据进行读取时,需要提供相应的接口,在尽量开放查询条件的情况下允许外部程序以特定的格式查询数据。(7)数据计算结构在数据读取接口的基础上,实现一定的计算功能,对于实际应用场景中经常用到的简单计算给予支持,并且允许后续开发人员在满足系统结构的条件下添加新的计算功能。(8)数据查询效率优化数据进入数据库后,为了满足用户的特定需要,需要对某些常用的查询请求,特别是系统支持的计算功能进行优化。对于常用的聚集型查询建立索引表或预处理表,减少实际查询时对服务器的计算压力,降低计算结果所需要的时间,提高查询效率。3.4系统环境分析基于WCF的通信数据ETL服务使用WCF对外进行数据交互,使用C拌作为开发语言,开发工具主要为MicrosoftVisualStudio2010(VS2010)。代码托管服务器安装TeamFoundationServer,为项目成员提供代码管理服务。同时在代码托管服务器配置了Build服务,通过VS2010即可自动完成源代码管理、编译、生成和部署工作。提高了开发效率。系统开发机使用Windows764位系统。代码托管服务器为虚拟服务器,使用的系统是WindowsServer2008R264位系统。系统开发时使用SQLServer2008R2,发布时通过SQL导出功能向下兼容SQLServer2008。系统部署时要求WindowsServer2003以上的版本,数据库要求SQLServer2008以上版本即可。系统附带的编辑界面需要IIS和MVC3.0支持。 大连理工大学硕士学位论文4系统设计4.1系统整体架构基于WCF的通信数据ETL服务整体分为三个部分,分别为数据导入模块、数据读取模块和数据计算模块。系统使用Windows服务作为WCF服务的宿主,随操作系统启动而启动。WCF服务寄宿在Windows服务中,通过访问点(Endpoint)将客户端的请求转发给数据导入模块和数据计算模块。数据导入模块负责处理有关通信数据导入到数据库的请求,包括导入过程的管理和错误监控。数据读取模块封装了数据读取逻辑,可以根据一定的配置,读取数据库中对应部分的数据。数据计算模块封装了常用的一些数据计算功能,由于数据读取模块封装的读取逻辑是数据无关的,所以即使读取原始数据也需要经过数据计算模块。辫in唾嘲浮.!岛.(wcJ:服务-i数据源1i¨jWCF,鼹务i∥数据导入模块t》——∥SQLServer散y访问点客户端力(Endpoint)。刮⋯⋯~.。l力j⋯~⋯l。》Ⅵ掣⋯⋯⋯rI~一⋯一114.2数据库总体设计图4.1系统整体架构图Fig.4.1Overallframeworkofsystem数据库使用SQLServer2008R2,通过导出SQL脚本的方式向下兼用SQLServer2008。在使用SQLServer的过程中,对数据库的默认文件结构上做了改变,在原有的两个数据库数据文件mdf和日志文件ldf的基础上,增加了两个ndf文件用来存储索引,其中一个文件专门用来存储导入的数据的索引,另一个用来存储其他表的索引。这样的好处在于能够提高插入和查询的速度,特别是在将不同文件放到不同硬盘上的时候。 基于WCF的通信数据ETL服务的设计与实现根据数据表之间的功能和联系,可以将整个数据库分为六部分:表结构定义部分,数据存储部分,任务监控部分,读取模板部分,统计表与索引表部分,字典部分和用户与权限部分。4.2.1数据表命名规则数据库中,以不同的前缀来区分不同表的作用:以Config为前缀的表作为系统功能配置的一部分,包括数据导入和读取过程中需要的各种参数,数据格式描述,过程监控的记录等。以Enum为结尾的表存储的是有意义的枚举量,一般不会更改,主键为int。这部分表存储的枚举量均用来描述不同的系统配置。以Diet为前缀的表称之为字典表,主要存储固定的通信领域信息,一般不会更改,主键为int。虽然与以Enum为结尾的表一样都是存储固定不变的数据,但是这部分数据是通信相关的专业数据,所以与系统配置的枚举量区分开。以Data为前缀的表是数据表,是真正存储数据的表。数据表的名称分为三部分,第一部分为数据表表示,一定是Data。第二部分是数据格式表示,表示数据的格式,一般用功能名称代表。第三部分是数据的开始时间。以System为前缀的表是有关登录和权限的表。4.2.2基于表结构描述的数据存储方式基于WCF的通信数据ETL服务所处理的数据多种多样,项目初期爱立信提供了RPMO,FAS,MRR三种数据的文件格式,每种数据会经过不同方式的数据清洗得到最终入库的数据。一份RPMO数据经过清洗会同时得到通话记录,事件记录和测量报告三种数据,三种数据互相关联;一份FAS数据经过清洗会同时得到管理数据和详细记录两种数据;一份MRR数据经过清洗只会得到一种数据。经过清洗的同类数据将拥有较为规整的格式,但不同数据的格式会有很大差异。同时由于数据都来源于实际运行的设备,每种数据的数据格式非常稳定,不会轻易改变。为了保证系统的可扩展性,除了能够支持当前存在的数据格式之外,还要能够尽量兼容未来可能出现的格式。通信领域的新的格式的数据一般由原设备升级改造或直接更新设备产生。而在升级改造的过程中,一定经过非常严格的调试工作,即在新的格式正式使用时,能够获得足够的关于新数据的格式和意义的完整说明。对于非格式化的数据【53],目前有许多系统使用类似于property.value形式进行存储的方式。property.value形式在存储时通过(objectid,propertyname,propertyvalue)_三元组来表示一个实体的一个属性值,如果一个实体包含多个属性,将使用多个三元组来描述 大连理工大学硕士学位论文这一实体。这种形式在存储时将每个三元组作为一行数据保存到数据库中。这种方式存储的通用性非常好,几乎能够表示任意格式的数据,并且不同数据之间的属性名称或者类型可以差别很大。但是缺点也同样明显,除了对每个属性值都需要额外空间存储属性的信息(或者属性名,或者属性名的ID),而且一个实体所包含的全部属性数据需要由数据库中的多条数据组合而成,对数据的分析和计算造成了一定的不便,同时在读取数据单个属性时效率没有普通表结构的投影效率高。对于property.value的表示方式进行存储的数据,其最大的应用情景是任意两条数据都可能属性不同。但是分析爱立信所提供的数据,虽然需要支持多种格式,但是每种格式的属性是固定的,即每种格式都有整齐的属性格式,每个实体包含相同的属性。其数据的扩展性体现在格式增加上,property.value存储方式的灵活性在这里的契合性不高。同时由于爱立信的分析操作中,要求有关联运算,property.value存储方式需要通过转化之后变为普通意义上的数据表再进行关联,增加了非常多的操作,效率不高,在这里就不再适合了。由于移动网络通信数据具有格式多样但单一格式相对固定的特点,本文提出了一种描述结构的方式来存储数据。具体来说就是在数据导入之前对数据格式进行描述,导入数据时根据数据类型和数据格式创建真正的数据表存储数据的方式。在数据库中存储数据表的格式,就是要存储数据库中对应存储数据的表的结构。在每种新类型的数据导入到数据库之前,要求系统管理员先将数据的格式录入到数据库中,录入的内容包括新数据格式对应的每张数据表的名称,数据表中每个字段的名称,顺序,类型和长度,是否建立索引,是否唯一等基本信息。这些信息会以表数据的形式保存在数据库中。在实际数据导入时,通过调用存储过程读取表格式,并根据表格式在数据库中新建与导入格式相符的数据表后,将数据导入数据表中。最终设计的表结构如图4.2所示。在描述数据格式这一部分中,一共使用了6张表。ConfigFunctionEnum表记录的是不同的数据格式,每种格式可能对应一张或多张数据表,相关的信息保存在Config中。每张表包含多个列,列的各项信息保存在表.TableInfoConfig_ColumnInfo中,包含列的名称、数据类型、索引、序号唯一性等属性。在SQLServer中有些数据类型的长度是固定的,如数值型或时间类型等,但是字符串类型是可变长度的,这时需要记录对应的最大长度。在使用过程中,不同的列还有不同的用途,比如是代表ID的列,或者是代表时间的列,这些特殊的用途通过与ConfigColumnUsageEnum的关系进行标定。 基于WCF的通信数据ETL服务的设计与实现在实际实现的过程中,为了适应数据读取模块中基于模板和简单参数配置的数据读取方式,处理保存实际数据的格式之外,还存储了包括统计表,索引表和字典表在内的可能与数据表相关联的其他表的表结构。这种方式存储的表将通过TableType来对表的类别进行区分:DynamicTable表示数据表,StaticTable表示字典表,StatisticsTable则用来表示统计表或索引表。图4.2数据库关系图一表结构定义部分Fig.4.2Databasediagram--tableschema4.23基于横向切表的大数据存储方式系统面临不同类型的数据,这些数据除了格式不同,产生的数据量也不同。有的类型的数据产生非常频繁,仅数十个基站每个小时有百万甚至千万之多,如RPMO数据, 大连理工大学硕士学位论文每小时产生200M左右的二进制文件,这些文件经过清洗,将得到lG以上的文本文件,共计百万以上的数据。而另外一些数据量则会小很多,如FAS关联信令数据,一天的数据也只有不到10000条。系统要求能够对大数据量的数据进行处理,同时不能因为其他小数据量的数据使得数据库过于臃肿。移动网络中有些数据非常庞大,产生速度也非常迅速。对于SQLSERVER数据库系统来说,单张表的数据量在达到109以上时,会使得读取的效率严重下降{钳1。对于单张表的数据量应控制在千万级别左右,所以对于网络数据这样的大数据来说,即使是统一格式的数据,也不能都放到一张表里,需要根据一定的规则分配存储到不同的表中1451。对于网络来说,最重要的一个属性就是时间。数据的时间戳代表了数据产生的时间,白天和夜晚,忙时和闲时的数据量都有一定的区别。但是即使是白天的繁忙时段,受限于人口稠密程度和基本硬件设施的完善程度,网络日志可以有一个估算的数据量,所以数据的时间就可以作为数据切割分配的依据。在4.2.2中提出了一种对于数据表结构的描述方法,可以根据这些结构数据新建数据表。在这种情况下,我们可以通过在实际表名称中加入时间戳的方式来区别存放不同时间同一格式数据的表。同时,这样的方式也能够方便管理系统中实际包含数据的时间跨度。在根据时间戳来进行横向切分进行存储时,以多大的时间间隔来进行切割是另一个值得关注的问题。时闯间隔其实可以有很多选择,可以一个小时,一天,甚至一周,一个月,分割的主要目的在于防止SQLSERVER对数据读取操作效率的下降。由于系统无法预知数据的量,所以不能做到自动对数据进行分割。但是在进入数据库之前,数据是需要经过清洗的。清洗数据本身也是系统的一部分,并且进行清洗的程序一定了解数据的格式等详细内容,所以对于数据的切割本身是在清洗时完成的。清洗后生成格式正确的文件,这些文件中不但包含清洗过后的数据,还包含这些数据所属于的时间范围,也就对应了数据库中的数据表。其表结构如图4.3所示。为了管理己导入的数据,添加了一张ConfigRealTableInfo的表来记录每张表中数据的起止时间。Config表的数据除了用来管理数据库中实际存储的数据.RealTableInfo的时间区间之外,在进行数据查询时,查询参数中通常会附带时间区间,就可以通过ConfigRealTableInfo中的数据排除许多时问不在查询范围的表,这也就相当于减小了查询的数据量,提高了查询的效率。图4.4展示了一部分实际运行时数据库内的数据表。 基于WCF的通信数据ETL服务的设计与实现CD曲g—ReaITable__Info。。I。。。吲_Table_O潲g_Table_Info列名数据类型允许№幽值曰ReatTabIe.IDurlquek酬fier图TaL_eIDI『岬IeId朗自6日日DaYStartTrnedare,me囝DatatndTeredateUme口E击恤gcMtnt囝刊腑nvard'm∞0)囝I正_xmtb{t曰目图4.3数据库关系图一数据存储部分Fig.4.3Databasediagram--
此文档下载收益归作者所有