问题标签 [pentaho-data-integration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
268 浏览

pentaho-spoon - Pentaho DI - 如何在下一步中将上一步的“所有”结果用作“IN”查询

我有来自数据库 A 中的表 A 的输入,我想加入到数据库 B 中的另一个表 B。

这是我的两个选择:

  1. 使用数据库连接:对于数据库 A 中表的每个输入,在数据库 B 中运行连接查询。
  2. 使用两个输入表(talbeA + tableB)并在键上进行合并连接。

我选择了选项#1,因为我想避免在 tableA 和 tableB 中完整阅读。

我的问题是:如何将上一步的所有结果用作一个“IN”查询?

例如

与(它为每个输入行运行的位置)

0 投票
1 回答
1689 浏览

java - 将值转换为 UTF-8 的问题

我在报告显示名称时遇到问题。我的应用程序使用不同的技术 PHP、Perl 和 BI Pentaho。

我们使用 MYSQL 作为数据库,我的表是CHARSET=utf8.

我的表存储在如下行中的值,这是错误的

PHP 和 Perl 使用不同的内置函数来转换存储在 DB 中的上述值,并在 UI 中显示如下,这是正确的

对于使用 pentaho 的报告,我使用 ETL 在报告中显示数据之前转换数据。为了转换上述数据库存储值,我尝试通过 Java 步骤转换数据,如下所示

但它没有正确转换值,在上述 2 个错误值中,只有Row2值被正确转换,但第一个Row1错误转换如下

请建议我可以正确转换值的方法,以便例如Row1值应正确转换为Áx—350

我写了一个如下的Java小程序来将Ãx—350字符串转换为Áx—350

上述代码的输出如下

如果我们看到输出,则实际预期输出为Áx—350的字符串是错误的。

为了确认编码/解码方案,我尝试在线测试字符串并使用字符串Ãx –350 进行测试,输出与预期的一样 Áx–350是正确的。

因此,请从这里任何人指出为什么 java 代码无法正确转换,尽管我使用了正确的编码/解码方案,其他任何我遗漏的或我的方法都是错误的。

0 投票
2 回答
1360 浏览

postgresql - 如何将 csv 字段值分配给在 Pentaho Spoon 中的表输入步骤中编写的 SQL 查询

我对 Pentaho 很陌生,所以我的查询可能听起来很新手。

我编写了一个转换,其中使用 CSV 文件输入步骤和表格输入步骤。我遵循的步骤:

  1. 最初,我在转换属性中创建了一个参数。参数birthdate 没有设置任何默认值。

  2. 我在表输入步骤中的 postgresql 查询中使用了这个参数,方法如下:

    /li>
  3. 我正在使用 CSV 文件输入步骤读取 CSV 文件。如何将 CSV 文件中存在的生日值分配给我在转换中创建的参数?

    (或者)

  4. 您能否指导我在不使用参数的情况下将 CSV 字段值直接分配给表输入步骤中使用的 SQL 查询的过程?
0 投票
1 回答
386 浏览

postgresql - Pentaho Kettle - 从不同的数据库中检索数据

我有一个场景,我从一个数据库(postgres)中获取数据并将数据加载到另一个数据库中的表中(Redshift)

无论如何在水壶中安排这项工作?

它是一个简单的insert into redshift select * from postgres

0 投票
0 回答
811 浏览

mysql - Pentaho Kettle (Spoon) - Delete Records

I'm trying to delete records in my target table based on whether the records exists in the source table. I tried using the 'Delete' step but then realized that this step is based on a conditional clause.

My condition is quite simple "if the record/row DOES NOT exist in table A [source] delete the record/row from table B [target]".

I also read about using the the 'Merge Rows (diff)' step, but that seems to scan/compare the entire set of tables for differences.

The table is several million records with many hundred columns on a MySQL server, I need to perform this in the most efficient manner.

Any help would be appreciated.

0 投票
0 回答
312 浏览

cassandra - 将 cassandra 与 pentaho 连接时获取架构信息时出错:: null

我在 Pentaho 数据集成中使用 cassandra 输入步骤,并尝试将 cassandra 与勺子连接。我收到如下所示的错误。

请帮我解决这个错误。

在此处输入图像描述

0 投票
1 回答
1213 浏览

pentaho - ETL 文件加载:今天创建的文件,还是尚未加载的文件?

我需要自动化一个将新数据文件加载到数据库中的过程。我的问题是关于以自动化方式确定哪些文件是“新”文件的最佳方法。

文件是从每晚同步的目录中检索的,因此文件列表不断增长。我没有删除已检索文件的选项。

新记录存储在原始数据表中,该表有一个字段指示每条记录起源的文件名,因此我可以将当​​前目录中的所有文件名与原始数据表中已有的文件名进行比较,并仅处理那些不在的文件名常见的。

或者我可以使用文件名中的时间戳,并且只处理自上次运行导入过程以来创建的那些文件。

我倾向于使用第一种方法,因为它似乎不太容易出错,但我没有太多运气来确定这是否真的是真的。通过将所有文件名与数据库中已有的文件名进行比较,以这种方式确定新文件的缺陷是什么?

0 投票
2 回答
6813 浏览

javascript - 使用 If 语句递增值

这是我正在尝试做的事情:

我有数据。这些数据是非结构化的,我试图让它看起来很整洁,以便我可以用它做点什么。

有一列称为“地址”。如果地址列的值为“ADDRESS”,那么我想做一个值取 1 的计数。如果它不是“ADDRESS”,我希望计数增加。

它目前的作用: 如果出现值“ADDRESS”,我的计数器将取值为 1,如果值不是“ADDRESS”但该值不会自行重置,则它会递增。它一直在继续,好像什么都没发生过一样。

我的代码:

除了上面发布的代码之外,我尝试过的方法无效: 我尝试创建一个数组并将其赋值为 1。如果“地址”列的值为“地址”,则数组返回值为 1 ,否则数组的值会增加。这与上面的效果相同,只是数字不同。

请帮助我理解我做错了什么,谢谢。

0 投票
2 回答
381 浏览

json - 如何屏蔽 json 字段中的选定值 - Postgresql 9.3 和 PDI

我有输入字段change_event(json 数据类型),看起来像

我的要求是在将字段加载到数据仓库之前屏蔽oldValue and newValue其中fieldName的位置。address,firstName, lastName, phoneNumber, and emailchange_event

我尝试使用Json Inputstep在 Pentaho 中执行此操作

在此处输入图像描述

之后我过滤fieldNameaddress,firstName, lastName, phoneNumber, and email. 掩码 (Postgresql MD5)oldValue and newValue值。然后尝试使用 Json 输出步骤将所有 fieldName 一起恢复。

在此处输入图像描述

在此处输入图像描述

但最终结果对于每个 .json 文件都有单独的 json fieldName, oldValue, and newValue

输出:

期望的输出:

如何获得想要的结果。提前致谢。

0 投票
1 回答
2839 浏览

pentaho - Pentaho Spoon OK, Pentaho Kitchen 错误

我目前在 Pentaho Spoon 5.4.0.1-130 上启动并运行了一项相当大的工作,但不幸的是,当我尝试在 Pentaho Kitchen 上执行相同的工作时,我不断收到错误消息:

我不知道会发生什么,所以任何帮助将不胜感激。

谢谢你的时间!