数据分析系统、数据分析的方法及装置与流程

专利2022-06-30  63

本发明涉及数据分析处理
技术领域
:,具体而言,涉及一种数据分析系统、数据分析的方法及装置。
背景技术
::随着hadoop数据仓库的发展,主要是基于hive的离线分析。而业务开始对实时分析提出了需求,比如,实时统计节目效果,推荐系统的在线学习,实时特征系统。着手调研后发现flink计算引擎可以满足业务对实时的分析,不过flink需要大家有专业的领域知识进行开发,对算法或者小白不够友好。针对上述相关技术中用于对业务进行实时分析的方式需要有操作者拥有足够的领域知识,实施起来比较困难的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种数据分析系统、数据分析的方法及装置,以至少解决相关技术中用于对业务进行实时分析的方式需要有操作者拥有足够的领域知识,实施起来比较困难的技术问题。根据本发明实施例的一个方面,提供了一种数据分析系统,包括:日志收集模块,用于收集至少一个目标应用上报的原始日志数据;数据分流模块,用于按照预设配置信息对所述原始日志数据进行清洗和分流处理,得到分流结果,其中,所述预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系;数据分析模块,用于对所述分流结果进行序列化处理和逻辑运算,得到运算结果,并对所述运算结果进行存储。可选地,所述日志收集模块,还用于在接收到所述至少一个目标应用上报的原始日志数据之后,对所述原始日志数据进行格式转换,得到预定格式的原始日志数据。可选地,所述日志收集模块,还用于以埋点方式确定所述至少一个目标应用以及所述至少一个目标应用需要采集的日志数据的类别信息,以在所述至少一个目标应用采集到原始日志数据后,触发所述至少一个目标应用上报所述原始日志数据。可选地,所述至少一个目标应用通过以下至少之一收集客户端的日志数据:日志模块logging,nginxaccesslog。可选地,所述日志收集模块包括:日志采集子模块,用于获取所述至少一个目标应用上报的原始日志数据;日志监测子模块,与所述日志采集子模块连接,用于在监测到所述日志采集子模块中存储有所述原始日志数据时,触发所述日志采集子模块将所述原始日志数据发送至所述消息处理器集群。可选地,所述数据分流模块,还用于通过mysql配置需要进行分流的原始日志数据的日志类型,以在所述消息处理器集群中创建与所述日志类型对应的多个日志列表。可选地,所述数据分流模块,还用于利用flink分布式运算系统通过数据库连接池,获取更新至本地缓存的分流规则,以利用所述分流规则对所述原始日志数据进行分流,得到分流后的日志数据。可选地,所述数据分流模块,还用于提取所述分流后的日志数据的日志类型字段,并对所述分流后的日志数据进行维度信息扩充,得到扩充后的日志数据,并将所述扩充后的日志数据分发至所述消息处理器集群的多个日志列表中,形成数据仓库的数据源。可选地,所述数据分析模块,用于对接收到的sql语句进行解析,得到解析后的sql语句,并基于所述解析后的sql语句对应的业务需求对所述数据仓库中的数据进行序列化处理和逻辑运算,得到所述运算结果。可选地,所述数据分析模块,用于在接收到所述sql语句后,通过所述flink分布式运算系统提供的tablesource获取所述数据仓库中的数据,并将获取的所述数据仓库中的数据提交至所述flink分布式运算系统的streamoperator,以利用所述streamoperator对接收到的所述数据仓库中的数据进行统计分析,得到所述统计分析结果。可选地,所述数据分析模块,还用于通过所述flink分布式运算系统提供的tablesink将经过所述streamoperator序列化处理和逻辑运算得到的运算结果,并将所述运算结果存储至数据库中供业务方使用。可选地,所述消息处理器集群为kafka集群。根据本发明实施例的另外一个方面,还提供了一种数据分析的方法,应用于上述中任一项所述的数据分析系统,包括:收集至少一个目标应用上报的原始日志数据;按照预设配置信息对所述原始日志数据进行清洗和分流处理,得到分流结果,其中,所述预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系;对所述分流结果进行序列化处理和逻辑运算,得到运算结果,并对所述运算结果进行存储。根据本发明实施例的另外一个方面,还提供了一种数据分析的装置,使用上述所述的数据分析的方法,包括:收集单元,用于收集至少一个目标应用上报的原始日志数据;处理单元,用于按照预设配置信息对所述原始日志数据进行清洗和分流处理,得到分流结果,其中,所述预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系;获取单元,用于对所述分流结果进行序列化处理和逻辑运算,得到运算结果,并对所述运算结果进行存储。根据本发明实施例的另外一个方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序执行上述中所述的数据分析的方法。根据本发明实施例的另外一个方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中所述的数据分析的方法。在本发明实施例中,采用日志收集模块收集至少一个目标应用上报的原始日志数据;并利用数据分流模块按照预设配置信息对所述原始日志数据进行清洗和分流处理,得到分流结果,其中,所述预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系;以及利用数据分析模块对所述分流结果进行序列化处理和逻辑运算,得到运算结果,并对所述运算结果进行存储,通过本发明实施例中的数据分析系统,实现了通过实时对原始日志数据分流,并对分流结果进行序列化处理和逻辑运算,以得到运算结果的目的,达到了降低对业务进行分析的难度的技术效果,进而解决了相关技术中用于对业务进行实时分析的方式需要有操作者拥有足够的领域知识,实施起来比较困难的技术问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的数据分析系统的示意图;图2是根据本发明实施例的数据分析系统中日志数据流动的示意图;图3是根据本发明实施例的flinksql的功能图;图4是根据本发明实施例的数据仓库分层的示意图;图5是根据本发明实施例的webui界面的示意图;图6是根据本发明实施例的数据之间的血缘关系的示意图;图7是根据本发明实施例的数据分析的方法的流程图;以及,图8是根据本发明实施例的数据分析的装置的示意图。具体实施方式为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。为了便于理解,下面对本发明实施例中出现的部分名词或术语进行详细说明。串行外设接口(serialperipheralinterface,简称spi):是一种高速的,全双工的,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为pcb的布局上节省空间,提供方便。用户数据协议(userdatagramprotocol,简称udp):为应用程序提供了一种无需建立连接就可以发送封装的ip数据报的方法。操作数据存储(operationaldatastore,简称ods):是数据仓库体系结构中的一个可选部分,面向主体的、集成的、当前或接近当前的、不断变化的当前明细数据的结合。访问控制列表(accesscontrollist,简称acl):是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。数据库可用性组(directedacyclicgraph,简称dag):有向无环图,是指一条边有方向,且不存在环路的图。hadoop是一个由apache基金会所开发的分布式系统的基础架构。etl,是用来描述将数据从来源端经过抽取、转换、加载至目的端的过程,常用在数据仓库。rsylog:能够接受从各种各样的来源,将其输入,输出的结果到不同的目的地,可以提供超过每秒一百万条消息给目标文件。filebeat:是本地文件的日志数据采集器,可以监控日志目录或特定日志文件,并将它们转发给elasticsearch或logstash进行索引、kafka等,带有内部模块,可通过一个指定命令来简化通用日志格式的收集,解析和可视化,它有两个组件,查找器和采集器,来读取文件并将事件数据发送到指定的输出。flink:是一个开源流处理框架,它以数据并行和流水线方式执行任意流数据程序,flink的流水线运行时系统可以执行批处理和流处理程序。jason:是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,它是一个标识符的序列,这套标识符包含六个构造字符、字符串、数字和三个字面名,也是一个序列化的对象或数组。实施例1根据本发明实施例的一个方面,提供了一种数据分析系统,图1是根据本发明实施例的数据分析系统的示意图,如图1所示,该数据分析系统包括:日志收集模块11,用于收集至少一个目标应用上报的原始日志数据。可选的,这里的日志收集模块会每隔预定周期采集至少一个目标应用上报的原始日志数据,这里的预定周期可以是每隔1分钟、5分钟等较小的时间间隔,从而可以满足用户不同的业务分析需求。数据分流模块13,用于按照预设配置信息对原始日志数据进行清洗和分流处理,得到分流结果,其中,预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系。需要说明的是,在本发明实施例中,消息处理器集群为基于kafka的集群。其中,kafka是一个开源流处理平台,高吞吐量的分布式发布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。这种动作是在现代网络上的许多社会功能的一个关键因素,这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。由于,原始日志数据收集到消息处理集群上,所有的原始日志数据都是通过统一通道上传过来,会导致消息处理集群信息巨大,对业务的处理能力有巨大的压力。而对于不同的业务,用户并不是所有的日志列别都会关注。因此,为了降低消息处理集群的压力,可以选择对原始日志数据进行预先处理,例如,根据日志数据的类别信息对原始日志数据进行清洗以及分流处理。上述原始日志数据由日志收集模块收集后会上报至数据分析系的原始层,这里可以对原始层收集到的原始日志数据进行拆分。例如,可以对原始日志数据进行etl拆分。数据分析模块15,用于对分流结果进行序列化处理和逻辑运算,得到运算结果,并对运算结果进行存储。可选的,这里可以对分流处理后的原始日志数据进行序列化处理,以得到业务排行数据;也可以对分流处理后的原始日志数据进行逻辑运算,以得到主播的热度等。图2是根据本发明实施例的数据分析系统中日志数据流动的示意图,如图2所示,日志数据被收集到数据分析系统的原始层;然后,将原始层接收到的原始日志数据进行日志分流处理,分发到不同的kafaka的topic中,形成实时数据仓库,即,ods层的数据源层;然后,通过flink系统进行逻辑聚合,得到运算结果,形成主题汇聚层;主题汇聚层会进行业务组合,得到业务应用层,经不同的业务组合存储起来。由上可知,在本发明实施例中,可以利用日志数据模块收集至少一个目标应用上报的原始日志数据,并利用数据分析模块按照预设配置信息对原始日志数据进行清洗和分流处理,得到分流结果,这的预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系,接着利用数据分析模块对分流结果进行序列化处理和逻辑运算,得到运算结果,并对运算结果进行存储,实现了通过实时对原始日志数据分流,并对分流结果进行序列化处理和逻辑运算,以得到运算结果的目的。容易注意到,由于在本发明实施例中,预先利用日志数据收集模块收集至少一个目标应用上报的原始日志数据,并可以利用数据分析模块按照预设配置信息对原始日志数据进行清洗和分流处理,得到分流结果,再利用数据分析模块对分流结果进行序列化处理和逻辑运算,得到运算结果,并将运算结果进行存储,实现了通过实时对原始日志数据分流,并对分流结果进行序列化处理和逻辑运算,以得到运算结果的目的,达到了降低对业务进行分析的难度的技术效果。通过本发明实施例提供的数据分析系统,解决了相关技术中用于对业务进行实时分析的方式需要有操作者拥有足够的领域知识,实施起来比较困难的技术问题。在一种可选的实施例中,日志收集模块,还用于在接收到至少一个目标应用上报的原始日志数据之后,对原始日志数据进行格式转换,得到预定格式的原始日志数据。可选的,上述至少一个目标应用可以为设置在不同用户的客户端的app1。例如,在用户a的手机上设置有app1,每当用户通过手机上的应用下载app下载app2时,就会触发app1获取一条日志数据;另外,当用户打开app2时,也可以对app2中用户浏览的情况对应的日志进行日志数据获取。即,在本发明实施例中,为了便于对原始日志数据进行结构化解析,可以在日志源头对日志数据的json日志数据进行规范,格式可以为:[logtime][logtype],json;例如,[2013-04-1011:00:09][click],{"urs":12344343,"server":"1001"}。上面的格式设计方便数据分析系统提取实时处理的事件时间、日志标识,json格式便于序列化和扩展。在一种可选的实施例中,日志收集模块,还用于以埋点方式确定至少一个目标应用以及至少一个目标应用需要采集的日志数据的类别信息,以在至少一个目标应用采集到原始日志数据后,触发至少一个目标应用上报原始日志数据。其中,埋点的内容主要取决于想要从用户身上获取哪些信息,一般主要分为用户的基本属性信息和行为信息,一方面,用户的基本属性信息主要包括:城市、地址、年龄、性别、经纬度、账号类型、运营商、网络、设备等等;另外一个方面,行为信息即用户的点击行为和浏览行为,例如,用户在什么时间,点击了什么按钮,浏览了哪个页面,浏览时长,在该浏览页面中执行力哪些操作等。在一种可选的实施例中,至少一个目标应用通过以下至少之一收集客户端的日志数据:日志模块logging,nginxaccesslog。例如,至少一个目标应用可以通过logging模块,或者通过nginxaccesslog收集客户端的日志数据并存储在本地。然后利用rsyslog,filebeat,scribeagent等工具收集到的日志数据实时的发送到消息处理器集群kafka的topic中。在一种可选的实施例中,日志收集模块包括:日志采集子模块,用于获取至少一个目标应用上报的原始日志数据;日志监测子模块,与日志采集子模块连接,用于在监测到日志采集子模块中存储有原始日志数据时,触发日志采集子模块将原始日志数据发送至消息处理器集群。在一种可选的实施例中,数据分流模块,还用于通过mysql配置需要进行分流的原始日志数据的日志类型,以在消息处理器集群中创建与日志类型对应的多个日志列表。上述异步获取mysql的配置信息如需要过滤的日志数据的日志类型,发送的kafka的topic名字,保存内存字段中map[logtype]=kafka_topic,定时更新。主要是在提取到日志数据的日志类型后,根据配置信息进行处理,如果有对应的logtype和kafka发送的topic名字,就发送到对应的kafkatopic,如有没有则直接丢弃。需要说明的是,在本发明实施例中,在确定了原始日志数据的日志类型之后,会将相同日志类型的日志数据存储到相同的topic对应的位置,以减少下游任务的数据处理量。在一种可选的实施例中,数据分流模块,还用于利用flink分布式运算系统通过数据库连接池,获取更新至本地缓存的分流规则,以利用分流规则对原始日志数据进行分流,得到分流后的日志数据。在一种可选的实施例中,数据分流模块,还用于提取分流后的日志数据的日志类型字段,并对分流后的日志数据进行维度信息扩充,得到扩充后的日志数据,并将扩充后的日志数据分发至消息处理器集群的多个日志列表中,形成数据仓库的数据源。日志数据统一搜集到kafka的topic中,所有的日志数据是通过统一通道上报过来。所有app应用的埋点都往这个通道上报数据,导致这个kafkatopic信息巨大,对业务处理能力有巨大压力。而每个业务只关心个别日志类别,所以需要对原始层进行etl拆分。一般方式为:通过mysql配置需要分流的日志数据的日志类型logtype,建立对应的kafkatopic信息,然后flink通过数据库连接池,异步获取更新本地缓存配置信息,高效实时清洗原始日志,提取前面的logtype字段,扩充维度信息,分发到不同的kafka的topic中,形成实时数据仓库的数据源层。这样后面的处理任务只需要关心自己感兴趣的数据,大大提升了性能,并且数据分流后,结合kafkasasl机制对topic进行acl管理,可以很好的对数据进行隔离保护。在一种可选的实施例中,数据分析模块,用于对接收到的sql语句进行解析,得到解析后的sql语句,并基于解析后的sql语句对应的业务需求对数据仓库中的数据进行序列化处理和逻辑运算,得到运算结果。其中,数据分析模块,用于在接收到sql语句后,通过flink分布式运算系统提供的tablesource获取数据仓库中的数据,并将获取的数据仓库中的数据提交至flink分布式运算系统的streamoperator,以利用streamoperator对接收到的数据仓库中的数据进行统计分析,得到统计分析结果。例如,日志数据流入后,可以使用flinksql为计算引擎进行实时分析。具体地,sql语句提交到数据分析系统后,通过sqlparser转化为逻辑计划,即,利用sqlparser对sql语句进行解析,得到逻辑计划,然后优化为jobgraph,通过restful接口提交至给dispatcher运行,向yarn申请container运行jobmanager、taskmanager,然后把job在slot上面并行的运行。其中,jobgraph的处理逻辑可以抽象为tablesource,streamingoperator,tablesink三部分。tablesource用于获取源头日志数据,例如,可以通过读取kafka或者mysql文件中的数据,然后通过自定义的schema序列化数据,转换为数据表的行数据,并交给streamoperator;streamoperator主要是进行逻辑计算比如求和、求平均数、排序等运算;tablesink则主要是把streamoperator的计算结果落实到redis、mysql等数据库供业务方使用。然后,通过自定义的schema序列化数据,转化为数据表的行数据。交给streamoperator进行各种统计运算后,输出到下一级tablesink。在一种可选的实施例中,数据分析模块,还用于通过flink分布式运算系统提供的tablesink将经过streamoperator序列化处理和逻辑运算得到的运算结果,并将运算结果存储至数据库中供业务方使用。可选的,flink系统提供的tablesource,streamoperator,tablesink能力有限,通过丰富的扩展,来使用适配于自己的业务系统,主要如下所示:1)日志序列化format:自己实现自己的内部格式的消息解析如[2013-04-1011:00:09][click],{"urs":12344343,"server":"1001"},映射到schema包含logtime、logtype,urs,server的实时表结构,实现流数据与表的对偶,从而方便sql进行字段操作;2)tablesource,tablesink的connector:主要实现redis、mysql的数据库连接池操作,并通过游标读取发送到streamoperator处理或者接收streamoperator的结果写入数据库,方便如微服务业务排行榜等实时获取统计系统数据。另外,在本发明实施例中,udf用户可以自己实现逻辑函数,扩展streamoperator的能力,比如主播的热度算法,适用于业务复杂逻辑的计算。图3是根据本发明实施例的flinksql的功能图,jobgraph的处理逻辑可以抽象为tablesource,streamingoperator,tablesink三部分,在job运行过程中,在定义的tablesource,tablesink埋点,发送metrics到promethus,使用grafana展示。上面自定义的扩展编译为jar包,client然后通过classload加载对应的jar包到jvm中生效,数据分析系统在运行的时候可以通过javaspi扩展机制发现自定义的format、connector、udf的jar包。这样就不必关心底层kafka、flink、redis等细节知识,放心的使用sql就好,大大降低实时分析的门槛。需要说明的是,在本发明实施例中,消息处理器集群为kafka集群。在本发明实施例中,为了方便作业提交和组织,开发了支持批量sql文件解析提交功能,支持session模式和jobcluster两种模式。session模式可以有效的把一组强相关的任务运行在一个集群中,节约资源方便管理任务。jobcluster是一个任务启动一个集群,加强任务直接的隔离性,但是资源开销大。业务任务可以根据自己的需求灵活选择。物理执行计划提交到yarn上面分布式执行。通过配置任务checkpoint机制、任务失败重试,可以有效的保障任务的稳定运行,并且后期随着业务量的变化,可以动态改变并发量,动态申请更多的资源。在job运行过程中,在定义的tablesource,tablesink埋点,发送metrics到promethus,使用grafana展示。metrics粒度分为系统指标、任务指标、延时指标全方位立体展示job的健康状态、同时结合alarmmanager做报警。图4是根据本发明实施例的数据仓库分层的示意图,针对该实时数据仓库分层,主要是从实现意义上面讲解数据流的实时处理,为了便于管理我们抽象出来实时的数据仓库模型。建立以kakfka为存储引擎,以flinksql为计算引擎,以json为数据格式的基础上,把数据仓库分为ods,主题层,应用层,数据分层形成自己的作用域,在使用表的时候能更方便地定位和理解,主要的的分类如下图4所示:ods层:主要是存放经过分流、清洗后的详细的流水日志。屏蔽原始数据的异常对上层业务的影响;维度层:使用mysql存储时间维度、地区维度、业务维度等信息用,用于flinksqljoin扩充信息;主题层:在更高逻辑层面上,抽象业务熟悉为用户画像、主播画像、用户行为、财务主题等概念。主要的实现逻辑通过sql实时的进行windowjoin或者intervaljoin统计出1分钟、5分钟、1个小时等区间的统计指标,开发通用的中间层数据,能够减少极大的重复计算;业务层:根据业务需求,将一个复杂的任务分解成多个子任务来完成,交叉组合主题层的数据,完成业务逻辑;每一层只处理单一的步骤,比较简单和容易理解,而且便于维护数据的准确性。在本发明实施例中,针对元数据,上面抽象出来的数据仓库模型,和sql实时分析系统对接,需要建立元数据系统,描述上述模型,主要定义catalogs、tables、table_configs、columns、table_prevs等五个表进行信息管理。1)数据库catalogs,逻辑意义对应于对表做分类,代表不同的主题和用途,物理意义上对应于database。表tables对应于不同的kafkatopics,redis数据源,mysql数据表,存在里面的日志功能数据。表配置table_configs描述kafka、redis、mysql等连接方式、表是否输入表、输出表等信息描述。用于tablesource,tablesink中外部系统的连接,和数据的序列化方式。字段columns用于描述数据的字段、对应于表的schema,从json格式提取对应的字段。权限表tbl_prevs用于控制用户的访问表的权限。简单的以columns,tbl_privs为例:tbl_prevs表结构:其中,实时sql系统在启动的时候使用mysql连接池,根据用户的权限,获取元数据中的数据库、表配置等信息、字段、通过数据整理形成connector,format,schema信息,实现自定义的flinkexternalcatalog和externalcatalogtable然后通过tableenviromentregistercatalog接口把外部元数据注入到实时分析系统。sql语句在解析的时候,可以通过metadataprovider接口获取信息,最后形成对应的tablesource,streamoperator、tablesink的dag物理计划,调度到yarn上面执行。在本发明实施例中,为了便于方便操作,提供webui界面去配置数据系统,从而可以方便实时数据仓库表的定义,图5是根据本发明实施例的webui界面的示意图,具体可以通过如图5所示的配置方式去配置数据系统。另外,通过本发明实施例提供的数据分析系统,还构建了数据之间的血缘关系,图6是根据本发明实施例的数据之间的血缘关系的示意图,如图6所示,通过sqlparse可以分析出来sql是从哪个表from的,insert到哪个表,建立表之间的数据血缘关系,以表为节点,边为sql语句,形成一个有向无环图,把点和变的信息存入图数据库中。以上图就是点击日志清洗的流程,形成的血缘图。有了数据血缘图,可以方便查看表定义,以及每张表的来源、去向,每个字段的加工逻辑,方便理解数据业务流程、定位数据问题。通过本发明实施例提供的数据分析系统,主要由日志埋点实时收集模块、实时系统分流模块、flinksql实时分析系统生态、实时数据仓库体系等四部分组成。日志埋点实时收集模块主要负责规范化日志格式,实时发送到kafka系统。实时数据分流体系主要是分离统一日志收集渠道的原始数据,用于精细化控制和访问数据。flinksql实时分析系统我们扩展tablesource和tablesink的connector、schema、udf生态、建立作业容错和监控机制。实时仓库体系主要面向业务模型数据分层、元数据体系和数据血缘关系,从而规范化的管理实时数据。从而建立高性能、易扩展、稳定的毫秒级实时分析生态环境。另外,通过在flink的基础上建立sqlonhadoop的系统,可以大大降低实时分析的门槛,方便快捷使用sql就可以完成策划的统计分析,实时仓库、实时特征等挑战性任务,避免关心底层细节。同时扩展周边的redis,mysql,日志格式等插件完善业务的使用环境。建立元数据系统,血缘关系、wiki系统有效的管理实时数据,方便数据的维护和复用,减少重复开发的工作量。并且建立良好的实时分析的监控、资源扩容、状态恢复等环境,很好的保证了系统的稳定、高效。为上层应用实时特征系统、实时报表等提供坚实的基础。通过本发明实施例提供的数据分析系统,达到了以下有益效果:1).实时性可以达到毫秒级别;2).业务人员只需要编写sql进行分析,大大降低分析门槛,提升工作效率;3).完善的周边组件实现和生态环境;4).高扩展性和稳定性;5).分流、实时仓库体系,便于实时数据管理和复用。实施例2根据本发明实施例,提供了一种数据分析的方法的方法实施例,需要说明的是,应用于上述中任一项的数据分析系统,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。图7是根据本发明实施例的数据分析的方法的流程图,如图1所示,该数据分析的方法包括如下步骤:步骤s702,收集至少一个目标应用上报的原始日志数据。步骤s704,按照预设配置信息对原始日志数据进行清洗和分流处理,得到分流结果,其中,预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系。步骤s706,对分流结果进行序列化处理和逻辑运算,得到运算结果,并对运算结果进行存储。由上可知,在本发明实施例中,可以通过收集至少一个目标应用上报的原始日志数据;并按照预设配置信息对原始日志数据进行清洗和分流处理,得到分流结果,其中,预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系;对分流结果进行序列化处理和逻辑运算,得到运算结果,并对运算结果进行存储,实现了通过实时对原始日志数据分流,并对分流结果进行序列化处理和逻辑运算,以得到运算结果的目的。容易注意到,由于在本发明实施例中,可以收集至少一个目标应用上报的原始日志数据;按照预设配置信息对原始日志数据进行清洗和分流处理,得到分流结果;对分流结果进行序列化处理和逻辑运算,得到运算结果,并对运算结果进行存储,实现了通过实时对原始日志数据分流,并对分流结果进行序列化处理和逻辑运算,以得到运算结果的目的,达到了降低对业务进行分析的难度的技术效果。通过本发明实施例中的数据分析的方法,解决了相关技术中用于对业务进行实时分析的方式需要有操作者拥有足够的领域知识,实施起来比较困难的技术问题。实施例3根据本发明实施例的另外一个方面,还提供了一种数据分析的装置,使用上述的数据分析的方法,图8是根据本发明实施例的数据分析的装置的示意图,如图8所示,该数据分析的装置还包括:收集单元81,处理单元83以及获取单元85。下面对该数据分析的装置进行详细说明。收集单元81,用于收集至少一个目标应用上报的原始日志数据。处理单元83,用于按照预设配置信息对原始日志数据进行清洗和分流处理,得到分流结果,其中,预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系。获取单元85,用于对分流结果进行序列化处理和逻辑运算,得到运算结果,并对运算结果进行存储。此处需要说明的是,上述收集单元81,处理单元83以及获取单元85对应于实施例2中的步骤s702至s706,上述单元与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述单元作为装置的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。由上可知,在本申请上述实施例中,可以利用收集单元收集至少一个目标应用上报的原始日志数据;并利用处理单元按照预设配置信息对原始日志数据进行清洗和分流处理,得到分流结果,其中,预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系;以及利用获取单元对分流结果进行序列化处理和逻辑运算,得到运算结果,并对运算结果进行存储。通过本发明实施例中的数据分析的装置,实现了通过实时对原始日志数据分流,并对分流结果进行序列化处理和逻辑运算,以得到运算结果的目的,达到了降低对业务进行分析的难度的技术效果,进而解决了相关技术中用于对业务进行实时分析的方式需要有操作者拥有足够的领域知识,实施起来比较困难的技术问题。实施例4根据本发明实施例的另外一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,程序执行上述中的数据分析的方法。实施例5根据本发明实施例的另外一个方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述中的数据分析的方法。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
技术特征:

