3.5 数据管理系统
在对业务预测时,我们需要建立合适的模型,把历史数据输入模型中,进行预测,然后与真实数据对比,不断参数调优改进模型。这时候,数据的准确性和完整性等因素确实很重要。如果数据质量出现问题,就会导致结果偏差很大,甚至是错误的,也就是所谓的“垃圾进,垃圾出”
从各方面把控数据质量,前面介绍的建立指标字典就是保障数据可读性的基础。如果数据的可读性非常差,就会浪费很多的时间来分析数据,更严重的是在大数据平台中,难以满足各种业务应用场景下的需求与决策支持。
在过去、现在和未来,无论影响数据质量的因素发生什么样的变化,保证数据质量永远都是业务使用必须解决的问题。因此,对于数据产品经理来说,建立一个数据管理系统,对公司的业务发展显得至关重要。
3.5.1数据管理系统的质量检测
数据管理系统侧重于从时效性和数据一致性两大质量方向保证数据的可读性。
1.数据仓库的数据时效性检查
明确每天的每一个层级、每一个数据表的最早和最晚生成时间,发现影响当天数据生成延误的数据表,并能够通过数据管理系统回答以下问题:
当天MySQL表和Hive表中的核心指标是何时生成的?
有哪些表的产出时间比预期时间延迟了?
任务延迟的原因是由哪几张表造成的?
瓶颈在哪里?优化哪几层?哪几张表可以提高核心指标等的生成时间?
2.数据仓库的数据一致性检查
通过数据一致性检查,在数据质量视图的展现下,我们可以快速了解存在依赖关系的数据表的分维度数据变化情况。
因此,大数据管理系统项目需要做的事情主要分为以下几步:
第一步,建立数据依赖引擎,实现依赖图谱。依赖图谱用于构建数据仓库表之间的分层级依赖关系,然后存入MySQL表并能支持可视化展现。
第二步,计算数据准备情况。各个表、各个分区的数据准备就绪时间按天、小时级进行汇总。根据Hive 仓库的Meta信息可以获取Hive表各个分区的创建时间,根据创建时间确定数据的实效性,用来分析展现每天、每小时的状态和瓶颈。如果需要对MySQL进行验证则通过SQL语句查询的方式获取对应时间在MySQL中是否存在。
第三步,建立数据计算引擎。根据定义的小时级指标、天级别指标规则,结合数据表各个分区的准备就绪时间,调用Spark SQL计算核心指标。
第四步,建立数据比较引擎。根据表和表之间核心指标的关系、表和表之间的规则进行比较验证。例如,A==B,A+B==C,B/A < 0.95等逻辑判断。
3.5.2数据管理系统的功能
数据管理系统的功能主要分为数据流管理、任务管理、数据管理三大功能。
数据流管理,也可以叫血缘分析。单从字面上来看,它属于一种数据关系的分析,用来解释数据之间相互影响的一种描述。数据流管理,对于当前大数据背景下的数据治理具有十分重要的意义,它能让你快速了解数据组成结构,并制定有效的管理方式。
例如,有一天,我们发现大数据分析平台某个业务指标的数据没有产出,就要去查看到底哪里出了问题,是数据集市里的表、主题层的表还是基础层的表出了问题。而在更多的时候,数据集市的表会依赖多张表,那么这个排查问题的过程就会变得很麻烦,而且很浪费时间。
数据血缘关系会首先通过指标对应的库表关系,找出它所属的表,再根据计算关系找到计算过程中与它有关联的表,最终把整个链路上的相关表展现出来。
任务管理会对每天的任务执行情况进行管理,展现每张表的任务完成时间、任务延时情况以及延时的原因等,一旦任务出现问题,可以快速联系到数据表的负责人。同时,能够方便查看每张表的依赖关系、完成时长的历史情况以及表的字段信息,让整个大数据分析平台变得清晰易懂
数据管理功能会展现数据仓库表的信息,包括所属数据库、存储类型、负责人、产出状态、数据库地址、标签、备注、所属业务组等,并可进行查看和编辑操作。
以上只是数据管理系统应该具备的最基础的三大功能,还可以加入数据接入中的集群管理功能、数据指标字典管理等。
四、大数据分析平台实践
随着公司业务的不断发展,公司会积累大量各种类型的数据,这些海量数据如果没有得到有效的分析和利用,那么便不会对业务产生该有的价值。
通过大数据分析平台的名字就可以看出,它是由大数据+分析构成的,其实在大数据出现之前,BI(Business Intelligence,商业智能)就已经存在很久了,两者是紧密关联的、相辅相成的。
在大数据时代,企业会积累大量的数据,有前端的埋点数据,也有各种业务数据,通过前面介绍的数据仓库和大数据管理系统等方式,已经可以对数据进行有效的存储和管理了。然而,这些海量的数据并没有得到有效的统计分析和展现,并没有对业务形成有价值的数据支撑。
5.1 大数据分析平台应用实战
按照大数据分析平台的版本迭代路线,讲一下大数据分析平台建设的四个阶段:可拓展的报表分析平台(V1.0版本)、自助式分析平台(V2.0版本)、智能化分析平台(V3.0版本)、业务场景分析平台(V4.0版本)。
5.1.1可拓展的报表分析平台
提起报表分析平台,很多人还停留在后端接口查询数据库数据、前端页面展现数据这种传统的定制化的报表分析平台上。确实,公司在业务规模不大和人力不足的情况下,可以实现这种原始的报表分析平台,更准确地说,应该是指标展现页面。可是,这种传统的方式太定制化了,没有任何的可拓展性,如果增加一个指标,前端和后端代码修改的成本都比较高,可以毫不夸张地说,前者就像还停留在冷兵器时代的军队,只能招兵买马、堆积人力,辛苦和艰难程度可想而知。
为了提高大数据分析平台的可扩展性,终于找到了用实现QueryAdapter的方式解决问题,具体的方式就是通过前端配置JSON,并在API层下添加QueryAdapter层把API的接口翻译成相应的SQL,然后通过SQL查询具体的数据库,进一步提高前端的扩展性和报表的灵活性。上面的这一过程可以用如图5-2所示的架构实现。
5.1.2自助式分析平台
随着业务人员的需求的多样性不断增加,数据分析师和产品经理的业务需求应接不暇,而且有很大的沟通成本,面对上面的痛点,就需要为业务人员实现一个他们自己能够快速、方便搭建报表的平台。
自助式分析功能主要包含创建数据源、创建单图、创建看板
5.1.3智能化分析平台
一个完善的大数据分析平台,不仅仅是单纯展现数据的,更不是一些业务常用报表的罗列,还要能够为数据分析师、业务人员提供更多对数据的洞察,让数据更加智能化。例如,可以支持对数据进行多维度下钻、单图之间数据联动、对数据异常点进行标注、指标异常检测等功能,可以让使用人员方便、快捷地分析更精细的业务场景,实现从更多维度的数据出发去了解业务,让数据发挥更立体的价值。
5.1.3业务场景分析平台
大数据分析平台要更方便地服务于不同的业务场景进行数据分析,整理数据报告是数据分析师必不可少的工作,无论是周报、月报,还是新版本表现的分析报告,都需要在围绕报告目标的基础上,对数据整理、分析并提炼要点,最后形成一份有指导意义、易读且美观的数据报告。而这些报告,就是每个业务场景都会沉淀下来的一套固定的分析思路和分析架构,这套固定的分析架构就可以放在平台上实现,例如渠道分析、用户留存分析、用户活跃分析及日常的周月报等。通过分析模板,我们可以方便、智能地查看分析数据,提高效率。
5.2移动端大数据平台
对于一款移动端大数据分析平台而言,我们可以从产品定位、数据内容、产品结构、整体架构设计、其他一些局部细节问题等方面考虑设计。
1.产品定位
首先,它主要满足管理层和各方业务人员看数据的需求,因为这里面有一部分人经常出差在外,比较依赖于移动端获取信息。
2.数据内容
数据内容一般都是根据每个公司的业务情况设计的,即用户以什么样的思路使用,看什么样的数据。数据内容决定了产品如何组织目录结构,决定了产品业务上的指标架构。
3.产品结构
移动端的大数据分析平台,由于屏幕尺寸和操作的限制,要注意页面的样式和一些控件是与PC端很不一样的,主要以展现为主、操作为辅,要注意产品的功能性和易用性。在设计上,要遵循“Less is more”的原则,化繁为简,让用户快速高效地获取数据。
4.整体架构设计
系统的导航结构和页面的基本元素,构成了大数据分析平台的实体和结构。