ETL(kettle)实战三:数据抽取规范

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wfl_137724/article/details/81604555

写在前面:上一篇谈到的规则及这一篇谈到的规范都是本人的经验总结,不代表一定正确。

kettle开发规范:

1. 对于会发生变化的因素要用变量替换,不能写死。根据需求严格区分在未来哪些有可能变化的,哪些一定会变化的及哪些是不变的,如做增量数据抽取时,增量的时间范围未来就是有可能会发生变化的。通常情况下数据库是一定会变化的(开发环境和测试环境及生产环境通常都是不一样的),变量要控制作用域,即合理的用全局变量和局部变量,上篇有简单介绍。常用的变量因素有:数据库、文件路径、时间范围。

2. 文件夹命名要友好。如项目project的数据抽取文件夹有../project/job/、../project/transformation/、../project/sql/、../project/files/。分别存放数据抽取的任务脚本、转换脚本、sql脚本和要用到的源文件,如果区分全量和增量还需要在加一层,用../whole和../increment区分。之所以这样是防止脚本过多放在一起不容易区分,导致误操作可能性大。

3. 就近原则,表对表抽取,只用转换做纯sql做不了的事。sql脚本能解决的就用sql脚本,且如果能用外部文件的方式,一定要用外部文件的方式。因为转换是通过内存处理,然后才去操作数据库,而sql是直接操作数据库,性能上会有提升,而且sql维护渠道比较多。

4. 文件抽取到数据库,一次性的不要用kettle。定时更新的可以用kettle。简单的用文件转换步骤,就上一篇截图中的各种输入文件步骤,复杂的用java代码,(下篇的ftp会详说,日志不会输出文件条目数,需要自己建日子表记录)。

结语:规范其实是根据自己的喜好定的,不一定适合其他人。规范只针对本人用过的,实操过的功能,还有很多没用到过得功能都没有写,等以后用到了在补上。如果你看到此文,并且有想法欢迎留言。

猜你喜欢

转载自blog.csdn.net/wfl_137724/article/details/81604555