函数总览

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

全局操作函数

函数分类

函数名称

说明

流程控制函数

e_if

条件与操作组合。

  • 满足条件则进行对应操作,不满足条件则不进行对应操作,直接进行下一个条件判断。

  • 对于某一条日志,如果其中某一操作删除了日志,则不会再执行后续操作。

e_if_else

根据条件判断的结果进行对应操作。

e_switch

条件与操作的组合。

  • 满足条件则进行对应操作并返回结果,不满足条件则不进行对应操作,直接进行下一个条件判断。

  • 如果没有满足任何条件,但配置了默认参数,则执行默认配置的操作并返回结果。

  • 对于某一条日志,如果其中某一操作删除了日志,则不会再执行后续操作。

e_compose

组合一系列操作。

  • 常用于e_if、e_switch、e_if_else中组合操作。

  • 依次调用操作,将日志传递转换并返回最后的日志。

  • 对于某一条日志,如果其中某一操作删除了日志,则不会再执行后续操作。

事件操作函数

e_drop

根据条件判断是否丢弃日志。

e_keep

根据条件判断是否保留日志。

e_split

基于日志字段的值分裂出多条日志,并且支持通过JMES提取字段后再进行分裂。

e_output

输出日志到指定的Logstore中,并可配置输出时的topic、source、tag和shard hash信息。输出后对应的日志不再执行后面的加工规则。

e_coutput

输出日志到指定的Logstore中,并可配置输出时的topic、source、tag和shard hash信息。输出后继续执行后面的加工规则。

e_to_metric

将日志格式转化为时序存储(MetricStore)的格式。

字段操作函数

v

获得日志特定字段的值。当同时传入多个字段名时,返回日志中第一个存在的字段的值。

e_set

添加新字段或为现有字段设置新的字段值。

e_drop_fields

删除符合条件的日志字段。

e_keep_fields

保留符合条件的日志字段。

e_pack_fields

打包日志字段,并输出到新的字段中。

e_rename

重命名符合条件的日志字段名称。

字段值提取函数

e_regex

根据正则表达式提取字段的值并赋值给其他字段。

e_json

对日志特定字段中的JSON对象进行JSON操作,包括JSON展开、JMES提取或者JMES提取后再展开。

e_kv

通过quote提取多个源字段中的键值对信息。

e_kv_delimit

通过分隔符提取源字段中的键值对信息。

e_csv

使用自定义的分隔符与预定义的字段名,从特定字段中提取多个字段。默认分隔符为半角逗号(,)。

e_tsv

使用自定义的分隔符与预定义的字段名,从特定字段中提取多个字段。默认分隔符为\t

e_psv

使用自定义的分隔符与预定义的字段名,从特定字段中提取多个字段。默认分隔符为竖线(|)。

e_syslogrfc

根据Syslog协议由已知priority值计算出facility和severity,并且匹配相应的level信息。

e_anchor

使用定义的anchor_rules规则提取字符串。

映射富化函数

e_dict_map

在映射关系的字典中,根据输入的字段映射出一个新字段。

e_table_map

在映射表格中查找对应的行,根据输入的字段返回字段的值。

e_tablestore_map

以阿里云表格存储(Tablestore)作为维表数据对原始日志进行富化。

e_redis_map

以阿里云Redis作为维表数据对原始日志进行富化。

表达式函数

函数分类

函数名称

说明

事件检查函数

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_MO

dt_add函数中传递给weekday参数的值,用于表示特定星期一的偏移量。

dt_TU

dt_add函数中传递给weekday参数的值,用于表示特定星期二的偏移量。

dt_WE

dt_add函数中传递给weekday参数的值,用于表示特定星期三的偏移量。

dt_TH

dt_add函数中传递给weekday参数的值,用于表示特定星期四的偏移量。

dt_FR

dt_add函数中传递给weekday参数的值,用于表示特定星期五的偏移量。

dt_SA

dt_add函数中传递给weekday参数的值,用于表示特定星期六的偏移量。

dt_SU

dt_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下的文件内容,支持定期更新数据。