数据平台包括两个方面,一个是架构平台,包括各种系统的搭建与维护,例如hdfs/hive/spark等,另一个就是这次要是的,服务平台。
作用
数据仓库建设,数据使用的辅助/后盾。
对于外部用户(分析师,项目团队)来说,报表/元数据是重要的,通过这两个系统,可以很容易的知道数据的基本情况以及统计结果。
对于内部用户(数据团队)来说,调度系统/质量监控是必不可少的,调度系统可以让任务准时的完成,质量监控可以保证提前发现数据问题。
报表/查询系统
展示出来的数据才有意义。所以要把分析结果正确合理的展示出来,表格,图标,热力图,漏斗图,对于不同的数据用合适的方式展示出来,让数据理解起来更容易。
除了研发之外,分析师,数据pm,都需要自己查看数据。而离线/实时两种数据场景中,需要使用比如mysql/hive/kylin/druid/clickhouse等工具,对于用户来说,需要知道这四种平台的使用方法,所以需要一个统一的系统,除了例行报表的数据/图表展示之外,还要做到屏蔽不同数据引擎,让用户在一个界面轻易的查多个平台甚至跨平台的数据。
调度系统
保证任务的稳定执行。
众多计算逻辑,包括hql,Java程序,python程序,spark程序,需要在一定条件下顺序执行,可能是时间驱动:每天3点开始执行,可能是条件驱动:上游任务都执行完再进行当前步骤。在这个背景下,调度系统就产生了。
调度系统不仅能做到最基本的版本管理控制,控制任务按条件执行,对于数据系统来说,数据的修改往往伴随着一系列下游的任务执行,那么就需要有级连筛选执行的能力。另外,对任务的执行情况需要有监控,及早发现任务异常。
元数据
数据的说明书。
描述数据的数据,包括表的基本信息(表层级,说明,字段内容,建表语句,存储位置等),数据信息(数据示例,数据类型,枚举值列举举例,数值盒图展示),增长信息(日新增条数,数据量级),数据血统(数据流转路径)等。通过查看元数据系统,就可以知道表的详情以及作用。
数据质量
发现数据问题。
我们无法保证数据不会出问题,但是我们一定要先发现问题并排查原因。不要等项目发现问题了找我们问,这样就会比较被动。
通过以下方面对数据进行监控检查。
- 表基本数据
表大小,条数的同比环比 - 原始数据检查
日志数据是否符合规律,比如枚举类型的是否在已知值中,数值值是否超过常识。 - 多维分析
先全部然后逐渐细粒度的多维度同环比。查看哪个维度的什么值波动比较大。 - 跨数据源核对
同一个数据,在不同存储介质中(结果数据由hive倒入mysql),看两份数据的对比情况。
小结
在工具平台的共同努力下,更好的处理/使用数据,提供良好的数据服务。