数仓开发平台
1. 背景
数据仓库是存储各种数据的仓库,形同于事实当中存储货物的仓库,不可避免的存在“乱放”、“不不便存取”、“节约空间”等状况。在数仓开发的过程当中,发现只有标准的存在是不能齐全的防止数仓凌乱、品质不低等问题。有些状况可能是因为数仓开发人员标准不对立、认知不对立、需要效率与品质均衡等因素影响。那么以后的数据仓库都存在哪些问题呢,大抵如下:
- 代码不标准
- 命名不对立
- 代码版本迭代管理混乱
- 反复开发
- 跨层依赖
- 指标没有精确的定义
- 没有残缺的表、指标血统链路
- 查找数据艰难
- 调度编排不合理
- 存储与计算资源节约
- 模型设计不合理
- 数据与模型品质监控不欠缺
- 上下游数据感知滞后
- 保护老本高
- 元数据不对立
为了解决上述的这些问题,咱们采纳了平台化的形式来对立生产工具,把数仓开发的各个环节的标准做了线上的标准与对立,在保障数仓开发效率的根底上,同时做到老数仓体系的疾速迁徙。整体指标如下:
- 数仓开发标准线上化
- 指标、元信息、建模、物理表 各端元信息对立
- 调度主动优化闭环
- 无 SQL 化数仓建设
- 数仓地图
- 数仓表品质监控
- 批流一体化
- 老数仓疾速迁徙
- 数据治理
2. 数仓标准线上化
惯例数仓开发流程:
- 数据调研
- 数据域划分
- 明确统计指标
- 构建总线矩阵
- 标准定义
- 明确模型设计
- 汇总模型设计
- 代码开发
- 部署运维
数仓开发线上化流程
- 数据域治理
- 总线矩阵治理
- 模型建设:维度 指标 分区字段 其余
- 建模标准校验
- 审批上线
零碎整体尽可能把非业务相干的标准、调度、代码、资源管理做到尽可能的零碎托管,开发人员能够不须要关怀这部分内容,缩减开发流程,只须要专一到业务模型建设当中。并且因为标准的线上化、审批、数据品质监控等方面的性能,人造的帮忙开发人员晋升了数据品质与开发效率。
3. 零碎功能设计
整体零碎功能模块划分大抵如上图所示,性能阐明如下:
- 字典元信息管理 :该局部次要是对一些零碎的字典信息、业务库字典信息等相干内容的治理,包含我的项目空间、业务域、总线矩阵、业务字典信息、数仓分层信息等根本信息的保护;
- 维度建模治理 :这个局部是该零碎的外围功能模块,须要通过 sql 图形化编辑的形式,对新老数仓模型进行可视化建设,共事保护了改模型的各种分层信息、业务域、维度、指标、分区字段等各类元信息。在审批通过之后零碎后端性能主动创立表与保护表元信息,并依据建模逻辑主动编排工作与调度,自动化最优的执行我的项目空间下的有向无环图调度流程;
- 作业调度治理 :依据维度建模生成的作业工作,对相干工作进行最优状况下调度安顿,并且监控工作运行状况。该局部要满足高可用,分布式,可扩大等个性;并且能够反对多种计算与存储引擎抉择。
- 模型与数据品质监控 :这部分次要是对模型的品质进行汇总,大抵分为资源型监控、价值型监控、数据内容监控三个方面,并且在该功能模块下反对模型资源管理,分区保留工夫,冷热数据管理等数据治理等性能;
- 表与指标血统地图 :在零碎的治理下各类模型的元信息比拟全面和标准,在这个根底之上咱们就能够分层追踪表、指标的血统逻辑关系,并且能够通过图形化、文字化的形式表白指标业务口径逻辑。之前尝试过各种前置指标字典治理,成果并不现实,开发和业务人员保护老本都比拟大,所以这次采纳了反向追踪解析的形式通过理论模型来表白展现指标口径问题。在呈现指标问题的时候也能够疾速的找到指标逻辑,晋升问题排查效率;
- 自助剖析性能 :该模块次要是反对各种模型下的业务 BI 剖析的工作,通过图形化的形式展现模型剖析数据,可扩大性能生成各类 BI 看板,也能够间接对接到其余 BI 平台应用;
- 数据探查性能 :次要是实现上下游表的元信息监测工作,产生表字段等变更的状况,主动判断对上游影响大小,依据状况主动告诉上游相干表负责人,防止业务方改变未及时告诉所造成的数据问题。提前发现问题尽快解决问题,升高各种改变对数据的影响。
4. 零碎架构设计
零碎架构设计关键点:
- 数仓与存储 : 以 hive 数仓为根底,在此基础上能够扩大数据至 kylin 或者 clickhouse,以供下层自助 BI 剖析查问应用,晋升查问剖析效率,晋升用户体验;
- SQL 解析模块 :这个性能非常重要,须要完满的解析老的数仓 SQL 进行图形化展现与迁徙保护、并且须要高效的 UI 页面设计来表白模型 SQL 逻辑,从可视化、逻辑表白上都有更高的要求;
- 任务调度 :是保障模型每天可能稳固产出的要害模块,调度零碎能够应用开源调度零碎,进行二次开发来对接开发平台的工作生成与调度治理监控;
- 自助剖析模块 :基于模型开发元数据,生成各类数据集,对接 one-service 进行数据查问与展现。根底性能如下图,能够进行各种展现模式的开发与丰盛,以适应各种剖析场景;
- 模型与数据监控治理 :这个是很重要的一个环节,平常的状况是你开发了一个模型也就你的业务在援用,从模型价值与资源、数据状况上有没有相应的统计,没有一个正当的指标来监控表白一个模型的品质,所以对于模型要从资源型监控、价值型监控、数据内容上做到残缺的监控与定期的评估,正当形象优化数仓各层模型表。在此基础上提供数据治理的各种性能,升高资源的耗费,晋升数仓模型品质,达到高复用的状况;
- 数据探查 :次要联合业务库 mysql-cdc 的数据与数仓模型的上下游表信息来实时监控,上游表字段改变对上游的影响,及时的发现与揭示上游用户,用来防止数据问题,保证数据品质与稳固。
5. 总结
大数据基于数据这个方向根本分三个:1、大数据平台 2、数据仓库 3、数据中台产品。数据仓库是一个企业数据进行数据化决策一个最重要的基石,一个高质量的数据仓库会极大的晋升数据应用的效率,助力业务进行商业剖析与业务决策,升高业务不确定性,从而产生业务价值。有了高质量、模型正当、构造清晰的数据仓库能够大大降低各种应用老本,在此基础上也能更好的构建出好的中台产品。
数据中台产品:大抵能够分成 3 类,1、大数据平台的运维产品 2、面向开发提效的中台产品 3、面向业务应用的中台产品,数仓开发平台就是面向开发提效提质的一个中台产品,用平台的形式打造出一个高质量的数据仓库,这个是一个长期有价值的事件,是一个公司数据基建中的基石与根基。