永洪科技咨询经理胡星煜:什么是真正的企业级自服务分析

2017.08.24 / View:

大家下午好,下午茶歇完了还有这么多人不容易,在座各位有哪些是负责技术的同事,所说的IT人员,有吗?大家举个手,不少。有哪些是负责业务部门的,就是业务需求的提出者,占比一半一半,剩下的可能还是合作伙伴。不管你是什么角色,只要你接触到这个数据圈子,你从事了这个相关的工作,肯定会了解到现在这个数据越来越灵活,传统的数据架构不能很或的支撑的,永洪自己提出了解决方案,首先企业级自服务数据分析,在永洪中是属于这一层,通过这一层我们底层技术基石,为个前端的应用进行服务,永洪也可以通过精细化的本级服务,帮助企业最终完成数据项目成功。

 

今天我的内容会分这么九及部分,首先是什么是企业级自服务数据复习,已经实现企业级自数据分析的挑战,以及永洪的平台和对它的实现。

 

首先了解一下什么是自服务数据分析,永洪把这个概成三部分,首先是数据探索自服务,指的就是业务人员在看到报表的时候,发现了一个数据变化,但是我们不一定知道是什么原因造成这次变化,我们可能会需要把这个数据和其他的指标进行对比,看看是不是别的指标影响我们这个指标的变化,可能会牵扯很多别的维度,进行对比,这不是静态报表能够实现的,需要看到数据进行交互的分析,进行多个数据的联动进行分析。

 

第二层叫报表开发的自服务,可能像业务部门经常会遇到领导周一早上开个早会,提出一个新的想法,不一定现有的数据报告能够做数据支撑,我们可能会有新的临时需求,需要打报告给IT人员,要进行开发,测试上线,看到的时候可能几周,几个月,两个月过去了,这样不能很好的响应数据需求的时效性,如果可以给分析人员自己使用,不要求有很高的IT机能,这样在是报表开发的自服,最后一点,数据准备的自服,一般在企业里面都是由技术人员炒作的,需要写很多的代码,每天会有很多的任务流,有这样的过程,在以前的过程中都是IT来操作这部分工作,业务人员很少能够真正上手,或者自己挑选什么样的数据这次拿来分析,或者什么样的纬度进行组合,永洪提出的分析,让这些数据准备工作,有一些业务人员,尤其对数据分析特别敏感,对数据底层结构有一定了解的同事可以进行自己的准备。

    

如果说一个企业能够实现数据的自服务,有什么价值?首先数据的自服务上线以后,可以大大的减少业务探索的试错的成本,以前很多新的想法,可能要考虑这个需求是不系要提这样的IT,很多流程会牵扯人力物力在里面,提出了这个需求,指标的组合不一定是正确的思路,过程中有很多的机会成本浪费。如果说我们能够实现数据的自服务,可以更好的帮助企业提升数据价值的释放,有高兴性。

 

我们也会遇到几个痛点、困难,业务人员在最终分析这些报表的时候,这些路径其实是不固定的,不固化的,我可能看到的是一个指标的下降,这个指标可能是在某个地区发生的下降,某个时间点发生的下降,这些流程是没有办法通过固定报表的流程来进行支持的,这对我们自服务分析提出很大的挑战,刚才提出了新的分析高高要提供给IT人员来开发,开发过程非常耗时耗力。有一个根源的问题就是第三条,数据模型和业务逻辑是混合在一起的,从事技术工作的IT人员都了解,一个业务需要出来,哪些纬度,哪些指标,提前把业务逻辑换成数据模型,这个数据模型肯定是提前需要用代码去加工的,之前看到很多企业为了应对需求,企业里面有成百上千个企业模型,当时有一个企业跟我们交流的时候说有一千个模型,这样造成什么问题呢?当有新的业务提出需求的时候,以前可能有能支撑需求的,如果企业内部发生人员挑战,新人进来根本不知道老的有什么制度,只好加新的模型在里面,只要业务需求一变化就提一个新的,有时候可能跑到第二天早上上班了,还没跑完,这也造成数据模型和业务逻辑分析的工作始终离不开IT人员的介入。

 

最后一点是不可预知的用户行为,和海量数据与高并发带来的性能挑战,从IT来讲,很难预估什么时候看报表,什么时候看汇总数据,什么时候看代价的数据,什么时候看代价大的数据,很难预估,随着数据量不断的增长,我们根据很多性能,不需要担心突发性的需求,现在数据量越来越大,分析的纬度越来越多之后,会出现性能瓶颈,我们看到很多企业会反应说,数据的报表,打开时间,或者进行多维分析已经不能满足业务用户的需求。

 