1.一种数据分析系统,其特征在于,包括:

日志收集模块,用于收集至少一个目标应用上报的原始日志数据;

数据分流模块,用于按照预设配置信息对所述原始日志数据进行清洗和分流处理,得到分流结果,其中,所述预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系;

数据分析模块,用于对所述分流结果进行序列化处理和逻辑运算,得到运算结果,并对所述运算结果进行存储。

2.根据权利要求1所述的数据分析系统,其特征在于,所述日志收集模块,还用于在接收到所述至少一个目标应用上报的原始日志数据之后,对所述原始日志数据进行格式转换,得到预定格式的原始日志数据。

3.根据权利要求1所述的数据分析系统,其特征在于,所述日志收集模块,还用于以埋点方式确定所述至少一个目标应用以及所述至少一个目标应用需要采集的日志数据的类别信息,以在所述至少一个目标应用采集到原始日志数据后,触发所述至少一个目标应用上报所述原始日志数据。

4.根据权利要求3所述的数据分析系统,其特征在于,所述至少一个目标应用通过以下至少之一收集客户端的日志数据:日志模块logging,nginxaccesslog。

5.根据权利要求1所述的数据分析系统,其特征在于,所述日志收集模块包括:

日志采集子模块,用于获取所述至少一个目标应用上报的原始日志数据;

