Data Transformer 函数

本页面介绍了 Application Integration 中可用于 Data Transformer Script 任务的一组额外的预定义 Jsonnet 函数。

如需使用以下预定义函数,您必须在脚本中导入 functions 库。通过导入 functions 库,您可以同时使用标准 Jsonnet 函数和预定义的 Data Transformer 函数。

Application Integration 支持 Jsonnet 函数库 v0.20.0。如需了解 Jsonnet 标准函数,请参阅 Jsonnet 标准库

数组函数


Average

语法

avg(arr)
      
说明 计算数组中所有值的数值平均值。
输入参数 arr:输入数组。
返回类型 DOUBLE
输出 返回数组中所有值的平均值。

Contains

语法

contains(arr, elem)
      
说明 检查数组中是否包含指定元素。
输入参数 arr:输入数组。

elem:要搜索的数组元素。

返回类型 BOOLEAN
输出 如果找到匹配项,则返回 TRUE,否则返回 FALSE

Max Array

语法

maxArray(arr)
      
说明 查找数组中的最大值。
输入参数 arr:输入数组。
返回类型 输入数组的数据类型。
输出 返回在数组中找到的最大值。

Min Array

语法

minArray(arr)
      
说明 查找数组中的最小值。
输入参数 arr:输入数组。
返回类型 输入数组的数据类型。
输出返回在数组中找到的最小值。

Remove

语法

remove(arr, elem)
      
说明 从数组中移除指定的元素。
输入参数 arr:输入数组。

elem:要移除的数组元素。

返回类型 输入数组的数据类型。
输出 移除指定元素后返回更新后的数组。

Remove At

语法

removeAt(arr, index)
      
说明 从数组中移除指定索引位置的元素。
输入参数 arr:输入数组。

index(编号):要移除的元素的数组索引。

返回类型 输入数组的数据类型。
输出 移除指定元素后返回更新后的数组。

Sum

语法

sum(arr)
      
说明 将数组中的所有值相加。
输入参数 arr:输入数组。
返回类型 输入数组的数据类型。
输出 返回数组中所有元素的总和。

GroupBy

语法

groupBy(array, function)
      
说明 创建一个对象,对象由通过迭代函数运行数组每个元素的结果而生成的键。例如,f.groupBy([1,1.3,1.8],std.floor) 会生成 {"1": [1,1.3,1.8]}
输入参数
  • array:方法遍历的集合。

    function:为数组中的每个元素调用的函数。

返回类型 JSON
输出 返回组合后的聚合对象。

Zip

语法

zip([arrays])
      
说明 它会创建一个分组元素数组,其中第一个元素包含给定数组的第一个元素,第二个元素包含给定数组的第二个元素,依此类推。例如,f.zip([[1, "one", "I"],[2, "two", "II"],[3, "three", "III"]]) 会生成 [[1,2,3],["one", "two", "three"],["I", "II", "III"]]
输入参数 [arrays]:此参数包含要处理的数组。
返回类型 array
输出 返回重新分组的元素的新数组。

Unzip

语法

unzip(array)
      
说明 它会创建一个分组元素的数组。接受分组元素的数组,并创建一个将元素重新分组为其压缩前配置的数组。例如,f.unzip([[1, "one", "I"],[2, "two", "II"],[3, "three", "III"]]) 会生成 [[1,2,3],["one", "two", "three"],["I", "II", "III"]]
输入参数 array:此参数包含要处理的分组元素数组。
返回类型 array
输出 返回重新分组的元素的新数组。

聚合函数


XNOR

语法

xnor(a, b)
      
说明 对指定的布尔值执行逻辑 XNOR 运算。
输入参数 a::布尔值。

b::布尔值。

返回类型 BOOLEAN
输出 返回两个给定布尔值的 XNOR。

Xor

语法

xor(a, b)
      
说明 对指定的布尔值执行逻辑 XOR 运算。
输入参数 a::布尔值。

b::布尔值。

返回类型 BOOLEAN
输出 返回两个给定布尔值的 XOR。

哈希函数


SHA1

语法

sha1(str)
      
说明 使用安全哈希算法 1 (SHA-1) 计算输入 STRING 的加密哈希值。
输入参数 str::输入字符串。
返回类型 BYTES
输出 返回一个 160 位(20 字节)哈希值。

SHA256

语法

sha256(str)
      
说明 使用安全哈希算法 256 (SHA-256) 计算输入 STRING 的加密哈希值。
输入参数 str::输入字符串。
返回类型 BYTES
输出 返回一个 256 位(32 字节)哈希值。

SHA512

语法

sha512(str)
      
说明 使用安全哈希算法 512 (SHA-512) 计算输入 STRING 的加密哈希值。
输入参数 str::输入字符串。
返回类型 BYTES
输出 返回一个 512 位(64 字节)哈希值。

SHA3

语法

sha3(str)
      
说明 使用安全哈希算法 3 (SHA-3) 计算输入 STRING 的加密哈希值。
输入参数 str::输入字符串。
返回类型 BYTES
输出 返回一个 512 位(64 字节)哈希值。

JSON 函数


Manifest XML

语法

