对于数仓开发团队而言,业务和数据的调研完成后,大部分时间花在模型设计、SQL代码开发、建任务、配置任务依赖、配置任务调度等工作上。
而这些工作中除了模型设计和SQL代码存在业务上的差异外,其他一个个建表流程、建任务流程、上下游依赖配置、调度配置等基本是重复性操作,且这些操作还是在不同模块中各自完成,非常影响数仓建设效率,加大数据实施成本。
基于上述问题,我们在考虑:模型设计完成后,能不能自动批量生成SQL加工代码呢?能不能自动批量创建加工任务呢?能不能自动建立任务间上下游依赖呢?能不能自动批量设置任务调度信息呢?以上流程能不能全自动化一键完成呢?
我们的回答是:当然可以!
网易数帆EasyData大数据平台模型设计中心,提供了模型设计、建表审批、主题域划分、模型建设评估等能力,在此基础上我们推出了「AutoETL」的新功能!
AutoETL顾名思义就是将传统数仓的ETL工作进行自动化。平台支持用户下载AutoETL模板,下载模板后只需要填写表结构信息、表间关联和字段加工规则、任务信息、任务依赖关系等内容,上传Excel模板到平台。
平台自动解析Excel内容并完成一系列建表、SQL代码生成、任务自动创建、依赖关系和调度信息自动配置等功能,全面解决用户大量重复性工作。
为了让您对AutoETL功能有更直观的了解,接下来介绍一下AutoETL的演示案例。
本次案例主要以DWD表为例,演示如何填写Excel内容,并实现自动批量建表、代码生成、任务生成等整体流程。
进入模型设计中心,选择模板并下载Excel。您可以根据自己的表所属分层来选择合适的模板,本次以创建DWD表为例,故选择了“批量建表&离线开发任务(DWD、DWS、DIM、ADS)”模板。
Excel中需要填写本次批量创建的表和任务相关信息。其中“表列表&任务列表”Sheet页需要填写表基本信息、离线开发任务的基本信息、任务调度信息、任务依赖信息等,方便后续批量自动创建任务,如下图所示:
表详情sheet页则需要填写字段信息、表间join关系、字段加工规则(如有需要)等,如下图所示:
Excel的内容填写完成后,就可以上传到平台中,上传流程如下:
上传成功的Excel文件,会自动解析出表列表,用户可批量提交建表工单。(也可按需提前配置建表免审批)
批量建表完成后,用户可查看DWD表DDL,DDL内容是从Excel中解析生成的,如下所示:
建表完成后进行下一步批量自动创建离线加工任务,在任务列表可以查看每个任务的SQL加工代码、任务调度信息,如下图所示:
用户查看SQL和查看调度弹框如下,内容均来自Excel解析:
本次案例中基于Excel文件自动生成的DWD表的SQL代码如下:
insert
overwrite table demo.dwd_trade_fsp_clientprefer_0403
select
o.serial_no,
o.customer_id,
o.operate_date_time,
o.question,
o.risk_answer,
date_format(current_date() 'yyyy-MM-dd') as dt,
from
(
select
o.serial_no,
o.customer_id,
o.operate_date_time,
o.question,
o.risk_answer
from
demo.ods_trade_fsp_clientprefer_0402 o
where
o.operate_date_time = '${azkaban.flow.1.days.ago}'
) o
join (
select
d.serial_no
from
demo.dwd_trade_fsp_clientprefer_0403 d
) d on o.serial_no = d.serial_no
离线加工任务创建成功后如下所示:
离线开发任务批量自动创建完成后,可以前往「离线开发」模块查看任务、SQL代码、调度信息和依赖信息等,任务页面如下所示:
以上就是以DWD表为例,演示了批量自动建表、自动生成SQL代码、自动创建离线任务、自动配置任务调度和依赖信息等的整体流程。
除了上述功能,AutoETL还支持灵活设置字段加工规则、引用参数组等。我们希望通过AutoETL工具能帮助数仓开发提升数据实施效率,如果AutoETL对您有帮助,欢迎联系和试用哦~