PDI 性能调优技巧

步骤提示描述
JavaScript代码关闭兼容模式在大多数情况下,重写 JavaScript 以使用与以前版本不兼容的格式很容易,并且使脚本更易于使用和阅读。默认情况下,旧的 JavaScript 程序以兼容模式运行。这意味着该步骤将像在以前的版本中一样进行处理。由于与强制兼容性相关的过载,可能会导致性能略有下降。如果要使用新架构,请禁用兼容模式并更改代码,如下所示:
  • intField.getInteger() > intField
  • numberField.getNumber() > numberField
  • dateField.getDate() > dateField
  • bigNumberField.getBigNumber() > bigNumberField
  • 等等...
使用内置库代替 Java 方法。请注意,生成的程序代码更加直观。例如 :
  • 检查空值现在是: field.isNull() > field==null
  • 将字符串转换为日期: field.Clone().str2dat() > str2date(field)
  • 等等...
如果按上述方式转换代码,可能会获得显着的性能优势。

注意:不要直接修改原字段值。这是一个设计决策,以确保没有错误类型的数据最终会出现在步骤的输出行中。不要直接修改字段,而是使用 Modified JavaScript 转换底部的表创建新字段。

JavaScript代码组合步骤一个大的 JavaScript 步骤比三个连续的小步骤运行得更快。将流程合并为一个更大的步骤有助于减少开销。
JavaScript代码避免 JavaScript 步骤或编写自定义插件请记住,虽然 JavaScript 是 Java 最快的脚本语言,但它仍然是一种脚本语言。如果在本机步骤或插件中执行相同数量的工作,则可以避免 JS 脚本引擎的开销。众所周知,这会带来显着的性能提升。这也是创建计算器步骤的主要原因 - 避免使用 JavaScript 进行简单计算。 
JavaScript代码创建字段的副本这不需要 JavaScript;“字段选择”步骤可以解决问题。您可以两次指定相同的字段。一次不重命名,一次(或多次)重命名。另一个技巧是在计算器步骤中使用 B=NVL(A,A),其中 B 被强制为 A 的副本。在 3.1 版中,一个显式的“创建字段 A 的副本”函数被添加到计算器中。
JavaScript代码数据转换考虑在“字段选择”步骤(3.0.2 或更高版本)中执行数据类型(日期、数字数据等)之间的转换。可以在步骤的元数据选项卡中执行此操作。
JavaScript代码变量创建如果您有可以在转换开始时声明一次的变量,请确保将它们放在单独的脚本中并将该脚本标记为启动脚本(右键单击选项卡中的脚本名称)。JavaScript 对象创建非常耗时,因此如果可以避免为要转换的每一行创建一个新对象,这将转化为该步骤的性能提升。
启动一个步骤的多个副本(改变开始复制的数量...)

启动一个步骤的多个副本可能会导致更好的性能有两个重要原因:

1.该步骤使用大量 CPU 资源,并且您的计算机中有多个处理器内核。示例:JavaScript 步骤
2.网络延迟和启动一个步骤的多个副本可以减少平均延迟。如果您的网络延迟很低,例如 5 毫秒,并且需要往返数据库,那么即使数据库运行平稳,您获得的最大性能也是每秒 200 (x5) 行。您可以尝试通过缓存减少往返次数,但如果没有,您可以尝试运行多个副本。示例:数据库查找或表输出

管理线程优先级在 3.0.2 及更高版本中,此功能位于(其他选项卡)下的“转换设置”对话框中,通过减少某些情况下的锁定开销来提高性能。默认情况下,为在最近版本中创建的新转换启用此功能,但对于较旧的转换,这可能有所不同。 
字段选择如果可能,不要删除 Select Value 中的字段除非必须,否则不要删除“选择值”中的字段。这是一项 CPU 密集型任务,因为引擎需要重建完整的行。将字段添加到行几乎总是比从行中删除字段更快。
CSV文件输入使用新的文本文件输入新的“CSV文件输入”或“固定宽度文件输入”步骤可提供最佳性能。如果有固定宽度(字段/行)的输入文件,甚至可以并行读取数据。(多个副本)这些新步骤已使用非阻塞 I/O (NIO) 功能重写。通常,在步骤中指定的 NIO 缓冲区越大,读取性能就越好。
适当时,使用延迟转换在从文本文件读取数据并将数据写回文本文件的情况下,使用延迟转换来加快进程。延迟转换背后的原理是它延迟数据转换,希望它不是必需的(从文件中读取并将其写回脑海中)。除了帮助进行数据转换之外,惰性转换还有助于将数据保持在“二进制”存储形式。这反过来又有助于内部 Kettle 引擎执行更快的数据序列化(排序、聚类等)。延迟转换选项在“CSV文件输入”和“固定宽度文件输入”文本文件读取步骤中可用。
回顾大局:数据库、提交大小、行集大小和其他因素考虑整个环境如何影响性能。转换本身和其他应用程序和 PDI 导致的限制因素可能存在限制因素。性能取决于数据库、表、索引、JDBC 驱动程序、硬件、LAN 连接到数据库的速度、数据的行大小和转换本身。使用不同的提交大小并在转换设置中更改行集中的行数来测试性能。更改 JDBC 驱动程序或数据库中的缓冲区大小。
步骤性能监控步骤性能监控是一个重要的工具,可让您确定转型中最慢的步骤。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值