本页面介绍了 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 对象表示法。
|
语法 |
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 。
|
返回类型 |
实数。
|
输出 |
返回 lowerBound 和 upperBound 之间的随机实数。 |
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::输入字符串。
regexp:re2 正则表达式。
|
返回类型 |
ARRAY
|
输出 |
返回一个数组,该数组由 str 中与正则表达式 regexp 匹配的所有子字符串组成。如果不存在匹配项,则返回空数组。 |
Trim
语法 |
trim(str)
|
说明 |
移除给定字符串的所有前导和尾随空格。
|
输入参数 |
str::输入字符串。
|
返回类型 |
STRING
|
输出 |
返回移除了前导和尾随空白的字符串的副本。 |
时间戳函数
语法 |
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 |
简写形式的时段指示符(凌晨、上午、中午、下午、晚上)。映射到小写的 am 或 pm。 |
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。
|
建议