Pentaho水壶:如何使用sql脚本步骤执行“插入...选择”?

时间:2010-11-15 14:55:00

标签: pentaho kettle

我发现了Pentaho DI,我遇到了这个问题:

我想将csv文件中的数据插入自定义数据库,该数据库不支持“插入表”步骤。所以我想使用sql脚本步骤,只有一个请求:

INSERT INTO myTable 
SELECT * FROM myInput

我的转变是这样的:

transformation

我不知道如何将来自csv的所有数据都注入“myInput”字段。

有人可以帮助我吗?

非常感谢:)

3 个答案:

答案 0 :(得分:5)

首次编辑SQL脚本步骤时,单击“获取字段”按钮。这将把参数(来自你的csv的字段)加载到左下角的框中。删除您不想插入的参数(字段)。

在你的sql脚本中编写类似这样的查询,其中问号是你的参数。

insert into my_table (field1,field2,field3...) values ('?','?','?'...);

选中execute for each rowexecute as a single statement复选框。这真的是关于它。如果您有任何其他问题,请告诉我。如果您提供样本数据,我会为您提供一个示例ktr文件供您查看。

答案 1 :(得分:2)

我认为你走错了路。您应该获得 cvs文件输入步骤和表格输出步骤。

正如rwilliams所说,在cvs文件输入步骤获取字段;更重要的是,在表格输出中有一个数据库字段选项卡。输入字段映射是正确的选择。猜测函数是惊人的。

此外,当目标连接Db服务器中不存在目标表时,系统可以生成目标表创建sql语句。

答案 2 :(得分:0)

使用以下代码 与cte as ( SELECT * FROM myInput ) 选择 * 进入myTable 来自cte;