[英]Pentaho Transformation “Execute SQL Statements” vs “Table Input” step
我是PDI / Kettle的新手。我需要执行类似于“ SELECT EMPID FROM Employee”的简单SQL select,并且需要将输出写入“ Microsoft Excel Output”作为报告生成的一部分。
转换流程:
执行SQL语句>> Microsoft Excel输出
执行SQL语句>>文本文件输出
表输入>> Microsoft Excel输出
表输入>>文本文件输出
谁能帮助我理解这些步骤的行为以及上下文/用例。
谢谢专家们在这方面的知识分享。 根据我的理解,“执行SQL语句”步骤用于执行DDL,DML之类的SQL语句,但是除了执行DML语句时受影响/受影响的记录数(统计)之外,它不会给输出流任何结果。
为了跟踪此统计信息,有一些可选字段,例如插入状态,更新状态,删除状态和读取状态,并且根据您的DML语句,我们可以给出字段名称和受影响的记录数将作为值写入该字段。 这可以在“转换执行结果”下的“预览数据”中注意到。
Execute SQL Statement
不提供任何结果。 其目的是使用DDL(数据定义语言)删除/创建/截断/更改表,以及DML(数据操作语言)插入/更新/删除行。
在对每个步骤进行编码之后,两项检查(以及其他检查)应成为第二种性质:
Output fields
)。 Preview
)。 让我解释一下pentaho pdi(水壶)的一个基本概念:水壶上的所有动作都是连续发生的。 如果没有行,将不会执行任何操作。 因此,如果您在转换开始时添加了一个generate row步骤,则其中一个哑行具有一些值,您将看到如何触发您的sql语句。
一目了然,pentaho在以下两个前提下工作:
1一切都是异步的
2每个动作都在行级别发生。 (无行,无操作)输入表步骤生成行,但是execute sql语句不是输入步骤类型,而是转换步骤,并且希望在此步骤之前已经生成行。 我认为这两个基本概念可以帮助您了解ketle的工作原理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.