Pentaho 如何在水壶中按长度筛选行

Pentaho 如何在水壶中按长度筛选行,pentaho,kettle,Pentaho,Kettle,我使用一个行过滤器来过滤超过给定长度的列。在筛选条件下,没有检查行长度的条件 因此,解决方法是使用: Field1 REGEXP [^.{0,80}$] OR Field1 IS NULL Field2 REGEXP [^.{0,120}$] OR Field2 IS NULL 长度检查是一项非常常见的要求。有没有一个函数/更简单的方法可以做到这一点,我不知道?假设您谈论的是字符串,您可以使用一个计算器步骤,使用有点难以找到的计算“返回字符串的长度a”。这将为您提供筛选行步骤的值。假设您谈论

我使用一个行过滤器来过滤超过给定长度的列。在筛选条件下,没有检查行长度的条件

因此,解决方法是使用:

Field1 REGEXP [^.{0,80}$]
OR
Field1 IS NULL

Field2 REGEXP [^.{0,120}$]
OR
Field2 IS NULL

长度检查是一项非常常见的要求。有没有一个函数/更简单的方法可以做到这一点,我不知道?

假设您谈论的是字符串,您可以使用一个计算器步骤,使用有点难以找到的计算“返回字符串的长度a”。这将为您提供筛选行步骤的值。

假设您谈论的是字符串,您可以使用计算器步骤,使用有点难以找到的计算“返回字符串的长度a”。这将为筛选行步骤提供值。

使用数据验证程序步骤:

为要检查的每个列创建新验证,并为创建的每个验证设置“最大字符串长度”

您可以使用“步骤的错误处理”跃点重定向错误行:

默认情况下,这些行与输入行具有相同的结构和值,但您也可以包含其他信息,例如错误列的名称或错误描述

或者,您可以在使用计算器步骤进行筛选之前计算字符串长度,但如果要检查多个列,则可能会创建许多附加列


当然,您始终可以在用户定义的Java类或修改的Java脚本值中执行此类检查。

使用数据验证程序步骤:

为要检查的每个列创建新验证,并为创建的每个验证设置“最大字符串长度”

您可以使用“步骤的错误处理”跃点重定向错误行:

默认情况下,这些行与输入行具有相同的结构和值,但您也可以包含其他信息,例如错误列的名称或错误描述

或者,您可以在使用计算器步骤进行筛选之前计算字符串长度,但如果要检查多个列,则可能会创建许多附加列


当然,您始终可以在用户定义的Java类或修改的Java脚本值中执行此类检查。

数据验证程序停止转换。我怎样才能让它忽略这些行?是否有一种输出类型会丢弃所有内容?除了“步骤的主输出”跃点之外,验证程序步骤之后可能还需要“步骤的错误处理”跃点(我添加了一个屏幕截图作为示例)。数据验证程序停止转换。我怎样才能让它忽略这些行?是否有一种输出类型会丢弃所有内容?除了“步骤的主要输出”跃点(我添加了一个屏幕截图作为示例)之外,验证程序步骤之后可能还需要“步骤的错误处理”跃点。如果使用单词
length
作为过滤器,则不难找到。我花了很长时间才注意到这个特性。如果你用
length
这个词作为过滤器,就不难找到了。我花了太长时间才注意到这个特性。