具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明涉及数据的在线分析技术,主要由网络传输的可靠性以及负载均衡,分布式计算,机器学习等部分组成。
本发明可实现处理海量数据的、架构易于水平扩展的、展现和功能易于变更的大数据分析架构。主要涉及了四种技术:数据仓库技术,联机事务分析处理技术,报表服务技术以及网站分析技术。
数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。数据仓库首要解决的问题是可支持大数据的存储和处理的能力,在此基础上整合汇总来自各个业务系统的数据,通过数据的清洗转换加载过程,形成规范统一形式的数据和元数据。
联机事务分析处理是共享多维信息的、针对特定问题的联机数据访问和分析的快速技术。联机事务分析处理具有灵活的分析功能、直观的数据操作和分析结果可视化表示等突出优点,从而使用户对基于大量复杂数据的分析变得轻松而高效,以利于迅速做出正确判断。业务数据集群将分析用的多维数据存储在关系数据库中并根据应用的需要有选择的定义一批实视图作为表也存储在关系数据库中。对每个针对业务数据集群服务器的查询,优先利用已经计算好的实视图来生成查询结果以提高查询效率。
报表服务是建立在业务数据集群基础之上,通过业务人员的定义将数据以符合业务需求的方式组织起来,并可统一管理和配置。在提供低延迟的数据报告同时可以将数据以更多的更直观的展示方式,有效的呈现数据中所蕴藏的模式和异常,便于系统的用户快速的发现问题并指导其决策。
图1是本发明的具体设计框架,由此看出,运行管理分析系统主要由以下组件构成:
(1)步骤ST1:获取数据平台数据,该组件完成了收集数据并对数据进行加工,使之成为数据仓库能接受的格式;
(2)步骤ST2:操作维护中心,该组件负责采集数据的存储和处理,采用分布式处理框架和定制改进过的Hive实现,并在其之上开发了大量的配套工程如调度系统、报警和监控系统、元数据管理系统,使之成为可运用于实际生产的数据仓库系统;
(3)步骤ST3:业务数据集群,该组件使用自主研发技术,实现了支持大数据量低延时的分布式业务数据集群数据库系统,并在此基础上实现了可支持灵活配置和自组织的数据报告服务,可由业务人员根据业务需求灵活定制数据报告,分析解决业务问题。
进一步,为使本发明获得更好的发明效果,步骤ST1主要完成以下工作:
用户通过点击行为触发了消息发送行为,运行管理分析系统捕捉到用户浏览信息,将消息加入到操作维护中心。这里,我们整合多个数据平台的数据,将用户信息统一为全局唯一标识,将数据项信息统一记为全局唯一标识。
进一步,为使本发明获得更好的发明效果,步骤ST2主要完成以下工作:
从操作维护中心提取该数据平台的用户数据及数据项的原始数据。该数据包括对用户行为的多维度描述以及对数据项的多维度描述,并包含线上和线下的数据;
图2是图1所示的运行管理分析系统实施流程中步骤ST3业务数据集群的处理流程图,进一步,为使本发明获得更好的发明效果,步骤ST3主要完成以下工作:
步骤ST301:用户数据和数据项数据的扩展
业务数据集群接收到操作维护中心传递来的信息后,将用户的行为信息扩展为更全面的行为信息(包括用户浏览的页面,数据项,数据项所属的类目,当时的数据项设置,表单提交,表单确认,添加收藏,登录注册等),同时对于数据项的描述也进行扩展。
步骤ST302:数据处理
调用数据规格化服务对数据进行归一化、规范化和清洗。其中归一化指对数值数据进行归一化操作,如把数变为(0,1)之间的小数,把有量纲表达式变为无量纲表达式等;规范化操作指数据结构化地组织,使其保持完整性的同时减少冗余,增进数据的一致性。数据清洗,主要针对不完整数据、错误数据、重复数据3类数据进行清洗。
步骤ST303:业务数据重组
使用从ST302所获得的数据并结合业务专家所提供的知识,将规格化后的数据进行转换以及计算。通过业务专家制定的方法,得到许多[主题:[维度]]映射关系的原子属性,而且这些属性能满足不同用户的需求,方便用户了解自身网站运行管理的信息。这种计算是短时间的、周期的,因此用户可以获得最新的运行管理结果数据。
其中业务专家所提供的知识包括关键指标定义和主题及其所对应的指标集合:
关键指标定义:
PageView:即PV,页面浏览数,页面被打开(请求)的次数。注意Ajax架构或Flash下同一URL下可以浏览多个页面,进行多个操作,这些都无法在PV中体现。
UniquePage:当一个页面被刷新多次时,用户浏览的始终是同一页面,这时的UniquePageViews还是1;
Visit:访问量,用于衡量用户的一次访问(从打开进入网站到离开网站,其中可能浏览了多个PV)的数量,也就是网站Session的个数;
UniqueVisitor:即UV,被用于标识访问网站的唯一用户数,注意一个UniqueVisitors可能会有多个Visits;
TimeonPage:页面停留时间,即用户从打开页面到离开页面的时间间隔,这个度量一般只有当用户在你的网站中点击了下一个页面时才会有记录,否则是0,所以所有Visits的最后一个页面的TimeonPage一般都为0。所以在计算页面平均停留时间(Avg.onPage)的时候一般会过滤TimeonPage=0的记录;
Timeonsite:即每个Visits的停留时间,一个Session的开始到结束。跟TimeonPage同样需要注意其计算中存在的误差,取平均的时候注意过滤长度为1的session;
BounceRate:如果一个用户进入网站,什么事都没干就直接离开了,即用户该次访问的浏览页面数为1,或者用户该次访问的停留时间小于10秒或5秒,就认为是Bounce,BounceRate即为用户在第一次访问站点的页面出现Bounce的比例;
ConversionRate:如果一个访问没有Bounce,那么就可以跟踪其访问足迹统计ConversionRate,即从上一步进入的访问率(CurrentVisits/PreviousVisits);
Entrances:Entrances一般用户衡量网站首页或第一次访问站点的页面进入情况;
ExitRate:可以作为每个页面的基本度量,衡量从该页面离开的比率,即该页面是整个Visits的最后一个页面;
OrderNumber:表单数量,系统产生的一次性提交表单的数量。一个表单中可能包括多个数据项;
OrderunitNumber:表单提交数量,最细到每一个数据项的表单提交数量;
Sales:处于预定时间段内的特定数据的汇总结果。
主题主要有:
全站情况
访客分析:转化漏斗,地域分布,移动设备;
流量与通路效能分析:全部来源,搜索引擎;
面内容分析:全部受访页,着陆页,单位数据项页,站内搜索;
数据项分析:品类分析,标签分析,单位数据项分析;
表单提交分析:表单确认分析,表单分析。
除了上述业务专家所提供的关键指标定义和主题及其所对应的指标集合知识外用户可以自由组合多种主题,从而得到其关于其自身多维度、立体的运行管理信息。依据已定义的用户指标以及[主题:[维度]]映射关系,周期性更新用户所需要的信息。这样用户每次都能够得到最新信息。
步骤ST304:存储业务数据
这一步主要是为图1中ST4展示引擎提供相关的数据,这部分数据由ST303所述定期更新。该数据与图1中ST4展示引擎相互协作,实现运行管理分析系统的功能。
图3是图1所示的运行管理分析系统实施流程中步骤ST4业务数据集群的处理流程图,实施过程中运行管理分析系统调用了千分点自主研发的高性能组件,主要包括:
(1)数据路由服务:
路由规则是根据路由参数选择路由算法定位数据源的接口,用来获取数据库连接。路由算法是实现多数据源的调度的接口,用于统计数据源使用情况,并根据算法进行淘汰和更新多个数据源,多数据源机制是一种管理多个数据源的机制,数据库连接的创建和销毁由数据库连接池及数据源进行管理,数据源的创建和销毁由数据源工厂进行管理。
(2)高速缓存机制:
在数据报告服务化的处理过程中,共有两处用到了缓存机制,报表配置信息的内存缓存和业务数据集群数据的缓存。
报表配置的前置处理器和后置处理器信息在配置文件中进行设定,配置文件记为data-context.xml。所有的配置文件由Spring框架的applicationContext进行管理。每个不同的报表请求的详细信息则存放在数据库中,当调用业务数据集群监听服务的初始化方法时读取这些信息并缓存到内存中。
业务数据集群数据的缓存则是调用业务数据集群的缓存模块进行缓存,业务主题编号由查询语句、数据库源的四个基本连接属性组成的字符串经过Md5生成编码值,采用spring的aop(面向切片编程)方式实现缓存处理。
进一步,为使本发明获得更好的发明效果,步骤ST4主要包括以下步骤:
步骤ST401:用户发起请求
用户发出展示请求,该请求会发送到报表配置服务器(chartServer);
步骤ST402:获取报表配置
解析用户展示请求需要2部分的数据:主题数据以及主题模板。运行管理分析系统采取前端展示与后端数据分离的体系,由报表配置服务器管理用户需要展示的模板,包括用户自定义模板。当用户发出访问模板请求,报表配置服务器将向数据显示模块发送用户所需展示的主题模板编号及对应的主题数据编号;显示模块收到主题数据编号后会通过业务逻辑模块向数据服务段发起访问请求。
步骤ST403:业务解析与数据异常处理
如图4所示,运行管理分析系统的业务逻辑模块由运行管理分析系统业务服务器与数据客户端组成,该模块主要完成业务解析与数据异常处理。业务服务器的主要任务是将显示模块的请求进行业务解析,根据约定的格式,将显示请求解析成数据请求指令并将该指令发送到数据客户端,同时负责接收由数据客户端返回的结果并将其处理成显示模块能直接显示信息。数据客户端的主要工作是向数据服务器发起访问请求并接收返回数据,同时加入异常处理处理机制,保证数据的合法性。
数据客户端的异常处理机制主要包括1.格式异常处理;2.访问异常;3.超时异常3种处理机制,其中1属于数据异常,2、3属于通信异常。当服务端返回数据格式与客户端要求不一致时会抛出格式异常,一般是由于网络传输出错引起的,解决方案是要求服务器重传。当数据请求没有得到全部的相关模块响应时会抛出访问异常,一般是模块之间通信出现故障引起的,这时会给服务器管理员提出维修请求,该情况发生概率相当小。当数据客户端向数据服务端发出数据请求长时间没有响应时,业务逻辑模块会向展示模块发出警告,一般是用户到运行管理分析系统服务器之间发生连接断开引起的,这时用户需要自行检查通信线路是否出现异常,该问题在网络重新连通后解决。
步骤ST404完成的工作是数据客户端从访问数据到从数据服务器接收数据,工作过程如图5所示:
步骤ST4041:数据服务器接受客户端请求
数据服务器接收到数据客户端的数据请求后会记录客户端识别号,确保返回路径,然后将请求主题编号发送至高速缓存集群。
高速缓存集群中存放的是最近访问过的业务数据,用缓冲列表管理已存的信息。缓存中存放的是系统近期已经访问过的业务数据,采用业务数据缓存能提升系统相应能力。
主题编号是数据库中标识数据块的号码,每个不同的主题会采用不同的标识码,属于不同用户的主题会标识不同的识别码,目的是方便数据块的管理。主题数据的模块化不仅提升数据的可维护性,也更重要的是大幅减少了数据查询的次数,提升了访问效率。
步骤ST4042:从缓存返回用户请求信息
如果高速缓存中列表中存在客户端需要的信息,则直接向数据服务器返回这部分数据。
步骤ST4043:从业务数据集群进行查询并返回用户请求信息
如果高速缓存中列表中没有客户端需要的信息,则主题编号会发送至数据路由中间件,通过数据路由确定所需数据在业务数据集群中的位置,并控制数据集群将主题数据发送至数据服务器,并将这部分数据的副本发送至高速缓存集群以备下次访问。
数据路由的原理与通信网络中路由器类似,都是以路由表的方式维护数据的位置,使用该策略使得数据查询突破了海量数据实现查询的瓶颈,同时提升了搜索速度。
数据服务器接收返回的数据,根据记录的客户端识别号,把响应数据发送到对应的客户端,数据传输流程结束。
显示模块接收到向数据服务模块请求的主题数据后,会自动进入渲染模式,调用展示模板,加入数据,生成展示结果供用户进行分析。至此一次访问结束,程序会进入监听模式,等待用户的下一次请求。
举例说明:
为了实现本发明的目标,本模块包含了对于一个数据实例的处理,主要包含以下步骤:
1.从各个数据平台网站获取数据,发送到运行管理分析系统的对外数据收发端,这时的数据是最原始的数据,格式根据具体数据平台而定,如:
2.从现在开始,数据就在运行管理分析系统里面运行了。所有数据在进行下一步操作以前必须先加入一个全局标识号,数据变成:
开始进行数据清洗,由于CT3的Feature2损坏,因此不能采用这方面的数据;CT5与CT4的时间戳一样,因此认为是重复数据,故去除。
经过归一化与规范化操作,数据变得更加紧凑。这时数据会经过序列化以及负载均衡,被切分成多个处理单元同时进行数据仓库写入操作。
集群机1处理序列:
集群机2处理序列:
3.经过清洗的数据会流向数据仓库进行存档,运行管理分析系统会把已处理的数据拷贝一份发到业务数据集群进行业务数据的重组。业务计算集群根据已制定的业务逻辑对数据进行处理,会根据已制定的主题以及主题对应的维度对现有数据进行拆分,详细指标及其定义前面已经描述。数据会转化成如下的[主题:[维度]]列表
例:
主题:访客分布
地区 |
时间 |
指标1 |
…… |
指标n |
北京 |
周 |
0.7 |
|
0.23 |
上海 |
月 |
0.539 |
|
0.6 |
广州 |
周 |
0.45 |
|
0.125 |
广州 |
日 |
0.002 |
|
0.94 |
注意,经过业务逻辑处理过的数据与处理以前的数据含义可能有所不同,这些处理后的数据会以数据块的形式存储到业务数据集群中。至此,生成业务数据的过程结束。
4.当用户需要调用主题查看具体的信息时,会调用相应的显示模板以及业务数据,详细的调用过程如图3所述。
例:用户A在显示端发出以饼图模式浏览主题访客分布的请求,展示端调用展示模块E向报表配置服务器发起访问请求,报表服务器通过查询模板配置文件以及数据配置文件,获得用户请求展示的饼图模板编号以及主题访客分布主题对应的数据编号后,把这两部分数据进行组合,返回给D。
展示模块将返回信息进行拆分,获得ExpressID(模板编号)以及DataID(数据编号)。展示模块将DataID发往业务服务器,让其作为代理访问数据服务模块中DataID对应的数据块。
如图4所示,业务服务器接收DataID后通过数据客户端E向数据服务端发起请求。如图5所示,数据服务器接收D的请求,并通过查询缓存列表确定DataID是否存在缓存中,如果有则把数据直接返回E;如果没有则通过数据路由,在业务数据集群中继续查找,再将查找到的数据返回E。
设DataID对应的数据为Dataset,E收到Dataset后,把数据转发回业务服务器进行数据的业务解析,解析后的数据会以json格式返回展示模块D。
D通过ExpressID调用展示模板初始化展示环境,然后把json格式的Dataset填充到模板中。D调用渲染模块,对模板进行可视化的转换,结果通过展示端显示。
显示结果如图6与图7所示:
图6展示了用户请求访问的,在时间段2012-11-14至2012-12-13内访客分布主题的相关展示内容。该图显示了访客分布主题包括的分析维度地区分布、时间分布和新老访占比,及其对应的评价指标:唯一访客数、页面浏览数、表单提交数、所提交的表单中特定数据的汇总数等。
图7展示了用户请求访问的,在时间段2012-11-14至2012-12-13内对主题设备中的设备类型进行展示。该图显示了分析维度访次、平均网站访问时长之间的结果对比。
至此,展示流程结束。
如图8所示,本发明的基于多个电商的数据进行信息推送的方法,包括以下步骤:
步骤801、获取数据平台的数据,并将收集到的多个数据平台的数据进行整合,其中将用户信息统一为全局唯一标识,将数据项信息统一为全局唯一标识;其中,整合后的数据包括数据平台的用户数据及数据项的原始数据,且整合后的数据包括对用户行为的多维度描述以及对数据项的多维度描述,并包含线上和线下的数据;
所述对收集到的多个数据平台的数据进行整合的步骤,包括:
对整合后的数据进行判别处理,并按照以下行为类目将用户数据进行归类并存储,其中所述行为类目包括用户浏览的页面,数据项,数据项所属的类目,当时的数据项设置,表单提交,表单确认,添加收藏和/或登录注册的行为类目。用户行为从传统的描述方式扩展为包含上述类目信息的方式,商品考核体系从传统的单品考核标准(如销量、利润率)扩展为包含上述类目相关信息的多维、立体的单品考核体系。
除了关键指标定义和主题及其所对应的指标集合知识外,客户可以自由组合多种主题,使其可以根据自身运营的需要,对商品进行细分,并对各个细分领域进行统一深入的了解和比较从而得到其关于其自身多维度、立体的运营信息。
使用定制过专家方法的专家处理系统将数据组织成多种原子属性,并以[主题:[维度]]分析表的形式存放于分布式集群中,而且这些属性能满足不同客户的需求,方便客户了解自身网站运营的信息。其中主题有:全站情况、访客分析、流量与通路效能分析、页面内容分析、商品分析、销售分析。
步骤802、对整合后的数据采用分布式处理框架的方式进行处理,并对整合后的数据通过归一化、规范化和数据清洗操作进行处理,其中归一化操作是指对数值数据进行归一化操作;规范化操作是指将数据结构化地组织,保持数据完整性并减少冗余,增进数据的一致性;数据清洗操作是指针对不完整数据、错误数据、重复数据进行数据清洗;
步骤803、提取处理后的数据并进行报表展示。
还包括:提取整合后的数据中通过报表配置信息的内存缓存和业务数据集群数据的缓存进行缓存处理,其中,
在配置文件中设定报表配置的前端服务器和后端服务器信息,配置文件为data-context.xml,所述配置文件通过Spring框架的applicationContext进行管理,每个报表请求的详细信息则存储在数据库中,当调用业务数据集群监听服务进行初始化时读取报表请求的详细信息并缓存到内存中;
业务数据集群数据的缓存是通过调用业务数据集群的缓存模块进行缓存,业务主题编号由查询语句、数据库源的四个基本连接属性组成的字符串经过Md5生成编码值,通过spring的aop面向切片编程方式实现缓存处理。
进一步地,所述提取处理后的数据并进行报表展示的步骤,包括:
接收用户发出的展示请求,根据该展示请求进行报表配置,其中,所述展示请求包括主题数据及主题模板,根据展示请求中用户需要展示的主题模板编号及对应的主题数据编号进行报表配置;其中,主题模板编号是数据库中标识数据块的号码,每个不同的主题会采用不同的标识码,属于不同用户的主题会标识不同的识别码;
接收到请求后记录客户端识别号,确保返回路径的正确,然后将请求的主题数据编号发送至高速缓存集群;其中高速缓存集群中存储最近访问过的业务数据,通过缓冲列表管理已存的信息;通过高速缓存集群能提升系统进行数据搜索的速度。
判断若高速缓存集群的缓冲列表中存在用户需要的数据,则根据客户端识别号将该数据返回给用户,并生成报表进行展示。
进一步地,所述提取处理后的数据并进行报表展示的步骤,还包括:
判断若高速缓存集群的缓冲列表中没有用户需要的数据,则将主题数据编号发送至数据路由中间件,通过数据路由中间件确定所需数据在业务数据集群中的位置,并控制业务数据集群将主题数据编号发送至数据服务器,并将该数据的副本发送至高速缓存集群备份;其中数据路由中间件通过路由表的方式维护数据的位置。数据路由中间件的原理与通信网络中路由器类似,都是以路由表的方式维护数据的位置,使用该策略使得数据查询突破了海量数据实现查询的瓶颈,同时提升了数据搜索速度。
进一步地,所述提取处理后的数据并进行报表展示的步骤,进一步包括:
判断若出现异常情况,则进行异常处理操作,其中,
判断若为数据格式异常情况,则要求服务器重传数据;
判断若为访问异常或超时异常情况,则发送维修请求信息。
所述提取处理后的数据并进行报表展示的步骤中,进一步包括:通过前端-后端独立控制体系进行控制,其中前端服务器负责控制数据演示的规则与格式,后端服务器负责控制演示数据的访问与响应。
本说明书中的各个实施例一般采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块或单元。一般地,程序模块或单元可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。一般来说,程序模块或单元可以由软件、硬件或两者的结合来实现。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块或单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其主要思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。