1、本次体验点
1.1 对接的数据库及业务系统
做企业数据仓库系统,ETL是关键的一环。ETL是英文Extract-Transform-Load的缩写。通常企业构建数据仓库是独立于生产系统的,而且在装载生产系统数据源时候会面临着多源异构的复杂数据环境。过去我们用Shell 脚本通过linux的crontab进行计划执行。虽然可以满足数据仓库数据定时装载要求,但一旦数据源接口众多且数据格式标准存在差异时整个Shell 脚本的调度逻辑就会显得很复杂而且出错时候也不易定位问题。FineDataLink 是帆软公司开发一款适用于企业数据仓库ETL的工具系统,这次为了测试FineDataLink功能,进行ETL脚本测试:
源系统:设备管理系统 MySQL;目的系统:数仓的MySQL数据库。
1.2 体验功能点
一、 测评功能点:参数赋值
解决场景:将设备管理系统指定项目部工单数据,通过参数赋值形式抽取到数仓中
体验成果:
1 新增参数赋值节点,从项目信息表中抽取指定项管部下项目部信息
2 参数赋值的进行输出参数选择
3 数据同步节点,选择数据来源
4 运行结果如下图所示
功能评价:FDL的参数赋值是一个很灵活的抽取数据的方法,在数仓构建业务中有很多是需要根据参数进行装载的工作。有了参数赋值功能,通过传参数到数据同步节点SQL中,可以按业务要求进行数据抽取。
二、数据关联
解决场景:测试数据转换功能节点,将生产库中工单事实表关联项目部维表在原始数据列上增加项目信息。
体验成果:
1 DB表输入-工单事实表
2 DB输入表-项目信息维度表
3 数据关联-关联DB表-工单和DB表-项目表
4 DB表-输出
功能评价:
在数仓基础数据装载过程,需要对事实表数据栏位进行补充形成适用于数仓的宽表的形式。FDL数据转换节点中的数据关联功能,可以将生产库中“窄表”按数仓要求进行“宽表”的扩展,这是典型ELT应用场景。
三、条件分支
解决场景:按项管部将设备巡检数据装载到对应的数仓临时表,测试FDL的条件分支装载能力
体验成果:
1 通过参数赋值节点获取项目部参数信息,传递到循环容器中
2 在循环容器中设置循环遍历对象
3 条件分支节点-配置各运行分支运行的条件
4 在数据同步节点,配置装载的源表和目的表。(最后一个缺省默认装载条件需要在写入方式中设置为“直接将数据写入目标表”才可以按预期正确装载数据)
功能评价:
总体上FDL的条件分支功能可以满足数仓按业务条件进行数据装载到不同表单的需求。对于多参数的条件装载需要通过循环容器循环实现,这点要注意使用要求。
四、SparkSQL
解决场景:通过SparkSQL统计各总承包和项管部所属项目部数量交叉表输出结果
体验成果:
1 获取项目信息
2 执行Spark语句进行行列转换
3 输出到目的表
功能评价:
ELT功能中需要对源表的数据格式进行转换方便数仓使用,FDL中集成SparkSQL可以比较容易实现数据列的转换,非常适用于数仓表单的构建。
五、任务包调用
解决场景:调用巡检数据、工单数据、短信信息任务。验证FDL包调用形式进行数据装载
体验成果:
1 配置调用任务A
2 配置调用任务B
3 配置调用任务C
功能评价:
在实际数据仓库ETL装载过程中会涉及到多个调度任务。通过调用任务功能可以将ETL任务集中到一个任务包中执行,这样ETL任务脚本开发和集成工作会更加方便。
2、产品体验心得
这次测试FDL的参数赋值、条件分支、SparkSQL、数据转换和任务包5个功能点,总体上效果还是满足数仓ETL构建的需求的。FDL将ETL和ELT功能需求整合到一起可以大大提升数仓ETL脚本的开发效率。从总体上看FDL基本上延续帆软产品家族的特点,并在ETL和ELT上进行定制使其满足数仓构建需求。如果在ETL性能监控上对FDL功能进行改进将更能满足ETL脚本日常运维的需要。
3、结尾
ETL是企业数仓构建的关键环节,帆软FineDataLink 作为一款面向ETL的开发工具,更好完善既有的帆软产品线规划,使其从数据报表设计延伸到数据准备阶段,希望FDL越做越好提升企业数仓建设效率。 |