使用 Pentaho 将 SQL 查询结果集发送到电子邮件 ID

Send SQL query Result set to an email ID using Pentaho

我是 PDI 的新手,我正在尝试执行以下操作:

SELECT table_names FROM schema.table_details WHERE last_run_date < current_date

table_details 有关于不同架构中的所有表及其最后 运行 时间的信息。我想知道哪些表格今天没有更新,并将表格列表作为主题或电子邮件正文发送(我更希望它们作为主题或正文而不是文件)。

如何使用 PDI 执行此操作?

我试过使用 Set variables,但它只能容纳一行。

您可以逐步使用分组,使用 'Concatenete string separated by' 选项,值为 ${line.separator},这样您将有一行,包含完整的字符串。有了这个,您可以设置为变量并将 JOB 邮件步骤用作正文。

我以一种简单的方式实现了这一点,而不是为所有 table 发送电子邮件,我为所有 table 发送一封包含每日状态的电子邮件。

您可以通过两种方式执行相同的操作

方法一

  1. 在 table 输入步骤中使用您的查询

  2. 将跃点连接到 excel 输出,您可以在其中获得文件状态

  3. 然后您可以使用电子邮件步骤通过电子邮件发送与附件相同的文件。 (您想获取电子邮件内容中的信息,您可以使用 'load file content in memory' 流式传输数据并在电子邮件内容中传递变量)

方法 2。(如果您需要表格格式的电子邮件)

  1. 在 table 输入步骤中使用您的查询并使用 xml 输出提取

  2. 验证 xml 是否格式正确

  3. 使用 XSL 转换将输出更改为 html

  4. 将html作为变量的一部分传递

  5. 在电子邮件内容中传递变量