manifestXml(json, format = "badgerfish", indent_output = false)
      
说明 将指定的输入 JSON 对象转换为 XML 字符串。
输入参数 json::输入 JSON 对象。

format:输入 JSON 表示法格式。

indent_output::布尔值输入,用于指示输出 XML 字符串是否应缩进。默认值为 False

返回类型 STRING
输出 返回所提供 JSON 对象表示法的 XML 字符串。

Object Remove Key

语法

objectRemoveKey(obj, key)
      
说明 从 JSON 对象中移除属性。
输入参数 obj::输入 JSON 对象。

key:要移除的 JSON 属性。

返回类型 JSON
输出 移除了指定的属性及其相应值后的更新 JSON 对象。

Parse XML

语法

parseXml(xml, format = "badgerfish")
      
说明 将指定的输入 XML 字符串解析为 JSON 对象。
输入参数 xml::输入 XML 字符串。

format:输出 JSON 表示法格式。

返回类型 JSON
输出 返回所提供 XML 字符串的 JSON 对象表示法。

Parse CSV With Header

语法

parseCsvWithHeader(input, delimiter = ",", overwrite_duplicate_headers = true)
      
说明 将给定输入 csv 字符串解析为 json。第一行将被视为标题。例如,f.parseCsvWithHeader("index,product,company\n1,Application Integration,Google\n2,Pubsub,Google") 会生成 [{"index": "1", "product": "Application Integration", "company": "Google"},{"index": "2", "product": "Pubsub", "company": "Google"}]
输入参数 input:要解析的 CSV 字符串。

delimiter:要使用的分隔符字符串。默认值为 ','。

overwrite_duplicate_headers::覆盖重复标头值的选项。如果设置为 false,则会重命名重复的标头。默认值为 true

返回类型 JSON
输出 返回给定 csv 字符串的 json 表示法。

Manifest CSV

语法

manifestCsv(json, headers = null)
      
说明 将给定 json 转换为 csv 字符串。例如,f.manifestCsv([{"index": "1", "product": "Application Integration", "company": "Google"},{"index": "2", "product": "Pubsub", "company": "Google"}]) 会生成 index,product,company\n1,Application Integration,Google\n2,Pubsub,Google
输入参数 json::要转换为 csv 的 JSON。

headers::csv 输出的标头列表。如果未提供值,则使用所有标头。

返回类型 STRING
输出 以给定格式从 json 返回 csv 字符串。

数学函数


Is Decimal

语法

isDecimal(num)
      
说明 检查给定数字是否为小数。
输入参数 num::输入数字。
返回类型 BOOLEAN
输出 如果数字是小数,则返回 TRUE,否则返回 FALSE

Is Even

语法

isEven(num)
      
说明 检查给定数是否为偶数。
输入参数 num::输入数字。
返回类型 BOOLEAN
输出 如果数字为偶数,则返回 TRUE,否则返回 FALSE

Is Integer

语法

isInteger(num)
      
说明 检查给定数字是否为整数。
输入参数 num::输入数字。
返回类型 BOOLEAN
输出 如果数字为整数,返回 TRUE,否则返回 FALSE

Is Odd

语法

isOdd(num)
      
说明 检查给定数是否为奇数。
输入参数 num::输入数字。
返回类型 BOOLEAN
输出 如果数字为奇数,则返回 TRUE,否则返回 FALSE

Random Number

语法

randomNumber(lowerBound, upperBound)
      
说明 生成指定范围之间的随机实数。
输入参数 lowBound:范围值(含边界值)。默认值为 0

upperBound:较高范围值(不含边界值)。默认值为 1

返回类型 实数。
输出 返回 lowerBoundupperBound 之间的随机实数。

Round

语法

round(input)
      
说明 将数字舍入到最接近的整数。
输入参数 input:要舍入的值。
返回类型 INTEGER
返回值 返回最接近的舍入整数。

字符串函数


Equals Ignore Case

语法

equalsIgnoreCase(str1, str2)
      
说明 比较两个给定字符串值,无论字符串大小写如何。
输入参数 str1:输入字符串。

str2:输入字符串。

返回类型 BOOLEAN
输出 如果指定的值与现有值匹配(忽略大小写),则返回 TRUE,否则返回 FALSE

Is Empty

语法

isEmpty(str)
      
说明 检查给定字符串的长度是否为 0。
输入参数 str::输入字符串。
返回类型 BOOLEAN
输出 如果字符串为空,则返回 TRUE,否则返回 FALSE

Match

语法

match(str, regexp)
      
说明 检索字符串与正则表达式的匹配结果。
输入参数 str::输入字符串。

regexpre2 正则表达式

返回类型 ARRAY
输出 返回一个数组,该数组由 str 中与正则表达式 regexp 匹配的所有子字符串组成。如果不存在匹配项,则返回空数组。

Trim

语法

trim(str)
      
说明 移除给定字符串的所有前导和尾随空格。
输入参数 str::输入字符串。
返回类型 STRING
输出 返回移除了前导和尾随空白的字符串的副本。

时间戳函数


Date Format

语法

dateFormat(timestamp, format_string, timezone, current_format)
      
