最近接到一个需求,txt文件比较大,直接打开txt直接卡死。现要将txt文件导入到数据库。期间遇到一些问题,在此做个分享。
a.数据源:
首先准备一份数据源,txt文件,内容格式为(没有表头),源数据总共有100条数据。
001,M
002,F
003,M
...
092,F
093,M
094,F
095,M
096,F
097,M
098,F
099,M
100,F
b.设计转换
用kettle工具新增一个转换,实现将txt文件的数据load到数据库表.
、
文本文件输入:当你的数据源为txt格式文件, 就使用 文本文件输入组件
表输出: 要设置数据要存到哪个数据库哪张表
文本文件输入组件, 几个设置,开发的时候也是卡在这里:
1.设置文件
2.设置分隔符,这里的分割符存的是16进制,上面的txt文件列与列之间用逗号分开,每行以换行符结尾。逗号对应的16进制为 2C
3. 由于txt文件内容没有表头,所以增加2个字段,增加的字段数跟txt文件的列数一致。比如,txt文件有两列,那么就加2个字段。
表输出组件设置,双击表输出,弹出如下的界面。
说明: 数据库连接: 点击右边的新建可以新增数据库连接。
目标模式: 数据库目标表对应的属主。
目标表: 就是新建的表名字。这里测试新建的表名为scott.tb_txt 。
sql>create table scott.tb_txt(id varchar2(100),gender char(1));
提交记录数量: 写入1000条记录,commit一次。不同的数据库可以调整。
c.保存转换,启动转换。点击下面的标记的,会提示你保存,然后启动。
d.测试验证:
查看数据库验证: 100条数据全部写入。测试验证ok。
select count(1) from tb_txt;
COUNT(1) |
100 |