问题标签 [kettle]

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 投票
2 回答
2196 浏览

etl - 有人知道 Pentaho Data Integration (Kettle) 连接器列表吗?

我正在对三个开源 ETL 工具 Talend、Kettle 和 CloverETL 进行比较。

我可以毫无问题地找到 Talend 和 CloverETL 的连接器列表。但是,我找不到水壶的那个。

有人认识他们吗?或者我在哪里可以找到他们?

非常感谢,

0 投票
1 回答
2249 浏览

pentaho - 将多个 DB-resultrows 放入一个流行

我有一个数据库表,我们称它为带有 id 的标题和一个名为“header”的字符串字段。数据库中另一个名为 subheaders 的表有两个字段,headerId 和字符串字段“subheader”。每个标题有 0、1 或 2 个子标题。我现在想使用 Kettle/Pentaho 数据集成来生成包含以下列的 Excel 输出:

我尝试了以下方法:“标题”上的表格输入,子标题1的“子标题”上的表格输入,子标题2的“子标题”上的表格输入。“数据库查找”是不可能的,因为这不允许我在 subheader2 的查询中排除 subheader1。

我的主要问题是我不能直接引用 SQL 语句中的流字段,而是必须依赖字段的顺序。第一个问号被第一个流字段填充,依此类推。

查询:对于“标题”表:

对于“子标题”表(连续 2 个表输入步骤):

任何想法,如何很好地解决这个问题?

感谢您的任何想法。

0 投票
1 回答
14494 浏览

mysql - 使用 Pentaho Kettle,如何在保持参照完整性的同时从单个表加载多个表?

需要将具有 100,000+ 条记录的单个文件中的数据加载到 MySQL 上的多个表中,维护文件/表中定义的关系;表示关系已经匹配。解决方案需要在最新版本的 MySQL 上运行,并且需要使用 InnoDB 引擎;MyISAM 不支持外键。

我是使用 Pentaho 数据集成(又名 Kettle)的新手,任何指针都将不胜感激。

我可能会补充一点,要求不禁用外键约束。由于我的理解是,如果数据库的引用完整性出现问题,当重新打开外键约束时,MySQL 将不会检查引用完整性。资料来源: 5.1.4。服务器系统变量——foreign_key_checks

所有方法都应该包括一些验证和回滚策略,以防插入失败或无法保持引用完整性。

再次,对此完全陌生,并尽我所能提供尽可能多的信息,如果您有任何问题或要求澄清 - 请告诉我。

如果您能够从 kjb 和 ktr 文件(作业/转换)中发布 XML,那将是 SUPER。甚至可能追查您在任何地方所做的每条评论/答案并投票给他们... :-) ...真的,找到答案对我来说真的很重要。

谢谢!


样本数据:为了更好地举例说明,假设我正在尝试加载一个文件,其中包含员工姓名、他们过去占用的办公室以及他们的职位历史记录,由选项卡分隔。

文件:

注意:单表数据库是完全规范化的(与单表一样多)——例如,在“John Smith”的情况下,只有一个 John Smith;这意味着没有会导致参照完整性冲突的重复项。

MyOffice数据库模式具有以下表:

所以在这种情况下。表格应如下所示:

这是用于创建数据库和表的 MySQL DDL:




我对选定答案的回应:

准备:

  1. <TAB>(a) 使用示例数据,通过更改为逗号分隔创建 CSV 。
  2. (b) 安装 MySQL 并使用 MySQL DDL 示例创建示例数据库
  3. (c) 安装 Kettle(它基于 Java,可以在任何运行 Java 的设备上运行)
  4. (d) 下载 KTR 文件

分步数据流:(我的笔记)

  1. 在 Kettle 中打开 KTR 文件,然后双击“CSV 文件输入”并浏览到您创建的 CSV 文件。分隔符应该已经设置为逗号。然后单击确定。
  2. 双击“插入员工”并选择数据库连接器,然后按照创建新数据库连接上的这些说明进行操作
0 投票
3 回答
17106 浏览

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

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

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

我的转变是这样的:

转型

我不知道如何从 csv 中获取我的所有数据以注入“myInput”字段。

有人可以帮助我吗?

非常感谢 :)

0 投票
2 回答
1463 浏览

etl - 在 Pentaho Kettle 中保留自动递增的列

在 Pentaho Kettle 中,假设一个人想要在两个相同的表 A 和 B 之间复制数据。如果有一个自动递增的列,在将数据从 A 复制到 B 时,是否有办法保留该列的值?自动递增列数据库的行为是特定的还是 Kettle 找到了一个通用的解决方案?

0 投票
1 回答
2699 浏览

batch-file - Pentaho Kettle - 批处理脚本不产生输出

