本文列举数据加工任务所涉及的所有函数。
全局操作函数
函数分类 | 函数名称 | 说明 |
e_if | 条件与操作组合。
| |
e_if_else | 根据条件判断的结果进行对应操作。 | |
e_switch | 条件与操作的组合。
| |
e_compose | 组合一系列操作。
| |
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 | 使用自定义的分隔符与预定义的字段名,从特定字段中提取多个字段。默认分隔符为 | |
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 | 按照 | |
op_ge | 按照 | |
op_gt | 按照 | |
op_le | 按照 | |
op_lt | 按照 | |
op_ne | 按照 | |
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 | 将字符串中的 | |
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_TU |
| |
dt_WE |
| |
dt_TH |
| |
dt_FR |
| |
dt_SA |
| |
dt_SU |
| |
dt_astimezone | 将值或时间表达式的值转换为特定时区的日期时间对象。 | |
dt_diff | 按照特定粒度获取两个值或时间表达式值的差异值。 | |
regex_select | 根据正则表达式提取符合条件的值。 | |
regex_findall | 根据正则表达式获得符合条件的所有值列表。 | |
regex_match | 判断是否匹配正则表达式。 | |
regex_replace | 根据正则表达式替换字符串中的指定字符。 | |
regex_split | 将一个字符串分割成字符串数组。 | |
grok | 根据正则表达式提取特定的值。 | |
json_select | 根据JMES语法提取或计算JSON表达式中特定的值。 | |
json_parse | 将值解析为JSON对象。 | |
xml_to_json | 将XML数据转成JSON再做展开操作。 | |
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下的文件内容,支持定期更新数据。 |