这个就是永洪自服务分析的平台架构,底层灰色的部分就是我们外部的数据源,它可以是我们企业提供的业务数据库,可以是数据仓库,可以是外部的数据源,数据接入进来之后,可以有建模整体的过程,我们会把相关的业务表格进行业务逻辑的关联,但是这个关联会区别传统的建模,传统的建模这一步会做一件事情,会汇总,我想看某各地区,比如说今年前六个月的数据变化,会把数据根据地区,根据月份进行汇总,这个汇总过程已经在建模里面,传统的架构里面设计好,永洪的建模不需要制定好是哪些维度哪些指标,你可以有上百个分析维度里面出现,可能是一个比较大的面,可以把明晰数据,我们的交易级的,或者账户级的数据同步到永洪自主研发的数据集市里面,最终在前台有机器查询,数据报告,或者深度算法的报告给业务员察看。

 

说到和产生架构的区别,以前要提前进行汇总的模块,永洪把它通过一个高性能的计算引擎承载了,可以把很多前一天晚上需要提前设定好教工模型跑批的业务,可能进行实时来计算,通过分布式计算,可以保证在百亿级海量数据下,进行秒级反应。永洪的做法是通过数据集化。我们通过数据的压缩来减少IO,降低内存CPU的开销,我们用分布式的计算,通过这些方式提高计算效率,同时永洪自主研发了内存计算,比如说我们做一些同比,环比些计算,我们在里面已经做了代码级的实现,同时在生成计算任务的时候,会考虑到各个节点计算过程的优化,可以把开销比较大的计算,可以减少数据传输消耗的资源和时间。

 

可以给大家看一下,最后我们能实现的过是什么样的,这个是永洪做好的分析高高,整个页面和上午获奖的分析报告相比的话真的不算什么,可以演示一下我们做实时交互的分析路径,中间有一个磁云,展示了各个机构某个指标的完成情况,哪个机构完成的指标越好,这个机构最后越大,我作为一个分析人员,我想知道为什么这个机构做的好,可以直接双击上面两行字,大家可以看到在其他的图表上,它到底属于哪一个分行,它的各项指标局部和总体的对比,还有他们的一些关键指标的数据都变成了我所选中的分支机构,它的一个数据情况,那就是说整个分析页面是可以进行实时交互、联动的。

 

同时看一下另外一个场景,还是刚才我们在对数据进行分析,发现这个分支机构有很多的客户,看是不是客户影响了指标的变化,这边有散点图,我们找到了一些高价值的用户,我可以直接用鼠标圈出他们,放大查看,这时候每个报表都变成我选中的用户的情况,可能看它的情况是什么样的,最后可以转化成业务角色的支持。

 

像刚才这样的分析报告开发的过程会不会很复杂呢?其实并不是,第一个例子里面磁云图,要制作它真的很简单,只需要把分析的维度和指标拖拽到发布上面,就可以声称一样的页面,就可以生成磁云图。这个展示的图表类型也很丰富,我们可以任意的探索、查询,可能现有报表不能支撑的时候,只需要拖拖拽拽中午的时候就可以完成这样的报表。

 

刚才有看到我有拖拽缝制机构或者指标到图表上,这些分支机构指标,纬度是怎么做的呢?是永洪可视化的方式可以快速的完成自己的观点,异常数据的过滤,不良的数章,拆分列,格式转化我们常用的功能,不再需要写代码,写脚本来实现,只需要鼠标的太拽点击,我们甚至可以把分析工作交给业务人员来完成。

 

刚才看到的是前端,用户看到的界面,在系统背后需要强大的逻辑来支撑,前面拖拽产生的计算量,永洪是怎么做的呢?首先是数据的框表来进行时下,永洪的数据模型不需要进行提前的最总加工,只需要跟业务相关的纬度都弄到一起,生成一个大宽表就可以了,从数据员,逻辑建模的过程,生成了逻辑模型,当前端有一些建模的时候不需要依赖底岑的数据员进行计算。

 