说明 根据指定的 format_string 设置时间戳格式。
输入参数 timestamp:输入时间戳。

format_string::新的时间戳格式。如需查看可用于构成新时间戳格式字符串的格式元素列表,请参阅支持的时间戳格式元素

timezone:提供的输入时间戳的时区。默认值为 UTC

current_format::用于解析所提供的输入时间戳的格式。默认值为 E(纪元)。

返回类型 STRING
输出 根据指定的 format_string 转换输入 timestamp 后,返回新字符串。

支持的时间戳格式元素

下表列出了 dateFormat() 函数支持的格式元素:

格式元素 说明 示例
YYYY 年(4 位数)。 2023
YY 年份的后两位数字。 23
MMMM 首字母大写的月份名称。 March
MMM 首字母大写的月份缩写名称。 Mar
MM 1 月 1 日至 12 日。 03
M 从 1 到 12 的月份。 3
DDDD 首字母大写的日期名称。 Monday
DDD 日期的缩写名称。 Mon
DD 从 01 到 31 的日期。 06
D 从 1 到 31 的日期。 6
HH 24 小时制的小时数,从 00 到 23。 15
hh 12 小时制的小时数,从 01 到 12。 03
h 12 小时制的小时数,从 1 到 12。 3
mm 从 00 到 59 的分钟数。 04
m 从 0 到 59 的分钟数。 4
ss 从 00 到 59 的秒数。 08
s 从 0 到 59 的秒数。 8
FFFFFFFFF 指定数字右侧的九位数(包括零)小数秒数。 00.123456789
FFFFFFFF 指定数字右侧的八位数(包括零)小数秒数。 00.12345678
FFFFFFF 指定数字右侧的七位数(包括零)小数秒数。 00.1234567
FFFFFF 指定数字右侧的六位数(包括零)小数秒数。 00.123456
FFFFF 指定数字右侧的五位数(包括零)小数秒数。 00.12345
FFFF 指定数字右侧的四位数(包括零)小数秒数。 00.1234
FFF 指定数字右侧的三位数(包括零)小数秒数。 00.123
FF 指定数字右侧的两位数(包括零)小数秒数。 00.12
F 指定数字右侧的一位数(包括零)小数秒数。 00.1
fffffffff 九位数小数秒数。 987654321
ffffffff 八位数小数秒数。 98765432
fffffff 七位数小数秒数。 9876543
ffffff 六位数小数秒数。 987654
fffff 五位数小数秒数。 98765
ffff 四位数小数秒数。 9876
fff 三位数小数秒数。 987
ff 两位数小数秒数。 98
f 一位数小数秒数。 9
tt 时段指示符(凌晨、上午、中午、下午、晚上)。设置格式时,格式为 AM 或 PM。 PM
t 简写形式的时段指示符(凌晨、上午、中午、下午、晚上)。映射到小写的 ampm pm
K 时区名称。 PST
kk ±xx:xx 格式的时区。 -8:00:00
k ±xxxx 格式的时区。 -8000

Is Leap Year

语法

isLeapYear(year)
      
说明 检查给定年份是否为闰年。
输入参数 year:输入年份(实数)。
返回类型 BOOLEAN
输出 如果年份为闰年,则返回 TRUE,否则返回 FALSE

Now In Millis

语法

nowInMillis()
      
说明 返回集成的当前 Unix 纪元时间(以毫秒为单位)。
输入参数 不适用
返回类型 INT64
输出 返回当前 Unix 纪元时间(以毫秒为单位)。

实用函数


UUID

语法

uuid()
      
说明 STRING 形式生成随机通用唯一标识符 (UUID)。返回的 STRING 包含 32 个十六进制数字,这些数字由连字符分为五组,具体形式为 8-4-4-4-12。十六进制数字表示符合 RFC 4122 第 4.4 节的 122 个随机位和 6 个固定位。返回的 STRING 是小写字母。
输入参数 不适用
返回类型 STRING
输出 以字符串格式返回生成的 UUID。

Integration name

语法

getIntegrationName()
      
说明 获取当前集成的名称。
输入参数 不适用
返回类型 STRING
输出 返回当前集成的名称。

Integration region

语法

getIntegrationRegion()
      
说明 获取当前集成的区域。
输入参数 不适用
返回类型 STRING
输出 返回当前集成的区域。

Integration version ID

语法

getIntegrationVersionId()
      
说明 获取当前集成的集成版本 ID。
输入参数 不适用
返回类型 STRING
输出 返回当前集成的集成版本 ID。

Integration version number

语法

getIntegrationVersionNumber()
      
说明 获取当前集成的版本号。
输入参数 不适用
返回类型 NUMBER
输出 返回当前集成的版本号。

Execution ID

语法

getExecutionId()
      
说明 获取当前集成执行的 ID。
输入参数 不适用
返回类型 STRING
输出 返回当前集成执行的执行 ID。

Project ID

语法

getProjectId()
      
说明 获取当前集成的 Google Cloud 项目 ID。
输入参数 不适用
返回类型 STRING
输出 返回当前集成的 Google Cloud 项目 ID。

建议