【Kettle】Excel/MySQL多数据源文件解决方案

【Kettle 多文件】Excel/MySQL文件传入解决方案

看完这章你会学习到以下内容:

1. 尤其在用Excel或者其他非数据库文件传入数据时候,如何做到数据类型同步?
2. 两张表的合并要添加那些字段作为辅助说明?

2.1 ETL时间,数据更新时间 以及 Source_data 数据来源


数据源一 : Excel表格
一共有以下几个字段

数据源二: MySQL数据 - srcsales数据库的sales_data表

第一步: 首先在目标数据库里建立目标表。
因此,我们要在MySQL上面找到相应的创建表和插入语句,操作与Oracle数据库相似。

选中表然后右击,转储SQL文件的仅数据和结构,导出SQL文件到ORACLE数据库

在打开来自MySQL数据库的创建表语句
修改无用字段,并更改数据类型

第二步:修改结果如下,全部转化成Varchar2和Number 数据类型。
注意:尽量将所属字段的长度设置大一倍,因为不同的数据库类型字符类型和存储不一,如果少了,则读取不成功。

这个就是以MySQL数据库创建表的数据类型,类似其他数据来源,CSV/Excel等可能格式存在不统一,因此,这里**建议统一按照数据库格式

第三步:在Kettle的Excel输入空间上,就直接更改数据类型!
**长度和精度就按照获取来自头部数据类型后,默认便可。

然后字段的名字,或许里面可以能一一对应(英文对照中文)
但是,Excel表里面的所有字段名字都转换为跟数据库的一致!

目的:就是在最后表输出的时候,能自动地匹配得到相应的字段,而不需要手动映射。

第四步:两个数据源都需要去重,但前提必须要排序。
因此 先排序后去重!

如果不排序,则会出现以下提示或者报错信息。

第五步:然后两个数据源都增加一个默认字段,数据来源Source_DATA.
请注意:这个名称一定要和最后在ODS层建立的字段名字一致(可以忽略大小写),要不然会出现SOURCE_DATA无法识别。

第六步:因为两张表都是上下形式叠加,就像SQL语句里面的Union all。
数据来源要指定紧接上一步的操作,而不是刚输入进来的数据源

最后一步,设置T,表输出。
这里就包括,输出到那一个数据库下那一张表(前提已经要建立好)。

注意: 第一次输入的话,就勾选裁剪表
(确保在输入进去前,先清空所有的数据)
然后选择获取字段,将多余的标志字段删去,原本用作标识共同连接的

把表字段和流字段下的d,用del键删除即可。
之所以要删除原因:因为在ODS层建立的目标表并没有建立这一列。

你可能感兴趣的:(kettle)