天天看点

ETL思想(2021-05-31)

工作中,接触到了数据处理,不过并没有直接使用到ETL在市面上的工具,部门中的一个小组基于kettle开发了一个可视化的便捷平台,我使用平台来进行数据的处理。

1.定期需要清理的数据,写好sql脚本,定时任务去清理。

2.不同库的数据,比如mysql,sybase,vector这三个数据库,我需要他们各自的数据,来做一个报表,这时推荐将临时表建于mysql中,因为mysql语法相对而言比较流行,更多的被熟知。

3.需要进行逻辑运算的数据,要将数据做成一个报表,有一些情况是不需要写code,直接用临时表和sql语句对数据进行处理,得到想要的结果也是可以的,这样的话,只需要一个脚本,就可以借助ETL工具完成一个excel报表。

4.需要定时更新的数据,比如你的代码里面有些数据因为MQ中间件发送失败导致数据没有更新到,这个时候可以通过update语句的ETL脚本,定时的将这些数据变成你想要的类型,比如字段result,更新为failed。

接触了ETL半年多,做了接近20个脚本,有生成报表的,有数据进行定时清理的,有定时发程序状态并集成到teams这个办公平台的,还有做过for循序理念的,因为ETL里面是根据顺序步骤来执行sql的,每一个步骤都有一个id,你还需要给一个步骤指定下一个id,这种模式就可以使得sql循环运行,这里要说一个功能,ETL还有一个判断的功能,可以判断临时表里面是否有数据,如果有数据,则执行哪一步,否则执行另一步,这就很像我们代码的if else,这就使得我们可以用ETL来实现很多的逻辑运算,而不需要通过代码,简化了开发任务,当然,前提是某一种适合ETL的场景下。

继续阅读