本文主要介绍文本文件、csv、execl和PostgreSQL的批量数据加载。
1、文件文件到PostgreSQL的批量数据加载
COPY在 PostgreSQL表和标准文件系统文件之间 移动数据。COPY TO把一个表的内容复制 到一个文件,而COPY FROM 则从一个文件复制数据到一个表(把数据追加到表中原有数 据)。COPY TO也能复制一个 SELECT查询的结果。windows环境下需要从官方下载安装包进行安装,否则在kettle中会提示找不到psql命令路径错误,从而导致加载失败。
新建“转换”,选择输入组件中的“文本文件输入”和批量加载的“PostgreSQL批量加载”,如下图所示:
Kettle:批量数据加载_第1张图片
文本文件输入配置如下:
Kettle:批量数据加载_第2张图片
Kettle:批量数据加载_第3张图片
Kettle:批量数据加载_第4张图片
PostgreSQL批量加载配置:
Kettle:批量数据加载_第5张图片
注意:客户端路径指的是PostgreSQL的psql命令的路径。
2、CSV文件到PostgreSQL的批量数据加载
新建“转换”,选择“CSV文件输入”以及“PostgreSQL批量加载”组件,总览如下图所示:
Kettle:批量数据加载_第6张图片
CSV文件输入组件:
Kettle:批量数据加载_第7张图片
PostgreSQL批量加载组件:
Kettle:批量数据加载_第8张图片
注意:如果CSV文件里有number字段,则在组件里选择integer类型,否则它会出现带“.0”的值,这样插入过程会报错。但是执行转换还会成功,因为数据没写入表中,而是写入PostgreSQL的日志文件里了。这个日志文件位于postgres用户家目录的data/log文件夹下面。如下图所示:
Kettle:批量数据加载_第9张图片
3、Excel文件到PostgreSQL的批量数据加载
新建转换,选择“execl文件输入”和“PostgreSQL批量数据加载”组件,总览如下图所示:
Kettle:批量数据加载_第10张图片
Excel输入组件配置:
Kettle:批量数据加载_第11张图片
Kettle:批量数据加载_第12张图片
Kettle:批量数据加载_第13张图片
Kettle:批量数据加载_第14张图片
注意:对于源字段为number类型的,必须在这改成integer类型。
PostgreSQL批量加载组件配置:
Kettle:批量数据加载_第15张图片
执行结果如下图:
Kettle:批量数据加载_第16张图片