日志监测子模块,与所述日志采集子模块连接,用于在监测到所述日志采集子模块中存储有所述原始日志数据时,触发所述日志采集子模块将所述原始日志数据发送至所述消息处理器集群。

6.根据权利要求1所述的数据分析系统,其特征在于,所述数据分流模块,还用于通过mysql配置需要进行分流的原始日志数据的日志类型,以在所述消息处理器集群中创建与所述日志类型对应的多个日志列表。

7.根据权利要求6所述的数据分析系统,其特征在于,所述数据分流模块,还用于利用flink分布式运算系统通过数据库连接池,获取更新至本地缓存的分流规则,以利用所述分流规则对所述原始日志数据进行分流,得到分流后的日志数据。

8.根据权利要求7所述的数据分析系统,其特征在于,所述数据分流模块,还用于提取所述分流后的日志数据的日志类型字段,并对所述分流后的日志数据进行维度信息扩充,得到扩充后的日志数据,并将所述扩充后的日志数据分发至所述消息处理器集群的多个日志列表中,形成数据仓库的数据源。

9.根据权利要求8所述的数据分析系统,其特征在于,所述数据分析模块,用于对接收到的sql语句进行解析,得到解析后的sql语句,并基于所述解析后的sql语句对应的业务需求对所述数据仓库中的数据进行序列化处理和逻辑运算,得到所述运算结果。