我编写了一个非常简单的 pentaho 水壶脚本,当我从勺子 ide 启动它时它运行良好。它接收一个 csv 文件并将其写入一个文本文件和一个 xml 文件。但是,如果我使用 pan.bat 作为批处理作业运行它,它不会创建或更新它应该创建的任何文件。我将它作为 xml 运行(不是通过存储库)

这是命令:

这是这个输出:

这应该创建/更新几个文件,但没有任何反应。有任何想法吗?

0 投票
3 回答
3584 浏览

python - 数据识别、解析、过滤和转换——GUI?

寻找基于非云的开源应用程序进行数据转换;虽然对于刚刚为数据转换而构建的杀手级(我的意思是杀手级)应用程序,我可能愿意花费高达 1000 美元。

我看过PerlKapow KatalystPentaho Kettle等等。

Perl、Python、Ruby这些显然是语言,但找不到任何仅用于处理数据的框架/DSL;这意味着它们真的不是一个很好的开发环境,这意味着没有用于构建 RegEx、输入/输出(CSV、XML、JDBC、REST 等)的内置 GUI,没有用于测试行和数据行的调试器——它们是也不错,只是不是我想要的,它是为复杂数据转换而构建的 GUI;也就是说,如果 GUI/app 文件采用脚本语言,而不只是存储在一些人类不可读的 XML/ASCII 文件中,我会很高兴。

Kapow Katalyst是为通过 HTTP(HTML、CSS、RSS、JavaScript 等)访问数据而设计的。它有一个很好的 GUI 用于转换非结构化文本,但这不是它的核心价值,而且太贵了。它可以很好地遍历文档命名空间路径;猜测它只是后端的 XPath,因为语法似乎是相同的。

Pentaho Kettle为大多数常见数据存储的 INPUT/OUTPUT 提供了一个不错的 GUI,并且它自己处理数据处理;没关系,只是学习曲线很小。Kettle 的调试器还可以,数据很容易看到,但是错误和异常没有与输出线程化,没有办法真正调试问题;这意味着您无法重新加载输出/错误/异常,但能够查看系统反馈。话虽如此,Kettle 数据转换是 _______ 好吧,只是说它让我觉得我一定错过了一些东西,因为我完全困惑于“如果不可能,就用 JavaScript 编写转换”;嗯,什么?

那么,有什么建议吗?请意识到我并没有真正指定任何转换,但如果您真的使用产品进行数据处理,我想知道它;我猜,甚至会出类拔萃。

不过总的来说,目前我正在寻找一种能够处理 10-100 列的 1000-100,000 行的产品。如果它可以分析数据集,那就太酷了,这是 Kettle 的一个功能,但不是很好。我还想要内置单元测试,这意味着我能够构建数据控制集,并运行对控制集所做的更改。然后,我希望能够在构建转换时选择性地过滤掉行和列,而不改变构建;例如,我通过转换运行数据集,过滤结果,然后在下一次运行时,这些数据集在第一次“逻辑”出现时自动被阻止;这反过来意味着要“查看”的数据更少,并且每次增强迭代的运行时间都会减少;如果像我一样,那将是疯狂的好 d 过滤掉应用程序正在跟踪的行/列,(并且输出被过滤掉)。并进行单元测试/突出显示任何更改。如果我进行了会影响应用程序日志的更改,并且它能够基于我“打破分支”来跟踪单元测试 - 它会给我一个警告,让我转储存储的数据分支......和/或跟踪下一代输出差异的主键,甚至尝试使用模糊逻辑匹配它们。是的,我知道这是一个白日梦,但是嘿,我想我会问,以防万一那里有我从未见过的东西。

随时发表评论,我很乐意回答任何问题,或提供更多信息。

0 投票
1 回答
561 浏览

etl - 将流与不在流中的表输入记录合并

我正在尝试对一组患者数据进行复杂的 Kettle 转换。我有几个表输入步骤查询将患者行组合成流的 MySQL 表。每个表格输入步骤都附加一个“患者阶段”列(例如“PreOpScheduled”和“PostOpScheduled”)。

现在我需要选择不属于其他表输入步骤的患者表的所有行,并将患者阶段列设置为“活动”。这些行需要附加到流中以进行进一步处理。

“从不在患者阶段流中的患者中选择”

0 投票
1 回答
583 浏览

kettle - 使用任何转换将选定值从一列交换到另一列

我有两列名为amountwork数据格式如下:

我想交换同一行中的 23 和 85597 的值。你能给我一个合适的解决方案吗?

0 投票
1 回答
122 浏览

kettle - 即使我们在勺子中执行预览数据选项,数据也会在数据库中生成

有人可以建议我最好的办法来克服这种情况。我使用的是kettle 4.1.0社区版,这里当我想预览转换表输出的spoon中的数据时,当我点击预览数据选项时,即使我们不执行运行转换,数据也会直接在数据库中生成选项..我该如何克服这个问题..

问候 kiran kumar.g