文 / 中国农业银行研发中心 常青 冯建
大数据平台处理数据内容和类型多样,目前缺乏能够分析和展示数据流动关系全貌的服务和工具,为数据开发、分析、运维各个环节带来困难:比如在模型设计时不了解存量数据的覆盖范围是否足够;在数据分析时无法直观查询数据的加工脉络;在数据运维时不知晓上游系统数据晚到会对下游哪些作业和系统产生影响等等。为解决上述困难和问题,本文针对大数据平台的实际情况,基于元数据创建了一种可串联起文件、作业、物理表、脚本等内容的技术数据全链路分析方法,支撑从源头文件到输出模型的跨系统跨层次全链路查询服务。
随着大数据平台的不断发展,累积数据的数量和内容也呈现几何式的增长。由于缺乏能够分析和展示数据流动关系全貌的服务和工具,用户在消费数据时会遇到无法知晓数据加工流程、无法了解上游数据会对下游哪些作业或系统产生影响等问题,给数据开发、分析、运维等工作带来困扰。传统的血缘分析仅仅涉及到该系统中存储的表数据,对于上下游中的脚本、文件、作业等数据无法提供数据链路分析查询服务;此外链路数据延伸范围较短,无法提供从数据真正入库源头到下游系统利用末端这样完整的数据流转描述。本文通过分析不同逻辑层次下的物理表数据、作业、脚本等元数据内容,创建串联起文件、作业、模型、脚本等对象的技术数据全链路分析方法,可为端到端跨系统跨层次的链路查询服务提供支撑,满足用户分层自助查阅数据链路结果的需求。
1.AntV G6
G6是AntV旗下的一款专业级图可视化引擎,它在高定制能力的基础上,提供简单、易用的接口以及一系列设计优雅的图可视化解决方案,是阿里经济体图可视化与图分析的基础设施。G6提供图的渲染、绘制、交互、动画等可视化基础能力,能够将复杂的关系数据以更低的视觉复杂度、更高的可读性呈现给终端用户。该引擎具有圆形、矩形、三角形和自动弯折的折线多边形等丰富的内置元素、多样的内置交互和易用的辅助组件。为支持业务中的流量分析、关系分析等需求还提供了图布局、算法、分析组件等图分析基础能力,能够降低视觉混乱,提高可读性。
2.CWM
CWM标准是OMG组织定义的数据仓库和相关系统的国际元数据标准,给出了各种元数据结构的标准定义。CWM标准的目的在于使数据仓库和商业智能软件的元数据在异构的数据分析工具、数据仓库平台、元数据存储库等系统之间进行交互。
3.元数据
元数据是对数据的描述信息,可以理解为关于数据的数据。系统中元数据泛指描述数据概念(Concepts)、数据间关系(Roles)、数据处理规则(Rules)的数据,其中领域语义(Semantics)和知识(Knowledge)也属于元数据的范畴。根据其属性的不同,元数据可分为技术元数据和业务元数据。
1.链路层次
按照CWM标准设计数据链路分析使用的元模型并定义其间的关系,如数据链路段、作业匹配规则、逻辑层次关系等,形成如下图所示的链路层次划分。用户获得的初始链路至少有四层,自顶向下描述目标数据的所属系统、逻辑层次、隶属实体以及对象自身,一个典型的数据链路会进行如下分层描述:
➣ 第一层描述当前请求内容涉及到的系统,展示链路最远延伸的范围;
➣ 第二层描述当前请求内容涉及到系统的逻辑分层情况;
➣ 第三层描述关联的文件、作业(脚本),并展示相应的属性信息;
➣ 第四层及以下描述文件转发以及脚本加工逻辑,并展示相应的属性信息。
图1 数据链路层次组织结构
2.分析原理
链路前三层相对较为固定,依靠数据预处理、大数据平台及集市等系统逻辑层次与实际调度作业之间的对应关系即可完成分析。比如,可将各链路分段中的作业按照下表对照关系进行分类,从而得出数据加工层次。
图2 数据链路概要分析映射关系示例
链路第四层及以下的内容需要解析大数据平台及集市脚本、预处理平台配置文件等来获取。元数据提供了对ETL脚本、配置文件的自动解析及分析能力,可对目标文件中的要素和对象进行拆解与再加工。
图3 数据链路细节分析要素类型示例
3.即时查询
数据链路查询目标入口是调度作业,通过作业关系图进行目标关联数据的上下游追溯。但用户提供的起始查询数据并不一定就是调度作业,可能是一张表,也可能是一个文件等等,因此需要对数据传输阶段和数据加工阶段进行链路拼接。下图表示的是源头数据入大数据平台时,需要对文件信息与起始作业信息进行的拼接过程。
图4 入平台方向数据链路信息的匹配
下图表示的是数据出大数据平台时,需要对调度作业与数据文件信息进行拼接,进而获知大数据平台服务的下游系统。
图5 出平台方向数据链路信息的匹配
4.数据来源
解析涉及的各类数据主要通过从相关源头系统提取的方式获得,对于无法自动抽取或对接的内容则由人工补录作为辅助手段进行补充。一般说来,ETL脚本可从代码库批量获取;作业与文件可从调度系统、监控系统等获得时点的增全量数据;人工补录可按照模板填写完成后,一次性导入。
图6 数据链路分析的基础数据来源
5.链路效果
用户通过关键字查询到目标数据,并以此数据为起始进行链路分析。初始分析结果仅展示与目标数据关系最为紧密的链路段,若用户对其它链路段感兴趣,可展开相应节点查看内容。
图7 数据链路默认展现与自助探查