使用PDI Kettle从.csv文件创建表

时间:2016-02-12 06:03:27

标签: mysql csv pentaho kettle pdi

我是PDI的新手,我正在使用PDI Kettle,我有40个.csv文件,列数不同,我想在单个转换中用这些文件创建表格,我使用了“CSV”文件输入“选择文件的步骤和”表输出“步骤创建表但是要从这40个文件中创建40个表我再次需要选择这两个步骤,所以有没有办法一次性创建所有40个表一个转变是可能的,请帮我一样 提前致谢

1 个答案:

答案 0 :(得分:1)

要在Pentaho中执行此操作,标准步骤有点涉及。要阅读CSV并获取标题,然后阅读数据,您需要使用 // start the server $Server = new PHPWebSocket(); $Server->bind('message', 'wsOnMessage'); $Server->bind('open', 'wsOnOpen'); $Server->bind('close', 'wsOnClose'); // for other computers to connect, you will probably need to change this to your LAN IP or external IP, // alternatively use: gethostbyaddr(gethostbyname($_SERVER['SERVER_NAME'])) $Server->wsStartServer('localhost', 9300);

首先使用列名读取标题,然后使用ETL Metadata injection读取另一个转换中的数据。

自动创建数据库不是直截了当的,因为Pentaho的主要开发人员不鼓励这样做。

以下是如何自动创建表格的答案和示例:Perform an auto CREATE TABLE to store the output of a transformation

因此,您将运行一个将文件名和表名传递给转换的作业。转换将使用ETL Metadata injection将CSV读入正确的字段,并使用ETL Metadata injection获取数据库的DDL以存储数据。