将 Pentaho Kettle 集成到 Java 应用程序时,为什么 MongoDB 输出不起作用?
When Integrating Pentaho Kettle into a Java Application, Why is the MongoDB output not working?
我是 Pentaho Kettle 的新手,我使用的是最新版本 6.0。我在 Spoon 中创建了几个简单的转换和作业。
我有一个作业 运行 是一个转换,它只是从 CSV 文件中提取数据,向每一行添加几个字段,然后将这些行发送到 MongoDB。我还有一个错误步骤(Write to Log)来自 MongoDB Output 步骤。
Spoon 中的工作和转换 运行 完美,所有行都出现在 MongoDB 中。
然而,当我从我的 Java 应用程序 运行 作业时,一切 运行 都完美无缺,除非它到达 MongoDB 输出步。所有行都转到 Write to Log 步骤并且没有记录任何错误。
当我取出 Write to Log 步骤时,仍然没有错误记录,也没有行写入 MongoDB。
我的类路径中有一个 MongoDB 驱动程序,还建议将 Kettle 根目录中的 类 文件夹放入我的类路径中,因为 MongoDB 是一个 OSGi 插件。这个我做过。但是,我仍然没有将数据输入 mongodb.
进一步的研究表明 MongoDB 插件在 Apache Karaf 实现中是 运行。我是否需要 运行将我的 Java 应用程序作为 Karaf 容器中的插件与 MongoDB 插件一起使用,还是有更简单的方法?
找到解决方案
我需要包含 VM 参数 -DKETTLE_PLUGIN_BASE_FOLDERS=C:\util\kettle\data-integration\system\karaf\system\pentaho 其中 C:\util\kettle 是我系统上的路径。
注意:MongoDB 插件在 Apache Karaf 上是 运行。 Pentaho 似乎将他们的新插件放在这个新文件夹中,而不是 data-integration\plugins 文件夹中,因为他们从 Apache Felix 迁移到 Apache Karaf。这也是 VM 争论的原因。
我还需要确保以下 jar 在我的类路径中:
元存储,
commons-beanutils,
commons-digester,
commons-logging,
commons-vfs,
js(犀牛),
奥格纳尔,
日志4j,
联机,
番石榴,
commons-codec,
扫描注释,
javassist
pentaho-metaverse-api,
org.apache.felix.main,
pentaho-mongo-utils,
pdi-dataservice-server-plugin,
javax.servlet-api-3.0.1
我是 Pentaho Kettle 的新手,我使用的是最新版本 6.0。我在 Spoon 中创建了几个简单的转换和作业。
我有一个作业 运行 是一个转换,它只是从 CSV 文件中提取数据,向每一行添加几个字段,然后将这些行发送到 MongoDB。我还有一个错误步骤(Write to Log)来自 MongoDB Output 步骤。
Spoon 中的工作和转换 运行 完美,所有行都出现在 MongoDB 中。
然而,当我从我的 Java 应用程序 运行 作业时,一切 运行 都完美无缺,除非它到达 MongoDB 输出步。所有行都转到 Write to Log 步骤并且没有记录任何错误。
当我取出 Write to Log 步骤时,仍然没有错误记录,也没有行写入 MongoDB。
我的类路径中有一个 MongoDB 驱动程序,还建议将 Kettle 根目录中的 类 文件夹放入我的类路径中,因为 MongoDB 是一个 OSGi 插件。这个我做过。但是,我仍然没有将数据输入 mongodb.
进一步的研究表明 MongoDB 插件在 Apache Karaf 实现中是 运行。我是否需要 运行将我的 Java 应用程序作为 Karaf 容器中的插件与 MongoDB 插件一起使用,还是有更简单的方法?
找到解决方案
我需要包含 VM 参数 -DKETTLE_PLUGIN_BASE_FOLDERS=C:\util\kettle\data-integration\system\karaf\system\pentaho 其中 C:\util\kettle 是我系统上的路径。
注意:MongoDB 插件在 Apache Karaf 上是 运行。 Pentaho 似乎将他们的新插件放在这个新文件夹中,而不是 data-integration\plugins 文件夹中,因为他们从 Apache Felix 迁移到 Apache Karaf。这也是 VM 争论的原因。
我还需要确保以下 jar 在我的类路径中: 元存储, commons-beanutils, commons-digester, commons-logging, commons-vfs, js(犀牛), 奥格纳尔, 日志4j, 联机, 番石榴, commons-codec, 扫描注释, javassist pentaho-metaverse-api, org.apache.felix.main, pentaho-mongo-utils, pdi-dataservice-server-plugin, javax.servlet-api-3.0.1