如何在 Kettle 中按长度过滤行
How to filter rows by length in Kettle
我正在使用行过滤器来过滤掉比给定长度长的列。过滤条件下没有检查行长的条件
所以解决方法是使用:
Field1 REGEXP [^.{0,80}$]
OR
Field1 IS NULL
Field2 REGEXP [^.{0,120}$]
OR
Field2 IS NULL
长度检查是一个很常见的要求。有没有 function/simpler 我缺少的方法?
假设您讨论的是字符串,您可以使用计算器步骤,计算有点难找 "Return the length of a string A"。这将为您提供筛选行步骤的值。
使用数据验证器步骤:
为您要检查的每一列创建一个新验证,并为每个创建的验证设置 "Max string length"。
您可以使用 "Error handling of step" 跃点重定向错误行:
默认情况下,这些行与输入行具有相同的结构和值,但您也可以包含其他信息,例如错误列的名称或错误描述。
或者,您可以在使用计算器步骤进行过滤之前计算字符串长度,但如果您要检查多个列,它可能会创建很多额外的列。
当然,您始终可以在用户定义的 Java Class 或修改的 Java 脚本值中执行此类检查。
我正在使用行过滤器来过滤掉比给定长度长的列。过滤条件下没有检查行长的条件
所以解决方法是使用:
Field1 REGEXP [^.{0,80}$]
OR
Field1 IS NULL
Field2 REGEXP [^.{0,120}$]
OR
Field2 IS NULL
长度检查是一个很常见的要求。有没有 function/simpler 我缺少的方法?
假设您讨论的是字符串,您可以使用计算器步骤,计算有点难找 "Return the length of a string A"。这将为您提供筛选行步骤的值。
使用数据验证器步骤:
为您要检查的每一列创建一个新验证,并为每个创建的验证设置 "Max string length"。
您可以使用 "Error handling of step" 跃点重定向错误行:
默认情况下,这些行与输入行具有相同的结构和值,但您也可以包含其他信息,例如错误列的名称或错误描述。
或者,您可以在使用计算器步骤进行过滤之前计算字符串长度,但如果您要检查多个列,它可能会创建很多额外的列。
当然,您始终可以在用户定义的 Java Class 或修改的 Java 脚本值中执行此类检查。