kettle ETL数据集成开发
仰望星空的我
仰望星空,脚踏实地。
展开
-
使用Kettle连接动态分库
一、问题提出 在一个数据仓库应用中,每天新建一个MySQL数据库,以当天日期命名,如d_p20161201、d_p20161202等,并使用Kettle连接这些数据库做数据清洗和ETL工作。由于数据库是用脚本每天动态生成的,Kettle如何连接动态分库呢?二、解决方案1. 建立数据库连接,在数据库名称中引入变量。此时是无法连接到数据库的。2. 建立转换,用JavaScript步骤设置...转载 2019-02-03 16:51:26 · 1228 阅读 · 0 评论 -
Kettle之“获取文件名”
收到的需求是这样的:有几百个文本文件,每个文件内容的格式相同,都是有固定分隔符的两列,每个文件有几千行记录。现在需要把这些文件的内容导入一个表,除了文件中的两列,还要存一列记录对应的文件名。 作为一个搞数据库的,导入数据本来是小事一桩,可这有几百个文件要手工逐个处理未免太麻烦了,于是想起了Kettle。Kettle的转换处理数据流,其中有一个“获取文件名”的输入对象,可以使用它在导入文件数据...转载 2019-02-03 17:01:48 · 5184 阅读 · 0 评论 -
Kettle之“检查表是否存在”
想用Kettle实现一个非常简单的需求,从MySQL向Oracle导入一个表的数据,如果在oracle里表不存在,先建表再导入数据。这个功能看似非常简单,但对于刚开始接触Kettle的用户来说,可能会有些疑惑。Kettle的转化和作业中都有“检查表是否存在”步骤,但是如果要实现上述的需求,只能用作业,而不能使用转换。 在Kettle中,作业是串行执行的,只有前一个作业项执行成功才会开始下一个...转载 2019-02-03 17:03:34 · 2702 阅读 · 0 评论 -
Kettle使用教程 四 缓慢变化维度的处理方式
我们在ETL的过程中,就要考虑到缓慢变化维度的处理,对于缓慢变化维度,有三种情况一:缓慢变化维度第一种类型:历史数据需要修改,这种情况下,我们使用update方法来修改维度表中的数据,例如:产品的ID号码为123 ,后来发现ID号错了,需要改成456,那么我们就在ETL处理时,直接修改维度表中原来的ID号码为456图片.png二:缓慢变化维度第二种类型:历史数据保留,新增数据也要保留...转载 2019-06-21 17:41:18 · 893 阅读 · 0 评论 -
taskctl条件控制策略中时间窗口注意事项
最近在用taskctl时,发现错误重试没有重试,也没有忽略错误,流程就停止在那个地方了,后来咨询了相关人员才知道是我自己用的时候没有注意到细节。下面是我作业情况的一些截图。 我的想法是作业在0点50分执行,如果错误,重试3次,失败后忽略错误。 结果发现作业只执行了一次,没有重试,也没有忽略错误。 后来知道是因为我自己设置的时候不太理解时间窗口的意思,我这个地方设...转载 2018-06-06 10:04:38 · 339 阅读 · 0 评论