Field Type Converter

支持的管道类型:

  •  Data Collector

Field Type Converter处理器将字段的数据类型转换为兼容的数据类型。您可以在执行计算之前使用处理器转换字段的数据类型。您也可以使用处理器更改小数数据的小数位数。

您将处理器配置为使用以下方法之一来转换数据类型:

By Field Name

转换具有指定名称的字段的数据类型。例如,您可以将名为dropoff_datetime的具有String数据类型的字段转换为Date数据类型。

By Data Type

用指定的类型转换所有字段的数据类型。例如,您可以将所有具有Decimal数据类型的字段转换为String数据类型。

您可以按字段名称或数据类型转换数据类型。您不能在同一阶段使用两种方法。

为适当的兼容数据类型配置转换。还应考虑该字段中的实际数据,因为即使有效的转换也可能截断数据。例如,将字段从整数转换为十进制是有效的。将字段从十进制转换为整数也是有效的,但是该转换可能截断数据中的任何十进制值。

提示:您可以使用数据预览来验证字段中的数据。

将字符串数据转换为Date, Datetime, 或 Time数据类型时,或将Date, Datetime, 或 Time数据转换为字符串数据类型时,都可以指定要使用的日期格式。您可以使用任何有效格式。

有效的类型转换

下表列出了可以转换为另一种数据类型的数据类型。列表,映射和列表映射数据类型无法转换。

Target Data Type Source Data Type
Boolean Byte, Decimal, Double, Float, Integer, Long, Short, String
Byte Decimal, Double, Float, Integer, Long, Short, String
Byte Array String
Character String
Date Datetime, Long, String, Time
Datetime Date, Long, String
Decimal Byte, Double, Float, Integer, Long, Short, String
Double Byte, Decimal, Integer, Float, Long, Short, String
Float Byte, Decimal, Double, Integer, Long, Short, String
Integer Boolean1, Byte, Decimal, Double, Float, Long, Short, String
Long Boolean1, Byte, Date, Datetime, Decimal, Double, Float, Integer, Short, String
Short Boolean1, Byte, Decimal, Double, Float, Integer, Long, String
String All supported data types except List, Map, and List-Map
Time Date, Datetime, String, Long
Zoned Datetime Date, Datetime, String

从布尔数据类型转换时,处理器会将TRUE转换为1,将FALSE转换为0。

更改小数字段的小数位数

您可以使用Field Type Converter处理器来更改小数字段的小数位数。例如,您可能有一个小数字段,其值为12345.6789115,并且您希望将小数位减小为4,以使该值为12345.6789。

要更改位数,可以将处理器配置为将十进制字段转换为Decimal数据类型,并指定要使用的位数。减小位数时,还可以指定舍入策略。例如,您可以将处理器配置为向上舍入或向下舍入。

您可以按名称更改小数字段的小数位数。或者,您可以使用十进制数据类型更改所有字段的比例。

配置Field Type Converter

配置Field Type Converter处理器以转换字段的数据类型。
  1. 在“Properties”面板的“General选项卡上,配置以下属性:
    一般属性 描述
    Name 阶段名。
    Description 可选说明。
    Required Fields 必须包含用于将记录传递到阶段的记录的数据的字段。

    提示:您可能包括阶段使用的字段。

    根据为管道配置的错误处理,处理不包括所有必填字段的记录。

    Preconditions 必须评估为TRUE的条件才能使记录进入处理阶段。单击 添加以创建其他前提条件。

    根据为该阶段配置的错误处理,处理不满足所有前提条件的记录。

    On Record Error 该阶段的错误记录处理:

    • Discard-放弃记录。
    • To Error-将记录发送到管道以进行错误处理。
    • Stop Pipeline-停止管道。对集群管道无效。
  2. 在“Conversions选项卡上,配置以下属性:
    字段类型转换器属性 描述
    Conversion Method 指定是按字段名称还是按数据类型转换数据类型。
    Fields to Convert 一个或多个要转换为相同数据类型的字段。仅在按字段名称转换时使用。

    您可以使用星号通配符表示数组索引和映射元素。

    您可以指定单个字段,也可以使用字段路径表达式来指定一组字段。

    Source Type 要转换的字段的数据类型。仅在按数据类型转换时使用。
    Convert to Type 转为的数据类型。选择一个有效的类型。
    Data Locale 字段数据的语言环境。

    可以确定处理器如何格式化转换后的数据,例如使用逗号或句点作为小数点分隔符。

    适用于受语言环境影响的类型。

    Treat Input Field as Date 将长字段转换为String数据类型时,将输入字段视为日期时间。

    选择何时要将长字段中的时间戳(例如时期或UNIX时间)转换为字符串,例如“ 2017-02-01 12:00:00”。处理器首先将long值转换为日期时间,然后使用指定的日期格式转换为字符串。

    清除后,处理器会将一个长值(例如1485979200)转换为字符串值“1485979200”。

    Scale 转换为十进制数据类型时使用的位数。

    输入零或正数以指示小数点右边的位数。如果输入负数,则处理器将数字的未舍入值乘以10到位数取反的幂。

    有关指定位数的更多信息,请参见https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html。

    Rounding Strategy 在小数位数转换期间使用的舍入策略。

    有关每种舍入策略的描述,请参见https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html。

    Date Format 要转换的日期,日期时间或时间数据的格式。用于将不带时区或UTC偏移量详细信息的日期时间数据转换为Date, Datetime, 或Time。或者将Date, Datetime, 或Time数据转换为String。

    选择要使用的格式或创建自定义格式。

    要使用时区或偏移量信息转换日期时间数据,请使用“Zoned Datetime Format”属性。

    注意: 数据预览使用浏览器语言环境的默认格式显示日期,日期时间和时间数据。例如,如果浏览器使用en_US语言环境,则预览使用以下格式显示日期:MMM d, y h:mm:ss a
    Other Date Format 用于输入自定义日期格式。

    有关创建自定义日期格式的更多信息,请参见Oracle Java文档

    Zoned Datetime Format 要转换的日期,日期时间或时间数据的格式。用于将带有时区或偏移量信息的日期时间数据转换为“区域日期时间”格式,或将“区域日期时间”数据转换为字符串。

    选择以下选项之一:

    • yyyy-MM-dd’T’HH:mm:ssX – 用于具有UTC偏移量的日期时间值。
    • yyyy-MM-dd’T’HH:mm:ssX[VV] – 用于具有UTC偏移量和时区的日期时间值。如果datetime值不包含UTC偏移量,则阶段将使用指定时间标记的最小偏移量。
    • Other – 用于输入其他区域日期时间格式。

    若要转换不带时区或偏移量信息的日期时间数据,请使用“Date Format”属性。

    Other Zoned Datetime Format 用于输入自定义分区的日期时间格式。

    有关创建自定义分区日期时间格式的更多信息,请参见Oracle Java文档。

    Charset 要转换的数据的字符编码。

    适用于受编码影响的类型。

  3. 要配置其他类型转换,请单击“添加” 图标,然后重复上一步。您可以使用简单或批量编辑模式来配置其他转化。
    您可以按字段名称配置其他转换,也可以按数据类型配置其他转换。您不能在同一阶段使用两种方法。