『数据』马蜂窝数据中台起步建设:数仓的架构、模型与应用( 四 )


接入时 , 只需要填写数据表信息配置 , 以及具体的字段配置信息 , 数据就可以自动接入到数据仓库 , 形成数仓的 ODS 层数据模型 , 如下:
『数据』马蜂窝数据中台起步建设:数仓的架构、模型与应用
图片

2、任务调度平台
我们使用 Airflow 配合自研的任务调度系统 , 不仅能支持常规的任务调度 , 还可以支持任务调度系统各类数据重跑 , 历史补数等需求 。
别小看数据重跑、历史补数 , 这两项功能是在选择调度工具中重要的参考项 。
做数据的人都清楚 , 在实际数据处理过程中会面临诸多的数据口径变化、数据异常等 , 需要进行数据重跑、刷新、补数等操作 。
我们设计的「一键重跑」功能 , 可以将相关任务依赖的后置任务全部带出 , 并支持选择性地删除或虚拟执行任意节点的任务:
· 如果选择删除 , 这该任务之后所依赖的任务均不执行;
· 如果选择虚拟执行 , 则会忽略(空跑)掉该任务 , 后置的所有依赖任务还是会正常执行 。
如下是基于某一个任务重跑下游所有任务所列出的关系图 , 选中具体的执行节点 , 就可以执行忽略或者删除 。
『数据』马蜂窝数据中台起步建设:数仓的架构、模型与应用
图片

3、元数据管理工具
元数据范畴包括技术元数据、业务元数据、管理元数据 , 在概念上不做过多阐述了 。
元数据管理在数据建设起着举足轻重的作用 , 这部分在数仓应用中主要有 2 个点:
1)血缘管理
血缘管理可以追溯数据加工整体链路 , 解析表的来龙去脉 , 用于支撑各类场景 , 如:
· 支持上游变更对下游影响的分析与调整;
· 监控各节点、各链路任务运行成本 , 效率;
· 监控数据模型的依赖数量 , 确认哪些是重点模型 。
如下是某一个数据模型中的血缘图 , 上下游以不同颜色进行呈现:
『数据』马蜂窝数据中台起步建设:数仓的架构、模型与应用
图片

2)数据知识管理
通过对技术、业务元数据进行清晰、详尽地描述 , 形成数据知识 , 给数据人员提供更好的使用向导 。
我们的数据知识主要包括实体说明与属性说明 , 具体如下:
『数据』马蜂窝数据中台起步建设:数仓的架构、模型与应用
图片

当然 , 数仓工具链条中还有非常多工具 , 例如自动化建模工具、数据质量管理工具、数据开发工具等 , 都已经得到了很好地实现 。
五、数仓应用——指标平台
有了合理的数仓架构、工具链条支撑数据研发 , 接下来 , 就要考虑如何把产出的数据对外赋能 。
下面以马蜂窝数据应用利器-指标平台 , 进行简单介绍 。
几乎所有的企业都会构建自己的指标平台 , 每个企业建立的标准都不一样 。 在这个过程中会遇到指标繁多、定义不清楚、查询缓慢等问题 。
为尽量避免这些问题 , 指标平台在设计时需要遵循几大原则:
· 指标定义标准、清晰、容易理解 , 且不存在二义性 , 分类明确;
· 指标生产过程简单、透明、可配置化;
· 指标查询效率需要满足快速响应;
· 指标权限管理灵活可控 。
基于以上原则 , 马蜂窝的指标平台按照精细化的设计进行打造 , 指标平台组成架构如下图:
『数据』马蜂窝数据中台起步建设:数仓的架构、模型与应用
图片

其中:
① 数据仓库是指标数据的来源 , 所有指标目前都是通过数据仓库统一加工的 。
② 指标管理包括指标创建与指标元数据管理:数仓负责生产并创建最核心、最基础的指标 。
其他人员可以基于这些指标 , 按照规则进行指标的派生 。
元数据管理记录指标的具体来源路径 , 说明指标的数据来源是数仓表 , 或者是 Kylin , MySQL 或 ES 。


推荐阅读