有的时候可能想开放一部分建模的工作业务人员,业务人员可能又不了解底层,数据仓库,或者业务数据库里面的结构,如何把自服务的数据建模真开放给业务人员来做呢?我们现在推出了一个Map-SideJoin,我们实现了分布式的数据关联,刚开始不做宽的建立,先把数据库里面或者底层数据里面分表先进行同步,在数据里面,之前有一些固定报表的模型,还有一些零碎的表格,当业务人员想选取哪些纬度、指标进行分析,可以通过刚才自服务拖拽,现在已经进入数据集市的表格进行组合,在前端发生请求的时候实时进行计算,本身表格关联是一个非常好的过程,永洪通过分布式的部署,可以把实时表切分成不同的子文件,分发到不同的节点上,可以跟不同的表格进行数据关联,我们可以做一个非常大性能的提升,可以实现现场实时表格的关联。

 

我们看到这种逻辑架构,部署的时候永洪是如何做的,我们整个产品会分成几种节点,这个图上看到的,其实右边的源泉看到的是数据源,是外部系统,方块的主机都是永洪的节点,会分成四种角色,一种是会发布请求,分散任务,还有进行数据任务的汇总计算,还有数据的抽取和用户访问,还有分工式数据的存储以及主要的计算任务,一般的如果我们说在亿级别的,几亿条的场景,每个节点不需要很高的配置,可能8核就可以支撑它的实时分析了。

 

如果我们与到更大量的数据场景,上千的用户的时候是什么样的,游侠放还是数据源,专门设立几个数据抽取的节点,这边设立三台专门负责数据抽取的,它可以保证说,我不需要晚上做这个任务,白天也可以对这个数据更新,更新好的数据会到MAP集群里面,每个节点里存了什么数据,原数据信息都会在最后的结点里面做一个记录,同时会有备份,保证系统可用的情况。

 

最下面是客户端的节点,所有客户可以通过浏览器达到应用,进行交互分析的时候,计算请求可以到这个节点,会生成最优的方案,方案发到Map节点上,进行查询、计算,还有本节点汇总的工作,最后经过粗总汇的数据进行最后的汇总计算,把汇总的结果传给客户端的服务器,就形成图表。

 

永洪为了支持自服分析还作其他的优化在实现的方案上,首先在企业内部不可能只有自服务场景,还有固定报表的场景,驾驶舱还有业务人员的多维分析,自服的分析需求,保证计算的时候不会互相抢资源。同时我们对大型的企业应用,可能会考虑到总有个别用户发出不合理的请求,如果发生不合理的性能,不管是谁都不不愿意看到,永洪这边哪个用户适合什么样的资源是可以配置的,不会用非合理性的操作影响我们的适用性。

 

我们也会对用户行为进行约束,什么样的场景适合在线进行使用,什么样的场景需要离线进行操作,举个例子,比如说很多用户希望有数据明晰的下载,导出百万级别的数据明细,显然不能把它再实时请求中完成,可以把请求放在后台进行数据的下载。最后还有一个用户行为审计,我们到底哪些人在什么时间看了哪些报表,用了哪些查询,查询了哪些数据,这些都有非常明确的监控页面,这是一些通用的需求,我们可以进行固化,或者找到一些复活需求找到查询的结果。开放给工作人员以后也会带来数据安全,我们需要对数据进行行列级别的数据管理及每一个指标什么人可以看到,每一个维度什么人可以看到,我们身处于不同的分支结构管理层级都不一样,什么样的报表什么样的模型可以进行控制,报表里面的每一个按钮都会对它进行控制,什么人都可以看到这些报表,哪些人可以下载,永洪都可以控制,来保证我们数据的安全。

 

最后像自服务分析这样的应用该如何推广,企业自服务分析,并没有刚才罗列的这么简单,真正要落地的时候还是比较简单的,用户习惯我们提供一些需求的IT,并不是目前一下子掌控自服务分析的功能和技巧,永洪也是考虑到用户的学习曲线和学熟悉周期,设计了循序渐进的自服务分析路径,永洪前期会进行用户使用人员的培训,告诉他我们哪些图表进行什么样的联动分析,可以进行数据的筛选,联动、钻取,用户习惯跟数据进行复习以后,可以对数据进行修改的权限,已经做好的数据报告业务员可以做一些修改,可以把新的存下来,不耽误之前的报告使用,可以在部门级别或者小组间进行传递。我们已经发现有一些业务人员除了给它准备好的数据之外,企业内部会有数据分析的科学家,或者业务人员有IT背景,或者已经对永洪平台操作非常熟练的用户,都会进行数据报告的工作。

 

为了帮助企业最后完成自服务分析,就像张经理介绍的,从数据架构,需求流程,运营方法,使用规范,推广策略上的全方位的支持。

 

今天我的分享就到这里,谢谢。    

Yonghong Z-Suite一站式大数据分析平台 —— 以卓越的数据技术为客户创造价值,实现客户成功。