本文列举数据加工任务所涉及的表达式函数。

函数分类函数名称说明
事件检查函数e_has判断日志字段是否存在。
e_not_has判断日志字段是否不存在。
e_search提供一种简化,类似Lucene语法的日志搜索方式。
e_match、e_match_all、e_match_any判断当前日志字段的值是否满足正则表达式。
操作符函数op_if根据判断条件返回不同表达式的值。
op_ifnull返回第一个值不为None的表达式的值。
op_coalesce返回第一个值不为None的表达式的值。
op_nullif如果表达式1等于表达式2,返回None。否则返回表达式1的值。
op_and使用逻辑运算and,对任意类型值进行真假判断,所有参数值为真时返回True。
op_not使用逻辑运算not,对任意类型值进行真假判断,返回参数值的反义布尔值。
op_or使用逻辑运算or,对任意类型值进行真假判断。当任意参数值为真时返回True,所有参数值为假时返回False。
op_eq按照a==b条件进行计算,返回True或False。
op_ge按照a>=b条件进行计算,返回True或False。
op_gt按照a>b条件进行计算,返回True或False。
op_le按照a<=b条件进行计算,返回True或False。
op_lt按照a<b条件进行计算,返回True或False。
op_ne按照a!=b条件进行计算,返回True或False。
op_len计算文本字符串中的字符数,可用于字符串和其他返回元组、列表、字典的表达式。
op_in判断字符串、元组、列表或字典中是否包含特定元素,返回True或False。
op_not_in判断字符串、元组、列表或字典中是否不包含特定元素,返回True或False。
op_slice对指定字符串、数组、元组进行截取。
op_index根据字符串、数组、元组的下标返回其对应的元素。
op_add计算多个值的和,可以是字符串或者数字等。
op_max计算多个字段或表达式表示的数值的最大值。
op_min计算多个字段或表达式表示的数值的最小值。
转换函数ct_int将字段或表达式的值转换为整数。
ct_float将字段或表达式的值转换为浮点数。
ct_str将字段或表达式的值转换为字符串。
ct_bool将字段或表达式值转换为布尔值。
ct_chr将字段或表达式的ANSI值、Unicode值转换为对应字符。
ct_ord将字段或表达式的字符转换为对应ANSI值、Unicode值。
ct_hex将字段或表达式的数值转换为十六进制数。
ct_oct将字段或表达式的数值转换为八进制数。
ct_bin将字段或表达式的数值转换为二进制数。
bin2oct将二进制字节字符串转换为八进制字符串。
bin2hex将二进制字节字符串转换为十六进制字符串。
算术函数op_abs计算传入值的绝对值。
op_div_floor对传入值进行整除运算。
op_div_true对传入值进行除法运算。
op_pow对传入值进行幂值计算。
op_mul对传入值进行乘法运算。
op_neg计算传入值的相反数。
op_mod对传入值进行模计算。
op_sub对传入值进行减法运算。
op_round对传入值进行四舍五入操作。
op_sum对传入值进行求和运算。
mat_ceil对传入值进行向上取整操作。
mat_exp以常数e为底的指数函数。
mat_fabs计算传入值的绝对值。
mat_floor对传入值进行向下取整操作。
mat_log计算传入值的对数。
mat_log10计算以10为基数的传入值的对数。
mat_sqrt计算传入值的平方根。
mat_degrees将弧度转换为角度。
mat_radians将角度转换为弧度。
mat_sin计算传入值弧度的正弦值。
mat_cos计算传入值弧度的余弦值。
mat_tan计算传入值弧度的正切值。
mat_acos计算传入值的反余弦弧度值。
mat_asin计算传入值的反正弦弧度值。
mat_atan计算传入值的反正切弧度值。
mat_atan2计算坐标值的反正切值。
mat_atanh计算传入值的反双曲正切值。
mat_hypot计算传入值得欧几里德范数。
字符串函数str_format按照指定格式对字符串进行格式化。
str_join通过连接符将输入的字符串连接生成一个新的字符串。
str_zip将两个值或表达式的字符串进行并发分裂然后再合并成一个字符串。
str_encode按照指定的编码格式对字符串进行编码。
str_decode按照指定的编码格式对传入值进行解码。
str_hex_escape_encode转义特殊字符,支持将十六进制字符转义为中文字符。
str_sort将指定的对象进行排序。
str_reverse将一个字符串进行反转。
str_replace根据规则将旧字符串替换成新字符串。
str_logtash_config_normalize将Logstash配置语言转成JSON格式。
str_translate将字符串中的指定字符按照对应关系进行替换。
str_strip删除字符串中指定的字符。
str_lstrip删除字符串开头的指定字符。
str_rstrip删除字符串结尾的指定字符。
str_lower将字符串中所有大写字符转换为小写字符。
str_upper将字符串中所有小写字符转换为大写字符。
str_title将所有单词的首个字母转化为大写,其余字母均为小写。
str_capitalize将字符串的第一个字母转化为大写,其他字母转化为小写。
str_swapcase对字符串的大小写字母进行转换。
str_count统计字符串里某个字符出现的次数。
str_find判断原字符串中是否包含指定的子字符串。
str_rfind查找字符串中指定字符最后一次出现的位置。
str_endswith判断字符串是否以指定后缀结尾。
str_startswith判断字符串是否以指定字符串开头。
str_split通过指定分隔符对字符串进行分割。
str_splitlines通过换行符符对字符串进行分割。
str_partition根据指定的分隔符将字符串从左往右分割为三部分。
str_rpartition根据指定的分隔符将字符串从右往左分割为三部分。
str_center用指定字符将字符串填充到指定长度。
str_ljust用指定字符将字符串从结尾填充至指定长度。
str_rjust用指定字符将原字符串从开头填充至指定长度。
str_zfill用字符0从开头将字符串填充至指定长度。
str_expandtabs将字符串中的\t转为空格。
str_isalnum判断字符串是仅由字母和数字组成。
str_isalpha判断字符串是否仅由字母组成。
str_isascii判断字符串是否在ASCII中。
str_isdecimal判断字符串是否仅包含十进制字符。
str_isdigit判断字符串是否仅由数字组成。
str_isidentifier判断字符串是否是有效的Python标识符,也可以用来判断变量名是否合法。
str_islower判断字符串是否由小写字母组成。
str_isnumeric判断字符串是否由数字组成。
str_isprintable判断字符串中是否所有字符都是可打印字符。
str_isspace判断字符串是否仅由空格字符组成。
str_istitle判断字符串中所有单词的拼写首字母是否为大写,且其他字母为小写。
str_isupper字符串中所有的字母是否都为大写。
str_uuid生成随机UUID。
日期时间函数dt_parse将值或时间表达式的值转换为日期时间对象。
dt_str将值或时间表达式的值转换为字符串。
dt_parsetimestamp将值或时间表达式的值转换为Unix时间戳。
dt_prop获取值或时间表达式值的特定属性,包括所属day、year等。
dt_now获取当前日期时间。
dt_today获取当前日期,不含时间。
dt_utcnow获取当前时区的当前日期时间对象。
dt_fromtimestamp将Unix时间戳转换为日期时间对象。
dt_utcfromtimestamp将Unix时间戳转换为当前时区的日期时间对象。
dt_strptime将时间字符串解析为日期时间对象。
dt_currentstamp获取当前Unix时间戳。
dt_totimestamp将日期时间对象转换为Unix时间戳。
dt_strftime将日期时间对象按照指定格式转换为字符串。
dt_strftimestamp将Unix时间戳按照指定格式转换为字符串。
dt_truncate从值或时间表达式中截取指定的时间粒度。
dt_add根据指定的时间粒度修改值或时间表达式的值。
dt_MOdt_add函数中传递给weekday参数的值,用于表示特定星期一的偏移量。
dt_TUdt_add函数中传递给weekday参数的值,用于表示特定星期二的偏移量。
dt_WEdt_add函数中传递给weekday参数的值,用于表示特定星期三的偏移量。
dt_THdt_add函数中传递给weekday参数的值,用于表示特定星期四的偏移量。
dt_FRdt_add函数中传递给weekday参数的值,用于表示特定星期五的偏移量。
dt_SAdt_add函数中传递给weekday参数的值,用于表示特定星期六的偏移量。
dt_SUdt_add函数中传递给weekday参数的值,用于表示特定星期日的偏移量。
dt_astimezone将值或时间表达式的值转换为特定时区的日期时间对象。
dt_diff按照特定粒度获取两个值或时间表达式值的差异值。
正则表达式函数regex_select根据正则表达式提取符合条件的值。
regex_findall根据正则表达式获得符合条件的所有值列表。
regex_match判断是否匹配正则表达式。
regex_replace根据正则表达式替换字符串中的指定字符。
regex_split将一个字符串分割成字符串数组。
GROK函数grok根据正则表达式提取特定的值。
特定结构化数据函数json_select根据JMES语法提取或计算JSON表达式中特定的值。
json_parse将值解析为JSON对象。
xml_to_json将xml数据转成JSON再做展开操作。
IP解析函数geo_parse根据IP地址解析出所属国家、省份和市信息。
ip_cidrmatch判断IP地址是否属于CIDR地址块。
ip_version判断IP地址为IPv4还是IPv6。
ip_type判断IP地址为私有地址还是公有地址。
ip_makenet将单个IP地址转换为CIDR地址块。
ip_to_format将输入的CIDR地址块按照Prefixlen或者Netmask格式输出。
ip_overlaps判断两个网段是否存在重叠。
ip2long将字符串格式的IP地址转换成长整型数据。
long2ip将长整型数据转换成字符串格式的IP地址。
编码解码函数url_encoding对数据进行URL编码。
url_decoding对数据进行URL解码。
protobuf_decoding按照传入的Protobuf模板将数据解析成JSON格式。
str_encode按照指定的编码格式对字符串进行编码。
str_decode按照指定的编码格式对传入值进行解码。
base64_encoding对数据进行base64编码。
base64_decoding对数据进行base64解码。
html_encoding对数据进行HTML编码。
html_decoding对数据进行HTML解码。
md5_encoding对数据进行MD5编码。
sha1_encoding对数据进行SHA1编码。
crc32_encoding计算数据的循环冗余校验码。
gzip_compress将数据进行压缩并编码。
gzip_decompress将压缩数据解压缩。
zlib_compress将数据进行压缩并编码。
zlib_decompress将压缩数据解压缩。
aes_encrypt对数据进行AES加密。
aes_decrypt对数据进行AES解密。
jwt_encoding基于JSON Web Token (JWT)标准,对JSON数据进行编码。
jwt_decoding基于JSON Web Token (JWT)标准,将数据解码为原始JSON。
hashids_encoding使用Hashids库对数据进行编码。
hashids_decoding对已使用Hashids库编码的数据进行解码。
解析函数ua_parse_device解析User-Agent中的设备信息。
ua_parse_os解析User-Agent中的操作系统信息。
ua_parse_agent解析User-Agent中的浏览器信息。
ua_parse_all解析User-Agent中所有信息。
url_parse解析URL的组成部分。
url_parse_qs解析URL中查询字符串的组成部分。
列表函数lst_make构建列表。
lst_insert在列表特定位置插入元素。
lst_append在列表结尾添加元素。
lst_delete_at在列表特定位置删除元素。
lst_reverse反向排序列表。
lst_get获取列表、元组中的一个元素。
字典函数dct_make构建字典。
dct_update更新字典。
dct_delete删除字典值。
dct_keys获取字典关键字列表。
dct_values获取字典值列表。
dct_get获取字典关键字的值。
表格函数tab_parse_csv从CSV格式的文本中构建表格。
tab_to_dict从表格构建字典。
资源函数res_local从当前数据加工任务中拉取高级参数配置信息。
res_rds_mysql从RDS MySQL数据库中拉取数据库表内容或SQL执行结果,支持定期更新数据。
res_log_logstore_pull从另一个Logstore中拉取数据,支持持续拉取数据。
res_oss_file从OSS中获取特定Bucket下的文件内容,支持定期更新数据。