适用于:
Azure 数据工厂
Azure Synapse Analytics
数据流在 Azure 数据工厂管道和 Azure Synapse Analytics 管道中都可用。 本文适用于映射数据流。 如果你不熟悉转换,请参阅介绍性文章: 使用映射数据流转换数据。
本文提供有关映射数据流中 Azure 数据工厂和 Azure Synapse Analytics 支持的表达式函数的详细信息。
表达式函数列表
在 Azure 数据工厂和 Azure Synapse Analytics 管道中,使用映射数据流功能的表达式语言来配置数据转换。
| 表达式函数 | 任务 |
|---|---|
| abs | 提供数字的绝对值。 |
| acos | 计算反余弦值。 |
| add | 添加一对字符串或数字。 将日期添加到日期数。 向时间戳添加时长。 将类似类型的数组追加到另一个数组。 与 + 运算符相同。 |
| and | 使用逻辑 AND 运算符。 与 &&相同。 |
| asin | 计算反正弦值。 |
| assertErrorMessages | 返回所有断言消息的映射。 |
| atan | 计算反正切值。 |
| atan2 | 返回平面正 X 轴与给定坐标点之间的弧角。 |
| between | 检查第一个值是否在两个其他值之间(含这两个值)。 可以比较数值、字符串和 datetime 值。 |
| bitwiseAnd | 跨整数类型使用位运算符And。 与 & 运算符相同。 |
| bitwiseOr | 跨整数类型使用位运算符Or。 与 | 运算符相同。 |
| bitwiseXor | 跨整数类型使用位运算符Or。 与 | 运算符相同。 |
| blake2b | 当给定位长度时,计算一组不同原始数据类型字段的 Blake2 摘要。 位长度只能介于 8 到 512 之间,且是 8 的倍数。 可以用它来计算数据行的指纹。 |
| blake2bBinary | 当给定一个位长度时,计算一组不同基元数据类型的列的 Blake2 摘要,该长度只能是 8 到 512 之间的 8 倍数。 可以用它来计算数据行的指纹。 |
| case | 根据交替条件应用一个值或另一个值。 如果输入数为偶数,另一个输入在最后一种情况下会默认设为NULL。 |
| cbrt | 计算一个数的立方根。 |
| ceil | 返回不小于该数字的最小整数。 |
| coalesce | 返回一组输入中的第一个非 NULL 值。 所有输入应属于同一类型。 |
| columnNames | 获取流的所有输出列的名称。 可以将可选流名称作为第一个参数传递,并传递可选的第二个参数以仅返回架构偏移列。 |
| 列 | 获取流的所有输出列的值。 可以将可选流名称作为第二个参数传递。 |
| compare | 比较同一类型的两个值。 如果 value1 < 小于 value2,则返回负整数;如果 value1 等于 value2,则返回 0;如果 value1 > 大于 value2,则返回正值。 |
| concat | 将字符串的可变数字连接在一起。 与包含字符串的 + 运算符相同。 |
| concatWS | 使用分隔符将字符串的可变数字连接在一起。 第一个参数是分隔符。 |
| cos | 计算余弦值。 |
| cosh | 计算某个值的双曲余弦值。 |
| crc32 | 给定一定长度的位时,计算一组不同基元数据类型的列的 CRC32 哈希值。 位长度必须为值 0 (256)、 224、 256、 384和 512。 可以用它来计算数据行的指纹。 |
| degrees | 将弧度转换为度。 |
| divide | 将两个数字相除。 与 / 运算符相同。 |
| dropLeft | 删除字符串左侧指定的字符数。 如果请求删除的字符数超过了该字符串的长度,则返回空字符串。 |
| dropRight | 从字符串右侧删除任意数量的字符。 如果请求删除的字符数超过了该字符串的长度,则返回空字符串。 |
| endsWith | 检查字符串是否以提供的字符串结尾。 |
| equals | 使用比较等于运算符。 与 == 运算符相同。 |
| equalsIgnoreCase | 使用比较等于运算符并忽略大小写。 与 <=> 运算符相同。 |
| escape | 根据格式转义字符串。 可接受的格式为json、xml、ecmascript、html和java。 |
| expr | 通过字符串生成一个表达式。 等效于以非精简形式编写表达式。 可以使用它将参数作为字符串表示形式传递。 |
| 阶乘 | 计算一个数的阶乘。 |
| false | 始终返回 false 值。 如果存在名为syntax(false())的列,请使用函数false。 |
| floor | 返回不大于该数字的最大整数。 |
| fromBase64 | 解码特定的 base64 编码字符串。 |
| greater | 使用大于运算符的比较。 与 > 运算符相同。 |
| greaterOrEqual | 使用大于或等于运算符的比较。 与 >= 运算符相同。 |
| greatest | 返回输入值列表中的最大值,跳过 NULL 值。 如果所有输入均为 NULL,则返回 NULL。 |
| hasColumn | 在流中按名称检查列值。 可以将可选流名称作为第二个参数传递。 设计时已知的列名应仅使用其名称进行寻址。 不支持计算输入,但可以使用参数替换。 |
| hasError | 检查带提供的 ID 的断言是否标记为错误。 |
| iif | 根据条件应用一个值或另一个值。 如果未指定另一个值,则会考虑 NULL该值。 这两个值都必须兼容(例如数字或字符串)。 |
| iifNull | 当给定两个或多个输入时,返回第一个非 null 项。 此函数等效于 coalesce。 |
| initCap | 将每个单词的第一个字母转换为大写。 通过空格分隔符识别单词。 |
| instr | 查找字符串中子字符串的位置(基于 1)。 如果未找到,则返回0。 |
| isDelete | 检查该行是否标记为删除。 对于处理多个输入流的转换,可以传递流的索引(以1为基点)。 流索引应为或 12,默认值为 1。 |
| isError | 检查该行是否标记为错误。 对于处理多个输入流的转换,可以传递流的索引(以1为基点)。 流索引应为 1 或是 2。 默认值为 1。 |
| isIgnore | 检查是否应忽略该行。 对于处理多个输入流的转换,可以传递流的索引(以1为基点)。 流索引应为 1 或是 2。 默认值为 1。 |
| isInsert | 检查该行是否标记为插入。 对于处理多个输入流的转换,可以传递流的索引(以1为基点)。 流索引应为 1 或是 2。 默认值为 1。 |
| isMatch | 检查查找时是否匹配该行。 对于处理多个输入流的转换,可以传递流的索引(以1为基点)。 流索引应为 1 或是 2。 默认值为 1。 |
| isNull | 检查该值是否为 NULL。 |
| isUpdate | 检查该行是否标记为更新。 对于处理多个输入流的转换,可以传递流的索引(以1为基点)。 流索引应为 1 或是 2。 默认值为 1。 |
| isUpsert | 检查该行是否标记为插入。 对于处理多个输入流的转换,可以传递流的索引(以1为基点)。 流索引应为 1 或是 2。 默认值为 1。 |
| jaroWinkler | 获取两个字符串之间的 JaroWinkler 距离。 |
| least | 使用小于或等于运算符的比较。 与 <= 运算符相同。 |
| left | 从索引 1 处开始提取包含字符数的子字符串。 与 SUBSTRING(str, 1, n)相同。 |
| length | 返回字符串的长度。 |
| lesser | 使用比较较少的运算符。 与 < 运算符相同。 |
| lesserOrEqual | 使用小于或等于运算符的比较。 与 <= 运算符相同。 |
| levenshtein | 获取两个字符串之间的 levenshtein 距离。 |
| like | 使用与字符串完全匹配的模式。 例外是与输入中的任何一个字符匹配的特殊符号 _ (类似于正则表达式中的 posix .* )。 |
| locate | 在启动特定位置的字符串中查找子字符串的位置(基于 1)。 如果省略位置,请从字符串的开头开始。 如果未找到,则返回0。 |
| log | 计算日志值。 可以使用可选基数,或者提供 Euler 编号(如果已使用)。 |
| log10 | 基于 10 个基数计算日志值。 |
| lower | 将字符串小写。 |
| lpad | 将字符串从左侧填充指定的填充物,直到达到特定长度。 如果字符串等于或大于长度,则字符串将被剪裁为长度。 |
| ltrim | 在左侧裁剪掉前导和尾随字符的字符串。 如果未指定第二个参数,它将剪裁空格。 否则,它会剪裁第二个参数中指定的任何字符。 |
| md5 | 计算一组不同基元数据类型的列的 MD5 摘要,并返回 32 个字符的十六进制字符串。 可以用它来计算数据行的指纹。 |
| minus | 减去数字。 减去日期中的天数。 从时间戳中减去持续时间。 减去两个时间戳以获取毫秒的差异。 与 - 运算符相同。 |
| mod | 提供一对数字的模数。 与 % 运算符相同。 |
| multiply | 将一对数字相乘。 与 * 运算符相同。 |
| negate | 对数字求反。 将正数转换为负数,或反之。 |
| nextSequence | 返回下一个唯一序列。 该数字仅在分区内连续,并且以分区 ID 为前缀。 |
| 规范化 | 规范化字符串值以分隔重音 Unicode 字符。 |
| not | 使用逻辑求反运算符。 |
| notEquals | 使用比较不等于运算符。 与 != 运算符相同。 |
| null | 返回一个 NULL 值。 如果存在名为syntax(null())的列,请使用函数null。 使用它的任何操作都会导致NULL。 |
| or | 使用逻辑 OR 运算符。 与 ||相同。 |
| pMod | 提供一对数字的正模数。 |
| partitionId | 返回输入行位于的当前分区 ID。 |
| power | 以一个数为底、另一数为幂求值。 |
| radians | 将度转换为弧度。 |
| random | 当给定分区中的可选种子时,返回一个随机数。 种子应为固定值,并与分区 ID 一起使用以生成随机值。 |
| regexExtract | 提取特定正则表达式模式的匹配子字符串。 最后一个参数标识匹配组,如果省略,则默认为 1。 使用 `<regex>` 来匹配字符串而无需进行转义。 |
| regexMatch | 检查字符串是否与特定的正则表达式模式匹配。 使用 `<regex>` 来匹配字符串而无需进行转义。 |
| regexReplace | 将正则表达式模式的所有匹配项替换为特定字符串中的另一个子字符串。 使用 `<regex>` 来匹配字符串而无需进行转义。 |
| regexSplit | 基于分隔符和正则表达式拆分字符串,并返回字符串数组。 |
| replace | 将特定字符串中所有出现的子字符串替换为另一个子字符串。 如果省略最后一个参数,则默认为空字符串。 |
| reverse | 反转字符串。 |
| right | 从右侧提取包含字符数的子字符串。 与 SUBSTRING(str, LENGTH(str) - n, n)相同。 |
| rlike | 检查字符串是否与特定的正则表达式模式匹配。 |
| round | 在提供可选刻度和可选舍入模式时对数字进行舍入。 如果省略刻度,则默认为 0。 如果省略模式,则默认为 ROUND_HALF_UP(5). |
| rpad | 使用提供的填充字符在字符串右侧进行填充,直到达到指定长度。 如果字符串等于或大于长度,则字符串将被剪裁为长度。 |
| rtrim | 在右侧裁剪掉尾随字符的字符串。 如果未指定第二个参数,它将剪裁空格。 否则,它会剪裁第二个参数中指定的任何字符。 |
| sha1 | 计算一组不同基元数据类型的列的 SHA-1 摘要,并返回 40 个字符的十六进制字符串。 可以用它来计算数据行的指纹。 |
| sha2 | 当给定一个位长时,计算一组具有不同基元数据类型的列的 SHA-2 摘要,该长度只能是值0(256)、224、256、384或者512。 可以用它来计算数据行的指纹。 |
| sin | 计算正弦值。 |
| sinh | 计算双曲正弦值。 |
| soundex | 获取字符串的 soundex 代码。 |
| split | 基于分隔符拆分字符串,并返回字符串数组。 |
| sqrt | 计算一个数的平方根。 |
| startsWith | 检查字符串是否以提供的字符串开头。 |
| substring | 从某个位置提取特定长度的子字符串。 位置从 1 开始。 如果省略长度,则默认为字符串的末尾。 |
| substringIndex | 提取第 count 次出现的分隔符之前的子字符串。 如果 count 为正,则返回最终的分隔符左侧的所有内容(从左侧开始计算)。 如果 count 为负,则返回最终的分隔符右侧的所有内容(从右侧开始计算)。 |
| tan | 计算正切值。 |
| tanh | 计算双曲正切值。 |
| translate | 将一组字符替换为字符串中的另一组字符。 字符可以一对一替换。 |
| trim | 裁剪掉前导和尾随字符的字符串。 如果未指定第二个参数,它将剪裁空格。 否则,它会剪裁第二个参数中指定的任何字符。 |
| true | 始终返回 true 值。 如果某列的名称是syntax(true()),请使用函数true。 |
| typeMatch | 匹配列的类型。 仅在模式表达式中使用。 数字与短、整数、长、双精度、浮点数或小数匹配。 整型匹配短、整数和长。 小数部分匹配双精度、浮点数和十进制数。 日期时间匹配日期或时间戳类型。 |
| unescape | 根据格式取消转义字符串。 可接受的格式为json、xml、ecmascript、html和java。 |
| upper | 将字符串大写。 |
| uuid | 返回生成的 UUID。 |
| xor | 提供逻辑 XOR 运算符。 与 ^ 运算符相同。 |