在搭建BI(商业智能)系统时,通常有两种选择:一是选用市面上的BI产品;另一种则是自建BI系统。直接购买BI产品相比自建BI系统的优点是:能快速使用、更加成熟、节约成本。但伴随业务的发展壮大,场景的复杂化,最终都需要自建BI系统。
自建BI系统主要有两大优势:先是数据安全,然后,更重要的是它更能贴近业务场景。而通用的BI产品,通常很难追踪深入行业背景下的业务问题,更多是展示一堆报表,而不能直观的得出结论,还需要分析人员结合报表分析才能得出结论。
那如何搭建行业背景下的BI系统呢?
主要分为两大步骤:首先通过需求分析深入业务,明确系统解决的问题;然后,结合业务,整理源数据,制定指标和算法,设计展现形式,最后完成数据分析的设计。下文结合实例,详细讲解如何搭建行业背景下的BI系统。
需求分析
BI系统在设计时,很多时候都没有明确的需求的。如果有明确的需求问题就要简单很多了,这里以我负责的医美Sass软件举例。
在设计之初我们调研和走访客户时,客户都表明需要数据分析系统的需求。但是具体需求客户也不明确,只是希望看到某些数据的统计。所以,我们需要深入行业中,找到客户所面临的问题,挖掘客户的痛点。
首先应该明确在行业背景下,BI系统需要满足那些需求。结合业务,BI系统需求主要有下面几类:监控问题、发现问题、找到问题原因、预测与决策支持。
我以医美Sass系统举例,我们挖掘到的以下4点需求:
销售的工作是否积极?
能发现销售额未达预期问题。
能找到销售额未达预期的根本原因。
能预测销售额。
这四点需求只是整个需求池的一部分,我以这四点需求来阐述整个BI系统设计过程。
需求分析主要分为三步:场景分析、用户分析和业务分析。
1. 场景分析
根据调研和用户访谈(调研和访谈不是本文重点,不展开讨论),针对上面四点列举出场景故事:客户某天发现发现本周的销售额未达到预期,然后通过查看销售人员和经销商等营销数据,以帮助客户确定原因,并解决问题。
2. 用户分析
需求中角色主要有客户、销售人员和经销商。客户是该BI系统的使用者,销售人员和经销商主要是系统中数据产生者。在分析相关角色,做出ER图(非重点,不贴图了)。
3. 业务分析
客户公司的销售和经销商在进行行业活动时,会使用Sass软件,Sass软件会将相关的销售数据记录下来,推送到BI系统中。
客户使用BI系统时,BI系统会将数据进行处理,将脏数据处理成干净的数据。然后对数据进行分析,最后得出结果,通过可视化系统直观的展现出数据分析结果。同时,结合业务场景给出预警提醒。
在业务分析时,需要分析需求和业务之间的关系,选取代表需求结论的指标值。恰当的数据指标能帮助用户更好地解读数据,得出结论。这主要依靠于产品经理对于业务深入了解和行业的熟悉程度。
以下为业务分析后所得功能清单:
数据分析系统设计
通常产品经理在完成业务分析,得出功能清单后,就可以开始着手原型的设计。但在BI系统设计中,完成业务分析后,更重要是完成数据分析系统的设计。
数据分析系统是整个BI系统的灵魂。在设计数据分析系统时,我们需要与技术人员紧密合作,特别是在数据源选取和相关的算法。
这就对BI产品经理提出了更好地要求,要熟悉统计学和数据分析的常用算法,同时对数据要有一定敏感性。
数据分析系统主要含有四个部分:数据采集、数据处理、数据分析、可视化系统,其对应着功能清单的系统列。
1. 数据采集
数据采集主要是:搜集数据分析所需要的原始数据。
B端产品数据来源,主要分为:系统内数据和外部数据。
外部数据根据具体的场景和业务,可以是外部推送数据过来,也可能是系统通过调接口或使用爬虫去主动采集。当然,外部数据也可以直接通过Excel等载体直接导入。
系统内数据,一般是通过埋点来获取数据。某些场景下,也需要去读取并分析现有的日志数据。
数据采集,最重要的选取合适的源数据。这就需要产品经理对行业有很深的理解,对业务有透彻的分析。所选取的字段一定是和业务存在很大的相关性,或者是重要的影响因素。一旦选取数据产生差池,整个BI系统的根基就坏了。
下面为针对本文需求案例选取的数据字段,来源就略过了。
数据采集到后,会存入到数据仓库或数据集市。
2. 数据处理
数据处理主要做数据清洗和数据格式转化。
数据清洗主要包括检查数据一致性,处理无效值和缺失值。数据清洗需要根据源数据的产生场景处理,可以剔除异常数据、纠正异常数据和补齐缺失数据。
本文的例子,采用的就是剔除异常数据。如果需要纠正和补齐数据,需要使用算法来进行补齐。相关算法有好几种类型,我们需要了解其优缺点,再结合我们的源数据特征来选取合适的算法。我常用插值法和K最近距离邻法来进行数据异常纠正和补齐。
数据格式转化,主要是保证数据的一致性。通常是将相同分析算法的数据,转化为相同的存储格式,将数值型数据转换成相同的计量单位。
3. 数据分析
数据分析是BI系统的核心,通过统计和数据分析算法,监控和查找问题。
数据分析的流程是:根据业务分析选取的指标值作为输出结果,再利用处理后的数据,选取合适的算法,进行分析。
选取算法时,需要技术人员通力合作,明确业务特点,选取最适宜的算法。BI系统的数据源可能会发生变动,所以在算法选取时,需要考虑一定的扩展性。
根据本文的需求分析,系统在进行数据分析时,主要做两个工作,预测和数据对比。
数据预测,可以选择简易平均法、移动算法、指数平滑法、线性回归法、Logistic回归等。因为我们的数据是一组数据与时间的集合,所以比较适合选择多元线性回归。
还有一些更高级的算法,暂时不讨论。数据对比,可以直接通过可视化系统对比即可,比如:针对销售是否异常,可以将实际销售额与预期销售额通过折线图,进行图标对比。
需求中有判断员工是否积极的需求。这类较为抽象的需求,就需要针对「积极性」设计评估模型。针对该需求,采集到数据主要销售数据、咨询数据、日常工作数据。三个数据中,销售数据的权重最高,日常工作数据最低。然后结合数据字段拟定出模型公式。
最后,将以上算法和模型整理成便于阅读的文档,就完成了数据分析系统的设计。
4. 可视化系统
可视化系统,主要是通过图表,将相对复杂的数据和分析结论,直观的展示给客户。
BI系统的可视化系统设计流程:确认数据和指标值->对数据和指标值按场景分类->根据数据选取展现形式->更具展现形式设计页面布局->完成页面设计。
以本文需求为例:可以将数据可视化划分为销售人员积极性监测、销售额预测对比、销售分析(发现销售额异常原因)。
其中,积极性检查可以使用列表或排行榜展示,用色块对销售人积极性标识,也可以折线图描述销售人员积极性变化。
销售额预测可以直接使用折线图。销售分析,由于数据类型不同,可以选取多种展示形式,比如:竞争对手店铺分布数量和分布,可以用地图散点图表示。选取展现形式的原则就是简洁、已读、要点明确。
完成形式选取后,就可以开始布局和原型的设计。完成原型设计后,可以正式进入系统的开发工作。
最后
完成可视化系统设计后,并不代表我们产品经理的工作结束了。一个优秀的BI系统,还需要使用真实数据调优,不断迭代系统,通过导入真实数据,运行系统,来进行系统的优化。特别是算法和模型的一些参数,都需要结合实际数据来找到最优值。甚至在某些时候,模型或算法的缺点,只有在真实数据和实际业务场景下才会暴露出来。
一个优秀的BI系统,需要帮用户发现问题,并找到问题根源,甚至于直接解决问题。
比如本文所举的案例,在此我可以列举一个帮助用户找到问题的场景:
某天,用户收到报警,销售额比预测值低了很多,然后查看销售人员工作情况为正常。同时,又收到经销商销售报警,某个区域经销商销售额锐减,而且发现竞争对手在该区域经销商数量陡增。
这个场景中,就帮助客户发现问题,并找到了问题的根源:某区域竞争对手经销商快速扩张。
在我之前做的产品中,还有一个BI系统结合广告投递的案例。该案例中,BI系统分析出已消费的人群标签,然后接入三方广告平台平台,进行精细化、自动化广告投放。该案例不仅仅是分析数据,还深入到了解决问题的层次。
一个完整的行业背景下的BI系统,应该具有哪些功能?如下脑图:
CIO之家 www.ciozj.com 公众号:imciow