10.根据权利要求9所述的数据分析系统,其特征在于,所述数据分析模块,用于在接收到所述sql语句后,通过所述flink分布式运算系统提供的tablesource获取所述数据仓库中的数据,并将获取的所述数据仓库中的数据提交至所述flink分布式运算系统的streamoperator,以利用所述streamoperator对接收到的所述数据仓库中的数据进行统计分析,得到所述统计分析结果。

11.根据权利要求10所述的数据分析系统,其特征在于,所述数据分析模块,还用于通过所述flink分布式运算系统提供的tablesink将经过所述streamoperator序列化处理和逻辑运算得到的运算结果,并将所述运算结果存储至数据库中供业务方使用。

12.根据权利要求1至11中任一项所述的数据分析系统,其特征在于,所述消息处理器集群为kafka集群。

13.一种数据分析的方法,其特征在于,应用于上述权利要求1至12中任一项所述的数据分析系统,包括:

收集至少一个目标应用上报的原始日志数据;

按照预设配置信息对所述原始日志数据进行清洗和分流处理,得到分流结果,其中,所述预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系;

对所述分流结果进行序列化处理和逻辑运算,得到运算结果,并对所述运算结果进行存储。

14.一种数据分析的装置,其特征在于,使用上述权利要求13所述的数据分析的方法,包括:

收集单元,用于收集至少一个目标应用上报的原始日志数据;

处理单元,用于按照预设配置信息对所述原始日志数据进行清洗和分流处理,得到分流结果,其中,所述预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系;

获取单元,用于对所述分流结果进行序列化处理和逻辑运算,得到运算结果,并对所述运算结果进行存储。

15.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求13中所述的数据分析的方法。

16.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求13中所述的数据分析的方法。

技术总结
本发明公开了一种数据分析系统、数据分析的方法及装置。其中,该数据分析系统包括:日志收集模块,用于收集至少一个目标应用上报的原始日志数据;数据分流模块,用于按照预设配置信息对原始日志数据进行清洗和分流处理,得到分流结果,其中,预设配置信息包括:日志数据的类别信息与消息处理器集群上创建的类别信息之间的对应关系;数据分析模块,用于对分流结果进行序列化处理和逻辑运算,得到运算结果,并对运算结果进行存储。本发明解决了相关技术中用于对业务进行实时分析的方式需要有操作者拥有足够的领域知识,实施起来比较困难的技术问题。

技术研发人员:刘晶晶
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:2020.01.07
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-58388.html

最新回复(0)