DataWorks实战2-业务流程的模块规划
数据仓库主要包含数据集成、数据计算、数据服务、数据质量、数据资产等模块。在数仓建设中,对数据开发者说最主要工作在数据集成和数据计算,这2块在Dataworks中都需要创建业务流程完成。正如一般流程开发一样,杂乱的业务流程会导致后期维护困难,如何规范业务流程的模块化,可以从以下几个点考虑:
1、数据通用角度。数仓的表分为维度表和事实表,维度作为度量的环境,在数仓中是一份基础的通用数据,一旦前期的维度表字段规划好后基本不会发生变化。
2、流程功能角度。业务流程从功能上可以分为数据集成、数据计算等。数据集成可以从接入方式、接入方法、接入周期、合并方式、合并方法、合并周期等角度去诠释,数据计算可以从数据域、业务过程等角度去诠释。
3、任务发布角度。Dataworks里的业务流程里需要配置"流程参数",该流程参数是作用于业务流程全局的,一旦发生修改,业务流程下的所有"数据任务"都需要全部提交,造成很多业务节点被动上线,加大任务审核人员的工作量。
基于以上考虑及实际工作实践,将业务流程划分为3大模块,并纳入到实际解决方案中:
1、公共维度
2、数据计算(按数据域划分)
3、数据集成
实际Dataworks界面大致如下:
1、公共维度:包含所有维度表的计算流程。解决方案中也命名为"公共维度"。
2、数据计算:{数据域}_{业务需求}。相同{数据域}的数据计算流程归入同一解决方案中,解决方案命名为{数据域}。
3、数据集成:分为数据同步、数据合并。一般使用binlog日志+首次直连全量同步方式完成数据同步,再通过增量数据+全量数据合并的方式完成数据合并。解决方案中也命名为"数据集成"。
数据同步:源端数据库数据通过binlog或直连的方式,数据同步到数仓,
命名:{数据同步}_{同步方式}_{接入方式}_{同步频度}_[同步工具]。
同步方式:增量、全量。
接入方式:RI(实时接入)、DI(离线接入)。
同步频度:小时、天。
同步工具:DW(Dataworks)、DTS等。
数据同步_全量_DI_DW:一般只有首次通过离线方式完成数据的全量同步到数仓,同步完毕后会将任务调度改为暂停。后续发生数据不一致时作为备用方案使用。
数据同步_增量_DI_小时_DW:通过离线接入增量日志,将离线日志接入到"小时分区"中。
数据同步_增量_RI_小时_DW:通过实时接入binlog日志,将binlog日志接入到"小时"分区中。
数据同步_增量_DI_天_DW、数据同步_增量_RI_天_DW:理论上也可以有这2类业务流程,但从扩展性来说小时的增量同步后期扩展性更强,建议不存在这类业务流程。
数据合并:将MaxCompute中的增量表、全量表按小时、天合并到全量表最新的分区里。
命名: {数据合并}_{同步方式}_{同步频度}
数据合并_增量_天:适合全量按天分区表。
数据合并_增量_小时:适合全量按小时分区表。
喜欢的朋友请帮忙点赞,谢谢大家!