【问题标题】:Pentaho ETL performance issuesPentaho ETL 性能问题
【发布时间】:2016-09-29 14:30:30
【问题描述】:

我有一个 Pentaho ETL 作业/转换,它读取一个文本文件并将一些记录插入到 MS SQL 数据库表中。 我每天执行它。最多需要 10 分钟才能完成。当其他人执行它时会出现问题:时间增加到 40 分钟。 所有的执行都发生在同一台机器上,具有相同的 JRE 版本。 日志没有显示任何异常,只是步骤之间的时间间隔更长。

系统信息:

  • Windows 8 企业版 64 位
  • JRE 1.7_79 32 位
  • Pentaho 5.3.0
  • MS SQL 2000 (8.0)

调用命令:

C:\SR\bin\data-integration>"C:\SR\bin\jre1.7.0_79\bin\java.exe"  "-Xmx512m" "-XX:MaxPermSize=256m" "-Djava.library.path=libswt\win32" "-DKETTLE_HOME=" "-DKETTLE_REPOSITORY=" "-DKETTLE_USER=" "-DKETTLE_PASSWORD=" "-DKETTLE_PLUGIN_PACKAGES=" "-DKETTLE_LOG_SIZE_LIMIT=" "-DKETTLE_JNDI_ROOT=" -jar launcher\pentaho-application-launcher-5.3.0.0-213.jar -lib ..\libswt\win32  -main org.pentaho.di.kitchen.Kitchen /file C:\SR\config\pentaho\visao.kjb /param:"dia=29" /param:"mes=09" /param:"ano=2016" /param:"arquivo=Realize2016" /param:"dia_util=28" /norep 

我的日志:

2016/09/27 11:26:03 - Reading of file MyFile.0 - Line number : 50000
2016/09/27 11:26:03 - Validate Records.0 - Linenr 50000
2016/09/27 11:26:03 - Discarded records.0 - Linenr 50000
2016/09/27 11:26:04 - Reading of file MyFile.0 - Line number : 100000
2016/09/27 11:26:04 - Validate Records.0 - Linenr 100000
2016/09/27 11:26:04 - Discarded records.0 - Linenr 100000
2016/09/27 11:26:05 - Reading of file MyFile.0 - Line number : 150000
2016/09/27 11:26:05 - Validate Records.0 - Linenr 150000
2016/09/27 11:26:05 - Discarded records.0 - Linenr 150000
2016/09/27 11:26:06 - Reading of file MyFile.0 - Line number : 200000
2016/09/27 11:26:06 - Validate Records.0 - Linenr 200000
2016/09/27 11:26:06 - Discarded records.0 - Linenr 200000
2016/09/27 11:26:07 - Reading of file MyFile.0 - Line number : 250000
2016/09/27 11:26:07 - Validate Records.0 - Linenr 250000
2016/09/27 11:26:08 - Discarded records.0 - Linenr 250000

我的同事日志:

2016/09/29 10:13:26 - Reading of file MyFile.0 - Line number : 50000
2016/09/29 10:13:32 - Validate Records.0 - Linenr 50000
2016/09/29 10:13:32 - Discarded records.0 - Linenr 50000
2016/09/29 10:13:40 - Reading of file MyFile.0 - Line number : 100000
2016/09/29 10:13:46 - Validate Records.0 - Linenr 100000
2016/09/29 10:13:47 - Discarded records.0 - Linenr 100000
2016/09/29 10:13:56 - Reading of file MyFile.0 - Line number : 150000
2016/09/29 10:14:01 - Validate Records.0 - Linenr 150000
2016/09/29 10:14:02 - Discarded records.0 - Linenr 150000
2016/09/29 10:14:10 - Reading of file MyFile.0 - Line number : 200000
2016/09/29 10:14:17 - Validate Records.0 - Linenr 200000
2016/09/29 10:14:18 - Discarded records.0 - Linenr 200000
2016/09/29 10:14:26 - Reading of file MyFile.0 - Line number : 250000
2016/09/29 10:14:31 - Validate Records.0 - Linenr 250000
2016/09/29 10:14:32 - Discarded records.0 - Linenr 250000

【问题讨论】:

    标签: performance kettle pentaho-data-integration


    【解决方案1】:

    一定有一些不同的东西。您是否在同一个帐户上执行?在什么环境中? Windows 还是 Linux?

    您是否尝试过使用 pan/kitchen 执行?也许它会使您的环境标准化?

    如果您上传转换等,我会看看。

    【讨论】:

    • 使用 Windows 8 企业版(64 位)。不同的账户。相同的环境。已检查系统和用户变量。
    • 在这种情况下,我的建议是创建一个新帐户来运行每个人都可以使用的东西。用它来测试它。谁知道他在他的帐户上设置了什么。即使事情可能是一样的,也许他有一些随机的 java 配置调整了影响低级别的 JVM。堆设置不同? (在黑暗中拍摄)反之亦然,你已经为它充电了。就像我说的,如果可以尝试使用 CLI pan/kitchen 运行,它可能会稍微标准化您的环境。我没有通过课堂打电话给厨房的经验,但我会这样做。
    • 我正在使用厨房来执行这项工作。通过 bat 脚本调用它。我不能创建另一个帐户来执行它(公司政策 - 每个帐户都绑定到一个员工),我使用不同的 JRE 来运行它(系统 JRE 位于不同的路径中)。两个帐户使用同一个 JRE 来运行厨房。
    • 啊。伟大的旧公司政策。 :)
    • 啊。伟大的旧公司政策。 :) 然后我的建议是开始覆盖命令行上越来越多的默认值。从他的 JRE 到你的 JRE 必须有一些不同的东西(比如堆等)。除了内存和垃圾收集之外,您还可以配置更多内容。尽管这是我在黑暗中拍摄的,但在它运行时无法查看和监控你的资源。您是否随机尝试过其他人的环境以找出你们中的哪一个是异常值?也试试新的pentaho?恕我直言,这要好得多。
    【解决方案2】:

    我终于找到了导致我的同事在执行作业期间表现不佳的原因。

    在比较所有环境变量和配置后,他的配置文件缺少一些 Kettle/Pentaho 配置文件。 这些文件是由 Spoon 创建的,我的同事从未执行过 Spoon。他只使用 Kitchen 运行作业。

    文件是在 %USERPROFILE%\.kettle\ 中创建的

    我的个人资料和他的另一个区别是 Spoon 上设置的默认位置。我的设置为 en-US,而他使用的是系统默认值 (pt-BR)。

    在配置文件之间的所有设置都相同后,执行时间显着减少:从 40 分钟(平均)到 6 分钟(平均)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多