问题标签 [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.
pentaho - Pentaho Data Integration 动态连接(从数据库读取连接)
Pentaho 数据集成:CE 6.1.0.1-196
我是 Pentaho 数据集成的新手。我需要在多个数据库中运行相同的查询。我在 master 数据库中创建了一个表,用于存储来自其他需要查阅的数据库的连接信息。表结构下方。
样本数据
我的 .ktr 文件:
(set_variables.ktr)
表格输入--->复制行到结果
与输入表关联的查询在主数据库中运行。
(db_query.ktr)
表格输入--->表格输出
与表输入关联的查询运行 o(多个数据库)并将数据存储在表输出(主数据库)中
我的 .kjb 文件:
(run_for_each_row.kjb)
开始 ---> 转型 ---> 成功
转换文件名:${Internal.Job.Filename.Directory}/db_query.ktr
作业属性参数:
DATABASE_NAME JDBC_URL 密码用户名
(master_job.kjb)
开始--->转换--->每一行的工作--->成功
转换文件名:${Internal.Job.Filename.Directory}/set_variables.ktr
每行文件名的作业:${Internal.Job.Filename.Directory}/run_for_each_row.kjb
每行的作业...高级选项卡将以前的结果复制到参数->选中为每个输入行执行->选中
每行的作业...参数:DATABASE_NAME、JDBC_URL、PASSWORD、USERNAME
执行日志:
正在读取 database_connection 表中的数据
但我不知道我做错了什么,这些数据没有作为参数传递。
我很感激任何帮助,因为几天前我已经停止了这个问题。
我在 stackoverflow 和 pentaho 论坛上找到的示例对我没有多大帮助。
项目文件(https://github.com/scarlosantos/pdi)
谢谢
pentaho - 使用输入列表复制数据库中的行
我想根据列表复制数据库输入中的行。
输入:我有 JSON 字符串,它目前正在按字段在 db 中排序。
on 在数据库表中的字段保存为 startdate、modifiedon 和parts。但部分数据库中的值是“65”、“37”。我尝试的是拆分它,它应该在数据库中保存两行第一行部分值将是 65,第二行部分将是 37
当前的 :
应该怎么样。。
有人可以指导我吗?
pentaho - Pentaho | 工具->向导->复制表
我想将表从一个数据库复制到另一个数据库。我浏览了谷歌,发现我们可以使用 Spoon 中工具菜单的向导选项来做到这一点。
目前我正试图将一个表从一个数据库复制到另一个表中。
我的表只有 130 000 条记录,复制表需要 10 分钟。我们可以改进这个加载时间吗?我的意思是复制 100k 条记录,不应该超过 10 秒。
php - Pentaho:- 如何在 PHP 中运行 .kjb 文件
我有以下要求。
我们想创建一个 PHP 页面并希望从 PHP 页面运行 Pentaho .kjb 文件。如果我们点击 RUN 按钮,那么 PHP 应该调用 Pentaho,然后 .kjb 文件应该执行。
有人可以指导如何实现这一目标吗?
garbage-collection - Pentaho | 超出 GC 开销限制
我想将 xlsx 文件中的数据插入表中。Excel 有大约 1,20,000 条记录。但是在运行转换时,我遇到了以下错误:
超出 GC 开销限制
我已经改变了spoon.bat
。
但我仍然收到此错误。
有人可以帮忙吗?
pentaho - Pentaho | 森托斯
我在 Pentaho 数据集成部门工作。我们在勺子中开发了转换和作业。我们想在服务器上移动我们的代码,服务器是 Centos。
在 Centos 中,我们在安装 Pentaho 的 UI 时遇到错误。我们可以在 Centos 上安装厨房。
我们可以直接使用 Kitchen 运行我们的转换和工作吗?如果是,如何?
等待回复。
mysql - Pentaho JNDI ssh 隧道 数据集成 MySQL
我正在尝试使用SSH 隧道访问数据库服务器,凭据很好,因为我已经使用 SSH 隧道选项在 MYSQL GUI 客户端上对此进行了测试,我也刚刚使用命令行对此进行了测试,并且与服务器的命令行连接也可以使用以下两个命令行终端上的命令:
- ssh root@192.168.1.1 -L 3307:localhost:3306
- mysql -h localhost -P 3307 -u qstats -pPassw0rd 统计
但是当我尝试使用 pentaho 连接到数据库服务器时,它会给出错误
用户 'stats'@'localhost' 的访问被拒绝(使用密码:YES)
然后我使用了JNDI并在那里提供了凭据,但它仍然不起作用,我的 JNDI 设置如下:
星号/type=javax.sql.DataSource
Asterisk/driver=com.mysql.jdbc.Driver
星号/用户=qstats
星号/密码=Passw0rd
星号/url=jdbc:mysql://localhost:3307/stats
请问有人可以帮忙吗?
pentaho - PDI/Kettle:避免文件创建或映射(子转换)执行
现在很清楚,转换的所有步骤都是并行执行的,在 Pentaho 中无法改变这种行为。
鉴于此,我们有一个带有切换任务的场景,该任务检查特定字段(从文件名读取)并决定哪个任务(映射 - 子转换)将处理该文件。这是通用逻辑的一部分,在每个映射任务之前和之后,都会执行一些样板任务,例如更新数据库记录、发送电子邮件等。
问题是:如果我们没有“ACCC014”文件,则无法执行此转换。我知道这是不可能的,因为所有任务都是并行执行的,所以出现了第二个问题:在一些映射中,创建了 XML 文件。即使 Pentaho 使用空数据执行此任务,我们也无法找到避免创建 XML 输出文件的方法。
我们考虑将这个开关逻辑移到作业中,因为理论上它是串行的,但没有发现可以进行这种区分的条件步骤。
我们还研究了元数据注入任务,但我们不相信这是要走的路。每个子转换都做了不同的工作。其中一些更新一些表,另一些写入文件,另一些在不同数据库之间移动数据。它们都接收一些文件作为输入并返回一个 send_email 标志和一个消息字符串。没有其他的。
有没有办法做我们愿意做的事?或者没有办法重用基于默认输入/输出的部分逻辑?
编辑:添加 ACCC014 转换。是的,“不要在开始时创建文件”选项被选中。
pentaho-data-integration - 我想提高 pentaho 数据加载的性能
我有 400 万条记录,需要每天从源到目标加载数据,我们每天都在进行截断。大约需要 9 个小时,因为每天有 10 个表在加载 400 万条记录数据。你能告诉我如何提高性能。谢谢