本发明实施例涉及但不限于数据统计分析领域,更具体地涉及一种数据统计分析系统及方法。
背景技术:
随着通信网络技术的提升,从3g(3rdgeneration)到4g(4thgeneration),从4g到5g(5thgeneration),用户使用的流量日益增多,对更快、更稳定的业务诉求也日益更明显。运营商也着力推出更快更稳定的业务,随着用户量的增加,业务规模的不断扩大,产生的业务数据越来越多,运营商需要越来越多的数据统计分析指标来监测保证业务的稳定运行。
为此,出现了一大批数据统计分析项目,比如统计服务器、日志服务器、运维运营服务器等,这些项目虽能够满足各大运营商的需求,但项目之间展现出明显的碎片化,例如:表现在日志服务器通过crontab定时任务调用shell脚本进行数据分析,将结果输出到es索引中;统计服务器将结果输出到oracle或gbase数据表中;若想重新执行数据分析任务,日志服务器需要登录linux服务器手工执行shell脚本;统计服务器需要登录数据库手工执行存储过程等等。
可以看出,这些统计分析项目涉及模块较多(es、oracle、gbase等),对数据的底层处理机制各自不同。为交付这些项目,往往需要投入过多的人力,也会出现重复开发的现象,导致统计分析系统开发维护成本非常高。
技术实现要素:
有鉴于此,本发明实施例提供了一种数据统计分析系统,包括:adma应用算法单元;
所述adma应用算法单元,包括:
表建模模块,用于创建spark表;
算法建模模块,用于提供sql算法;
第一任务建模模块,用于根据所述sql算法创建spark任务;
第二任务建模模块,用于创建etl任务。
本发明实施例还提供了一种数据统计分析方法,包括:
adma应用算法单元创建spark表、spark任务和etl任务;
其中,所述spark表包括:用户信息spark表、用户信息预处理spark表和用户总数指标spark表;所述spark任务包括:用户信息数据映射任务、用户信息预处理任务、用户总数指标任务;所述etl任务包括:用户信息etl任务。
本发明实施例提供的技术方案,将adma应用算法标准化,大大的减少了开发工作量,降低了统计分析系统开发维护成本。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明一实施例提供的一种数据统计分析系统的结构示意图;
图2为本发明另一实施例提供的一种数据统计分析系统的结构示意图;
图3为本发明一实施例提供的一种数据统计分析方法的流程示意图;
图4为本发明另一实施例提供的一种数据统计分析方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明一实施例提供的一种数据统计分析系统的结构示意图,如图1所示,该系统包括:adma应用算法单元;
所述adma应用算法单元,包括:
表建模模块,用于创建spark表;
算法建模模块,用于提供sql算法;
第一任务建模模块,用于根据所述sql算法创建spark任务;
第二任务建模模块,用于创建etl任务。
其中,所述spark表包括:用户信息spark表、用户信息预处理spark表和用户总数指标spark表;
所述spark任务包括:用户信息数据映射任务、用户信息预处理任务、用户总数指标任务;
所述etl任务包括:用户信息etl任务。
其中,所述表建模模块,具体用于根据表的xml文件和汇总表的xml文件创建所述用户信息spark表、用户信息预处理spark表和用户总数指标spark表;
所述算法建模模块,具体用于根据配置算法.sql文件、算法.xml文件和算法.conf文件采用sql实例化所述sql算法;
所述第一任务建模模块,具体用于根据任务xml文件和虚拟任务xml文件采用实例化的所述sql算法创建用户信息数据映射任务、用户信息预处理任务、用户总数指标任务;
所述第二任务建模模块,具体用于根据elt规则创建用户信息etl任务。
其中,所述表的xml文件和汇总表的xml文件,所述配置算法.sql文件、算法.xml文件和算法.conf文件,所述任务xml文件和虚拟任务xml文件,所述elt规则都采用标准化版本。
其中,该系统还包括:
数据采集单元和存储单元;
所述数据采集单元,用于引入用户信息原始数据,输出到所述adma应用算法单元;
所述adma应用算法单元,还包括:etl模块和计算模块;
所述etl模块,用于调用所述用户信息etl任务对所述用户信息原始数据进行处理后输出到所述计算模块;
所述计算模块,用于调用所述用户信息数据映射任务将处理后的数据进行数据映射到用户信息spark表,调用所述用户信息预处理任务将处理后的数据进行数据预处理后写到用户信息预处理spark表,调用用户总数指标任务将处理后的数据进行指标数据聚合后写到用户总数指标spark表;然后将用户信息spark表、用户信息预处理spark表和用户总数指标spark表保存到所述存储单元。
其中,所述用户信息数据映射任务、用户信息预处理任务、用户总数指标任务是数据驱动方式,所述用户信息etl任务是定时执行方式。
其中,该系统还包括:管理门户;
所述adma应用算法单元,还用于将将存储单元保存的用户信息spark表、用户信息预处理spark表和用户总数指标spark表以及用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务同步到所述管理门户;
所述管理门户,用于分类展示所述用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务。
其中,所述管理门户,还用于对用户信息spark表、用户信息预处理spark表和用户总数指标spark表、用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务进行血缘分析、监控任务执行状态以及重新执行任务。
其中,所述管理门户,还用于当用户信息原始数据未及时引入时,支持补采用户信息原始数据。
图2为本发明另一实施例提供的一种数据统计分析系统的结构示意图,如图2所示,该系统包括:
adma应用算法单元、管理门户、数据采集单元和存储单元;
其中,所述adma应用算法单元,用于提供adma应用算法,该adma应用算法实现包括表建模、算法建模和任务建模;
表建模包括表的xml文件和汇总表的xml文件,表xml文件对应生成表的建表脚本,汇总表xml文件说明表的建表路径等信息。
算法建模采用sql实现,需要配置算法.sql文件、算法.xml文件和算法.conf文件,这三种文件相互关联组成一个实例化的sql算法。
任务建模包括任务xml文件和虚拟任务xml文件,根据xml文件生成任务,包括数据驱动任务和定时任务。
具体而言,所述adma应用算法单元包括:表建模模块、算法建模模块、第一任务建模模块、第二任务建模模块;
表建模模块,用于创建spark表;
算法建模模块,用于提供sql算法;
第一任务建模模块,用于根据所述sql算法创建spark任务;
第二任务建模模块,用于创建etl任务。
其中,所述spark表包括:用户信息spark表、用户信息预处理spark表和用户总数指标spark表;
所述spark任务包括:用户信息数据映射任务、用户信息预处理任务、用户总数指标任务;
所述etl任务包括:用户信息etl任务。
具体而言,所述表建模模块,具体用于根据表的xml文件和汇总表的xml文件创建所述用户信息spark表、用户信息预处理spark表和用户总数指标spark表;
所述算法建模模块,具体用于根据配置算法.sql文件、算法.xml文件和算法.conf文件采用sql实例化所述sql算法;
所述第一任务建模模块,具体用于根据任务xml文件和虚拟任务xml文件采用实例化的所述sql算法创建用户信息数据映射任务、用户信息预处理任务、用户总数指标任务;
所述第二任务建模模块,具体用于根据elt规则创建用户信息etl任务。
其中,所述表的xml文件和汇总表的xml文件,所述配置算法.sql文件、算法.xml文件和算法.conf文件,所述任务xml文件和虚拟任务xml文件,所述elt规则都采用标准化版本。
如此,将adma应用算法标准化,对外融合项目时,只需要提供jar包、配置文件、数据表设计、算法以及etl规则,减少了开发成本。其中,jar包、配置文件:为底层的东西,用于实例化以及运行任务;数据表设计:存放表的xml文件和汇总表的xml文件;算法:存放算法.xml文件和算法shell脚本等;etl规则:存放etl的配置文件以及脚本等。
其中,所述数据采集单元,用于引入用户信息原始数据,输出到所述adma应用算法单元;
所述adma应用算法单元,还包括:etl模块和计算模块;
所述etl模块,用于调用所述用户信息etl任务对所述用户信息原始数据进行处理后输出到所述计算模块;
所述计算模块,用于调用所述用户信息数据映射任务将处理后的数据进行数据映射到用户信息spark表,调用所述用户信息预处理任务将处理后的数据进行数据预处理后写到用户信息预处理spark表,调用用户总数指标任务将处理后的数据进行指标数据聚合后写到用户总数指标spark表;然后将用户信息spark表、用户信息预处理spark表和用户总数指标spark表保存到所述存储单元。
其中,所述adma应用算法单元,还用于将存储单元保存的用户信息spark表、用户信息预处理spark表和用户总数指标spark表以及用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务同步到所述管理门户;其中,表创建完会同步到门户,任务同步指的是:每天可以定时实例化好所有的任务,在管理门户上展示。
所述管理门户,用于分类展示所述用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务。
例如,按照局点(比如四川)、制式(比如vinsight)、项目(比如统计服务器)、任务类型(比如数据映射)等进行分类在管理门户上展示。
其中,所述管理门户,还用于对用户信息spark表、用户信息预处理spark表和用户总数指标spark表、用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务进行血缘分析、监控任务执行状态以及重新执行任务。其中,血缘分析是指将流程直观的展示在门户上,比如要生成用户总数指标spark表,必须先保证用户信息预处理spark表有数据,否则不执行,然后将这种关系直观的展示在门户上。另外,重新执行任务没有条件,只是如果没有数据的话,任务重新执行后,spark表不变而已。重新执行的是数据映射任务、数据预处理任务、数据总数指标任务,这些重新执行的输入不一定是原始数据。
例如,结合实例化的任务进行血缘分析,分析各类任务与原始数据、与spark表的关系等;还可以监控任务执行状态,例如任务是否执行、执行成功或失败;还可以重新执行任务,例如未执行过、执行成功、执行失败的任务都可以再重新执行。
其中,所述管理门户,还用于当用户信息原始数据未及时引入时,支持补采用户信息原始数据。比如,用户信息原始数据每天定时传到数据采集模块,如果中间出现网络断开或其他原因造成用户信息原始数据没传过来,然后网络恢复,原始数据又可以传到数据采集模块,这个时候支持处理延迟到达的数据。补采包括etl模块的任务,也包括数据映射等任务。
例如,针对原始数据未及时引入统计分析系统的异常情况,支持补采。
此外,管理门户还支持动态资源管理、数据质量、运维kpi告警等分析或管理功能,实现大数据平台的数据治理能力。
本发明实施例提供的技术方案,提供了一种基于spark和adma的数据统计分析系统,实现大数据平台的数据管理,提供底层支撑平台融合其他项目,供各项目开发不同的数据统计分析指标,降低统计分析系统开发维护成本。
图3为本发明一实施例提供的一种数据统计分析方法的流程示意图,如图3所示,该方法包括:
步骤301,adma应用算法单元创建spark表、spark任务和etl任务;
其中,所述spark表包括:用户信息spark表、用户信息预处理spark表和用户总数指标spark表;所述spark任务包括:用户信息数据映射任务、用户信息预处理任务、用户总数指标任务;所述etl任务包括:用户信息etl任务。
其中,所述创建spark表,包括:根据表的xml文件和汇总表的xml文件创建所述用户信息spark表、用户信息预处理spark表和用户总数指标spark表;
所述创建spark任务,包括:根据配置算法.sql文件、算法.xml文件和算法.conf文件采用sql实例化sql算法;根据任务xml文件和虚拟任务xml文件采用实例化的所述sql算法创建用户信息数据映射任务、用户信息预处理任务、用户总数指标任务;
所述创建etl任务,包括:根据elt规则创建用户信息etl任务。
其中,所述表的xml文件和汇总表的xml文件,所述配置算法.sql文件、算法.xml文件和算法.conf文件,所述任务xml文件和虚拟任务xml文件,所述elt规则都采用标准化版本。
其中,所述用户信息数据映射任务、用户信息预处理任务、用户总数指标任务是数据驱动方式,所述用户信息etl任务是定时执行方式。
其中,该方法还包括:
引入用户信息原始数据,调用所述用户信息etl任务对所述用户信息原始数据进行处理;
调用所述用户信息数据映射任务将处理后的数据进行数据映射到用户信息spark表,调用所述用户信息预处理任务将处理后的数据进行数据预处理后写到用户信息预处理spark表,调用用户总数指标任务将处理后的数据进行指标数据聚合后写到用户总数指标spark表;然后保存用户信息spark表、用户信息预处理spark表和用户总数指标spark表。
其中,该方法还包括:
分类展示所述用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务。
其中,该方法还包括:
对用户信息spark表、用户信息预处理spark表和用户总数指标spark表、用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务进行血缘分析、监控任务执行状态以及重新执行任务。
其中,该方法还包括:
当用户信息原始数据未及时引入时,支持补采用户信息原始数据。
图4为本发明另一实施例提供的一种数据统计分析方法的流程示意图,
本实施例应用于图3所示的系统
如图4所示,该方法包括:
步骤401,adma应用算法单元创建spark表、spark任务和etl任务;
其中,所述spark表包括:用户信息spark表、用户信息预处理spark表和用户总数指标spark表;所述spark任务包括:用户信息数据映射任务、用户信息预处理任务、用户总数指标任务;所述etl任务包括:用户信息etl任务;
具体而言,adma应用算法,包括jar包、表设计、算法等。服务启动后,进行表建模,会生成用户信息spark表、用户信息预处理spark表、用户总数指标spark表;进行任务建模,会生成用户信息etl任务、用户信息数据映射任务、用户信息预处理任务、用户总数指标任务。
步骤402,数据采集单元引入用户信息原始数据,输出到所述adma应用算法单元;
步骤403,所述adma应用算法单元的etl模块调用用户信息etl任务对所述用户信息原始数据进行处理后输出到计算模块;
具体而言,etl模块调用401实例化出的用户信息etl任务处理用户信息原始数据,在经过数据抽取、数据准确性校验、数据转换后,将不符合的记录剔除,符合的记录保留,输出到计算模块;
步骤404,所述计算模块调用所述用户信息数据映射任务将处理后的数据进行数据映射到用户信息spark表,调用所述用户信息预处理任务将处理后的数据进行数据预处理后写到用户信息预处理spark表,调用用户总数指标任务将处理后的数据进行指标数据聚合后写到用户总数指标spark表;然后将用户信息spark表、用户信息预处理spark表和用户总数指标spark表保存到所述存储单元;
具体而言,计算模块调用步骤401实例化出的用户信息数据映射任务,将数据映射到存储模块的用户信息spark表中;触发用户信息预处理任务,将数据写到用户信息预处理spark表中;触发用户总数指标任务任务,将指标数据写到用户总数指标spark表中,同时以文件的方式存储到存储单元,例如hdfs(分布式文件系统,hadoopdistributedfilesystem)中;
步骤405,所述adma应用算法单元将存储单元保存的用户信息spark表、用户信息预处理spark表和用户总数指标spark表以及用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务同步到所述管理门户;
步骤406,所述管理门户分类展示所述用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务。
具体而言,在管理门户可看到任务执行时间、任务执行方式、任务所使用的原始数据(即血缘关系)等。比如用户信息etl任务是定时执行方式,用户信息数据映射任务、用户信息预处理任务、用户总数指标任务是数据驱动方式。
其中,该方法还可以包括:
所述管理门户对用户信息spark表、用户信息预处理spark表和用户总数指标spark表、用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务进行血缘分析、监控任务执行状态以及重新执行任务;
具体而言,结合实例化的任务进行血缘分析,任务与原始数据、与spark表的关系;监控任务执行状态,例如任务是否执行、执行成功或失败;重新执行任务,比如未执行过、执行成功、执行失败的任务都可以再重新执行。例如,登录大数据平台管理门户,查看用户总数指标任务,进行血缘分析,分析出执行失败的任务,对于执行失败的任务可查看失败原因,并重新执行。各个任务和数据(spark表)之间的关系在实例化出spark表和任务后自动在门户上展示。此处的血缘分析是指任务出问题后,可以根据门户上展示的关系分析定位问题的位置。对于执行成功或未执行的任务,不需要任何条件,均可以重新执行。
另外,针对原始数据未及时引入统计分析系统的异常情况,支持数据补采。其他故障分析及解决操作也可通过管理门户进行。
本发明实施例提供的技术方案,提供了基于spark和adma的数据统计分析方法,首先adma应用算法采用标准化版本,统一了数据处理机制,方便融合不同统计项目,只需在adma应用算法对应的目录下开发代码即可,adma服务会根据目录下的代码生成定时任务和数据驱动任务,解决了各个项目表现的碎片化,大大的减少了开发工作量。其次,大数据平台管理门户,提供统一元数据管理、可视化任务监控、可视化血缘分析、动态资源管理、数据质量、运维kpi告警等分析或管理功能,实现大数据平台的数据治理能力,降低统计分析系统开发维护成本。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
1.一种数据统计分析系统,其特征在于,包括:adma应用算法单元;
所述adma应用算法单元,包括:
表建模模块,用于创建spark表;
算法建模模块,用于提供sql算法;
第一任务建模模块,用于根据所述sql算法创建spark任务;
第二任务建模模块,用于创建etl任务。
2.根据权利要求1所述的系统,其特征在于,
所述spark表包括:用户信息spark表、用户信息预处理spark表和用户总数指标spark表;
所述spark任务包括:用户信息数据映射任务、用户信息预处理任务、用户总数指标任务;
所述etl任务包括:用户信息etl任务。
3.根据权利要求2所述的系统,其特征在于,
所述表建模模块,具体用于根据表的xml文件和汇总表的xml文件创建所述用户信息spark表、用户信息预处理spark表和用户总数指标spark表;
所述算法建模模块,具体用于根据配置算法.sql文件、算法.xml文件和算法.conf文件采用sql实例化所述sql算法;
所述第一任务建模模块,具体用于根据任务xml文件和虚拟任务xml文件采用实例化的所述sql算法创建用户信息数据映射任务、用户信息预处理任务、用户总数指标任务;
所述第二任务建模模块,具体用于根据elt规则创建用户信息etl任务。
4.根据权利要3所述的系统,其特征在于,
所述表的xml文件和汇总表的xml文件,所述配置算法.sql文件、算法.xml文件和算法.conf文件,所述任务xml文件和虚拟任务xml文件,所述elt规则都采用标准化版本。
5.根据权利要求3所述的系统,其特征在于,该系统还包括:
数据采集单元和存储单元;
所述数据采集单元,用于引入用户信息原始数据,输出到所述adma应用算法单元;
所述adma应用算法单元,还包括:etl模块和计算模块;
所述etl模块,用于调用所述用户信息etl任务对所述用户信息原始数据进行处理后输出到所述计算模块;
所述计算模块,用于调用所述用户信息数据映射任务将处理后的数据进行数据映射到用户信息spark表,调用所述用户信息预处理任务将处理后的数据进行数据预处理后写到用户信息预处理spark表,调用用户总数指标任务将处理后的数据进行指标数据聚合后写到用户总数指标spark表;然后将用户信息spark表、用户信息预处理spark表和用户总数指标spark表保存到所述存储单元。
6.根据权利要求5所述的系统,其特征在于,
所述用户信息数据映射任务、用户信息预处理任务、用户总数指标任务是数据驱动方式,所述用户信息etl任务是定时执行方式。
7.根据权利要求5所述的系统,其特征在于,该系统还包括:管理门户;
所述adma应用算法单元,还用于将存储单元保存的用户信息spark表、用户信息预处理spark表和用户总数指标spark表以及用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务同步到所述管理门户;
所述管理门户,用于分类展示所述用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务。
8.根据权利要求7所述的系统,其特征在于,
所述管理门户,还用于对用户信息spark表、用户信息预处理spark表和用户总数指标spark表、用户信息数据映射任务、用户信息预处理任务、用户总数指标任务、用户信息etl任务进行血缘分析、监控任务执行状态以及重新执行任务。
9.根据权利要求7所述的系统,其特征在于,
所述管理门户,还用于当用户信息原始数据未及时引入时,支持补采用户信息原始数据。
10.一种数据统计分析方法,其特征在于,包括:
adma应用算法单元创建spark表、spark任务和etl任务;
其中,所述spark表包括:用户信息spark表、用户信息预处理spark表和用户总数指标spark表;所述spark任务包括:用户信息数据映射任务、用户信息预处理任务、用户总数指标任务;所述etl任务包括:用户信息etl任务。
技术总结