Hadoop技术博文|马蜂窝数据仓库的架构、模型与应用实践( 四 )


文章图片
Hadoop技术博文|马蜂窝数据仓库的架构、模型与应用实践
文章图片
2.任务调度平台
我们使用Airflow配合自研的任务调度系统 , 不仅能支持常规的任务调度 , 还可以支持任务调度系统各类数据重跑 , 历史补数等需求 。
别小看数据重跑、历史补数 , 这两项功能是在选择调度工具中重要的参考项 。 做数据的人都清楚 , 在实际数据处理过程中会面临诸多的数据口径变化、数据异常等 , 需要进行数据重跑、刷新、补数等操作 。
我们设计的「一键重跑」功能 , 可以将相关任务依赖的后置任务全部带出 , 并支持选择性地删除或虚拟执行任意节点的任务:如果选择删除 , 这该任务之后所依赖的任务均不执行如果选择虚拟执行 , 则会忽略(空跑)掉该任务 , 后置的所有依赖任务还是会正常执行 。
如下是基于某一个任务重跑下游所有任务所列出的关系图 , 选中具体的执行节点 , 就可以执行忽略或者删除 。
Hadoop技术博文|马蜂窝数据仓库的架构、模型与应用实践
文章图片
3.元数据管理工具
元数据范畴包括技术元数据、业务元数据、管理元数据 , 在概念上不做过多阐述了 。 元数据管理在数据建设起着举足轻重的作用 , 这部分在数仓应用中主要有2个点:
(1)血缘管理
血缘管理可以追溯数据加工整体链路 , 解析表的来龙去脉 , 用于支撑各类场景 , 如:支持上游变更对下游影响的分析与调整监控各节点、各链路任务运行成本 , 效率监控数据模型的依赖数量 , 确认哪些是重点模型
如下是某一个数据模型中的血缘图 , 上下游以不同颜色进行呈现:
Hadoop技术博文|马蜂窝数据仓库的架构、模型与应用实践
文章图片
(2)数据知识管理
通过对技术、业务元数据进行清晰、详尽地描述 , 形成数据知识 , 给数据人员提供更好的使用向导 。 我们的数据知识主要包括实体说明与属性说明 , 具体如下:
Hadoop技术博文|马蜂窝数据仓库的架构、模型与应用实践
文章图片
Hadoop技术博文|马蜂窝数据仓库的架构、模型与应用实践
文章图片
当然 , 数仓工具链条中还有非常多工具 , 例如自动化建模工具 , 数据质量管理工具 , 数据开发工具等 , 都已经得到了很好地实现 。
Part.5
数仓应用——指标平台
有了合理的数仓架构、工具链条支撑数据研发 , 接下来 , 就要考虑如何把产出的数据对外赋能 。 下面以马蜂窝数据应用利器-指标平台 , 进行简单介绍 。
几乎所有的企业都会构建自己的指标平台 , 每个企业建立的标准都不一样 。 在这个过程中会遇到指标繁多、定义不清楚、查询缓慢等问题 。 为尽量避免这些问题 , 指标平台在设计时需要遵循几大原则:指标定义标准 , 清晰 , 容易理解 , 且不存在二义性 , 分类明确指标生产过程简单、透明、可配置化指标查询效率需要满足快速响应指标权限管理灵活可控
基于以上原则 , 马蜂窝的指标平台按照精细化的设计进行打造 , 指标平台组成架构如下图:
Hadoop技术博文|马蜂窝数据仓库的架构、模型与应用实践
文章图片
其中:数据仓库是指标数据的来源 , 所有指标目前都是通过数据仓库统一加工的指标管理包括指标创建与指标元数据管理:数仓负责生产并创建最核心、最基础的指标;其他人员可以基于这些指标 , 按照规则进行指标的派生;元数据管理记录指标的具体来源路径 , 说明指标的数据来源是数仓表 , 或者是Kylin , MySQL或ES指标字典对外呈现指标的定义、口径、说明等 , 保证指标的透明化及可解释性数据服务接受指标的查询请求 , 针对不同场景判断查询的成本 , 选择最优链路进行指标查询 , 并返回指标查询的结果多维查询将可以提供查询服务的指标与维度通过界面呈现 , 用户可以基于维度选择指标或基于指标选择维度 , 查询具体需要的数据权限管理贯彻始终 , 可以支持表级、指标级、维值级别的权限管理


推荐阅读