华为云用户手册

  • str_isprintable 判断字符串中是否所有字符都是可打印字符。 函数格式 str_isprintable(value) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被检测的字符串。 返回结果 true/false。 函数示例 测试数据 { "key": "@#11!" } 加工规则 e_set("str_isprintable", str_isprintable(v("key"))) 加工结果 key: @#11! str_isprintable: true
  • str_isspace 判断字符串是否仅由空格字符组成。 函数格式 str_isspace(value) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被检测的字符串。 返回结果 true/false。 函数示例 测试数据 { "key": "@#11!" } 加工规则 e_set("str_isspace", str_isspace(v("key"))) 加工结果 key: @#11! str_isspace: truefalse
  • str_isalpha 判断字符串是否仅由字母组成。 函数格式 str_isalpha(value) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被检测的字符串 返回结果 true/false。 函数示例 测试数据 { "value": "ltsv5" } 加工规则 e_set("str_isalpha", str_isalpha(v("value"))) 加工结果 value: ltsv5 str_isalpha: false
  • str_isidentifier 字符串是否是有效的Python标识符,也可以用来判断变量名是否合法。 函数格式 str_isidentifier(value) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被检测的字符串。 返回结果 true/false。 函数示例 测试数据 { "key": "int" } 加工规则 e_set("str_isidentifier", str_isidentifier(v("key"))) 加工结果 key: int str_isidentifier: true
  • str_isalnum 判断字符串是否仅由字母和数字组成。 函数格式 str_isalnum(value) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被检测的字符串。 返回结果 true/false。 函数示例 测试数据 { "value": "ltsv5" } 加工规则 e_set("str_isalnum", str_isalnum(v("value"))) 加工结果 value: ltsv5 str_isalnum: true
  • str_isascii 判断字符串是否在ASCII中。 函数格式 str_isascii(value) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被检测的字符串。 返回结果 true/false。 函数示例 测试数据 { "value": "{ltsv5}#@" } 加工规则 e_set("str_isascii", str_isascii(v("value"))) 加工结果 value: {ltsv5}#@ str_isascii: true
  • str_isdigit 判断字符串是否仅由数字组成。 函数格式 str_isdigit(value) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被检测的字符串。 返回结果 true/false。 函数示例 测试数据 { "value": "111" } 加工规则 e_set("str_isdigit", str_isdigit(v("value"))) 加工结果 value: 111 str_isdigit: true
  • str_isdecimal 判断字符串是否仅包含十进制字符。 函数格式 str_isdecimal(value) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被检测的字符串。 返回结果 true/false。 函数示例 测试数据 { "value": "111" } 加工规则 e_set("str_isdecimal", str_isdecimal(v("value"))) 加工结果 value: 111 str_isdecimal: true
  • ct_chr 使用ct_chr函数将字段或表达式的ANSI值、Unicode值转换为对应字符。 函数格式 ct_chr(value) 参数说明 参数名称 参数类型 是否必填 说明 value 数字或数字字符串 是 待转换的值。 返回结果 返回chr类型对应的字符。 函数示例 测试数据 { "num": 78 } 加工规则 e_set("ct_chr", ct_chr(v("number"))) 加工结果 number: 78 ct_chr: N
  • ct_oct 使用ct_oct函数将字段或表达式的数值转换为八进制数。 函数格式 ct_oct(value) 参数说明 参数名称 参数类型 是否必填 说明 value 数字或数字字符串 是 待转换的值。 返回结果 返回八进制的数值。 函数示例 测试数据 { "number": 123 } 加工规则 e_set("ct_oct", ct_oct(v("number"))) 加工结果 number: 123 ct_oct: 0o173
  • ct_hex 使用ct_hex函数将字段或表达式的数值转换为十六进制数。 函数格式 ct_hex(value) 参数说明 参数名称 参数类型 是否必填 说明 value 数字或数字字符串 是 待转换的值。 返回结果 返回十六进制的数值。 函数示例 测试数据 { "number": 123 } 加工规则 e_set("ct_hex", ct_hex(v("number"))) 加工结果 number: 123 ct_hex: 0x7b
  • bin2oct 使用bin2oct函数将二进制数转换为八进制数。 函数格式 bin2oct(binary) 参数说明 参数名称 参数类型 是否必填 说明 binary Binary 是 Binary类型的字符串。 返回结果 返回八进制的字符串。 函数示例 测试数据 { "test": "test" } 加工规则 e_set("new",bin2oct(base64_decoding("ARi8WnFiLAAACHcAGgkADV37Xs8BXftezgAdqwF9"))) 加工结果 test : test new : 214274264705421300000002073400064044000325677327547401273755366340003552600575
  • ct_ord 使用ct_ord函数将字段或表达式的字符转换为对应ANSI值、Unicode值。 函数格式 ct_ord(value) 参数说明 参数名称 参数类型 是否必填 说明 value String 是 待转换的值,长度为1。 返回结果 返回对应的ANSI值或Unicode值。 函数示例 测试数据 { "world": "a" } 加工规则 e_set("ct_ord", ct_ord(v("world"))) 加工结果 world: a ct_ord: 97
  • ct_bin 使用ct_bin将字段或表达式的数值转换为二进制数。 函数格式 ct_bin(value) 参数说明 参数名称 参数类型 是否必填 说明 value 数字或数字字符串 是 待转换的值。 返回结果 返回二进制的数值。 函数示例 测试数据 { "number": 123 } 加工规则 e_set("ct_bin", ct_bin(v("number"))) 加工结果 number: 123 ct_bin: 0b1111011
  • bin2hex 使用bin2hex函数将二进制数转换为十六进制字符串。 函数格式 bin2hex(binary) 参数说明 参数名称 参数类型 是否必填 说明 binary Binary 是 Binary类型的字符串。 返回结果 返回十六进制的字符串。 函数示例 测试数据 { "test": "test" } 加工规则 e_set("new",bin2hex(base64_decoding("ARi8WnFiLAAACHcAGgkADV37Xs8BXftezgAdqwF9"))) 加工结果 test : test new :0118bc5a71622c00000877001a09000d5dfb5ecf015dfb5ece001dab017d
  • ct_int 使用ct_int函数将字段或表达式的值转换为整数。 函数格式 ct_int(value, base=10) 参数说明 参数名称 参数类型 是否必填 说明 value 数字或数字字符串 是 待转换的值。 base Number 否 参数值所代表的进制,默认为十进制。例如base=8,表示将八进制要转成十进制。 返回结果 返回整型数值。 函数示例 示例1:将字符串转换成整型。 测试数据 { "number": 2 } 加工规则 e_set("int_number", ct_int(v("number"))) 加工结果 number: 2 int_number: 2 示例2:将十六进制转换成十进制。 测试数据 { "number": AB } 加工规则 e_set("int_number", ct_int(v("number"),base=16)) 加工结果 number: AB int_number: 171
  • ct_float 使用ct_float函数将字段或表达式的值转换为浮点数。 函数格式 ct_float(value) 参数说明 参数名称 参数类型 是否必填 说明 value 数字或数字字符串 是 待转换的值。 返回结果 返回浮点类型数值。 函数示例 测试数据 { "price": 2 } 加工规则 e_set("price_float", ct_float(v("price"))) 加工结果 price: 2 price_float: 2.0
  • 函数列表 表1 转换函数列表 类型 函数名称 功能描述 基础类型转换 ct_int 将字段或表达式的值转换为整数。 ct_float 将字段或表达式的值转换为浮点数。 ct_str 将字段或表达式的值转换为字符串。 ct_bool 将字段或表达式值转换为布尔值。 数字转换 ct_chr 将字段或表达式的ANSI值、Unicode值转换为对应字符。 ct_ord 将字段或表达式的字符转换为对应ANSI值、Unicode值。 ct_hex 将字段或表达式的数值转换为十六进制数。 ct_oct 将字段或表达式的数值转换为八进制数。 ct_bin 将字段或表达式的数值转换为二进制数。 进制转换 bin2oct 将二进制数转换为八进制数。 bin2hex 将二进制数转换为十六进制字符串。
  • 解析方式介绍 云日志 服务支持两种日志结构化解析方式:云端结构化解析和ICAgent结构化解析,且一个日志流只能配置一种结构化方式,例如选择云端结构化解析后,不能再选择ICAgent结构化解析,需要删除后,才能重新选择。更多信息请参考图1。 若用户在日志接入的时候没有配置结构化解析,可以单独给目标日志流配置ICAgent结构化解析或云端结构化解析。 ICAgent结构化解析是在采集侧做结构化,利用的是客户节点上的资源,将结构化完成的数据上报到LTS。推荐用户使用ICAgent结构化解析的方式,更多内容请参考ICAgent结构化解析规则说明。 云端结构化解析是通过不同的日志提取方式将日志流中的日志进行结构化,云端结构化解析会消耗LTS服务端算力,未来会按照日志大小收取日志加工流量费用。 图1 不同解析方式
  • compare函数 compare函数用于对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。 语法格式 对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。 compare(x,n) 对比当前时间周期内的计算结果与n1、n2、n3秒之前时间周期内的计算结果。 compare(x, n1, n2, n3...) 参数说明 表1 同比函数参数说明 参数 说明 x 目标列的列名,参数值为double类型或long类型。 n 时间窗口,单位为秒。例如3600(1小时)、86400(1天)、604800(1周)、31622400(1年)。 返回类型 JSON数组。格式为[当前计算结果,n秒前的计算结果,当前计算结果与n秒前计算结果的比值]。 示例说明 计算当前1小时和昨天同时段的访问量比值。 选择查询和分析的时间范围为1小时(整点时间),并执行如下查询和分析语句。其中86400表示当前时间减去86400秒(1天)。 SELECT compare(PV, 86400) FROM (SELECT count(*) AS PV ) 查询和分析结果 图1 查询和分析结果 5994.0表示当前1小时(例如2021-01-02 00:00:00~2021-01-02 01:00:00)的网站访问量。 6000.0表示昨天同时段(例如2021-01-01 00:00:00~2021-01-01 01:00:00)的网站访问量。 0.999表示当前1小时与昨天同时段的网站访问量比值。 分列显示查询和分析结果 SELECT diff[1] as "today", diff[2] as "yesterday", diff[3] as "ratio" FROM(SELECT compare(pv, 86400) AS diff FROM (SELECT count(*) AS pv )) 图2 查询和分析结果
  • ts_compare函数 ts_compare函数用于对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。 ts_compare函数必须按照时间列进行分组(GROUP BY)。 语法格式 对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。 ts_compare(x, n) 对比当前时间周期内的计算结果与n1、n2、n3秒之前时间周期内的计算结果。 ts_compare(x, n1, n2, n3...) 参数说明 表2 环比函数参数说明 参数 说明 x 参数值为double类型或long类型。 n 时间窗口,单位为秒。例如3600(1小时)、86400(1天)、604800(1周)、31622400(1年)。 返回类型 JSON数组。格式为[当前计算结果, n秒前的计算结果, 当前计算结果与n秒前计算结果的比值, n秒前的UNIX时间戳]。 示例说明 环比今天3小时与昨天3小时的网站访问量。 选择查询和分析的时间范围为今天某3小时,并执行如下查询和分析语句。其中86400表示当前时间减去86400秒(1天),date_trunc('hour',__time)表示使用date_trunc函数将时间对齐到小时。 查询和分析语句 SELECT t_time, ts_compare(PV, 86400) AS data FROM( SELECT date_trunc('hour', __time) AS t_time, count(*) AS PV GROUP BY t_time ORDER BY t_time ) GROUP BY t_time 查询和分析结果 t_time data 2021-10-26T06:00:00.000Z [159.0,224.0,0.7098214285714286,1.6351416E9] 2021-10-26T07:00:00.000Z [100.0,148.0,0.6756756756756757,1.6351452E9] 2021-10-26T08:00:00.000Z [100.0,100.0,1.0, 1.6016544E9, 1.6351488E9]
  • 函数列表 类型 函数 说明 多字符串操作 str_format 按照指定格式对字符串进行格式化。 str_join 通过连接符将输入的字符串连接生成一个新的字符串。 str_zip 将两个值或表达式的字符串进行并发分裂然后再合并成一个字符串。 排序、反转、替换 str_sort 字符串排序。 str_reverse 将一个字符串进行反转。 str_replace 根据规则将旧字符串替换成新字符串。 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。
  • 示例及说明 GREATEST([expr1, ...])/ LEAST([expr1, ...])函数 GREATEST函数,计算零个或多个表达式,并根据上述比较返回最大值。 LEAST函数,计算零个或多个表达式,并根据上述比较返回最小值。 字段样例 Num: 11785730 查询和分析语句 select Num,GREATEST( "Num"/10,(select count(1)) ),LEAST("Num"/10,(select count(1))) 查询和分析结果 表1 归约函数查询和分析结果 Num EXPR$1 EXPR$2 11785730 1178573 1
  • 功能描述 归约函数对零个或多个表达式进行操作,并返回单个表达式。如果没有表达式作为参数传递,则结果为 NULL。表达式必须全部转换为公共数据类型,即结果的类型有: 如果所有的参数都是 NULL,结果是 NULL,否则,NULL 参数被忽略。 如果所有的参数包含了数字和字符串的混合,参数都被解释为字符串。 如果所有的参数是整型数字,参数都被解释为长整型。 如果所有的参数是数值且至少一个参数是double,则参数都被解释为double。
  • str_replace 函数格式 str_replace(value, old, new, count) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被替换的值。 old 任意(自动转为String) 是 需要被替换的字符串。 new 任意(自动转为String) 是 替换后新的字符串。 count Number 否 替换次数,可选项。如果不设置count,则表示替换所有。 返回结果 替换后的新字符串。 函数示例 测试数据:无 加工规则 e_set("str_replace", str_replace("this is string example", "is", "was")) 加工结果 str_replace: thwas was string example
  • str_translate 函数格式 str_translate(value, replace_string, mapping_string) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被替换的原字符串。 replace_string 任意(自动转为String) 是 需要替换的字符集合。 mapping_string 任意(自动转为String) 是 替换后的字符集合。 返回结果 处理后的字符串。 函数示例 测试数据:无 加工规则 e_set("str_translate", str_translate("lts", "ts", "34")) 加工结果 str_translate: l34
  • str_zip 函数格式 str_zip(value1,value2,combine_sep=None,sep=None,quote=None,lparse=None,rparse=None) 参数说明 参数名称 参数类型 是否必填 说明 value1 任意(自动转为String) 是 需要被合并的值。 value2 任意(自动转为String) 是 需要被合并的值。 combine_sep 任意(自动转为String) 否 合并时元素之间的合并标识,默认为# sep 任意(自动转为String) 否 合并后元素之间的分隔符,仅支持单个字符,默认为, quote 任意(自动转为String) 否 将合并后的元素括起来的字符,当值包含分隔符时需要使用,默认为" lparse 任意(自动转为String) 否 指定value1中元素之间的分隔符和引用符,默认分隔符为,,默认引用符为"。格式为lparse=(',', '"')。 说明 引用符优先级高于分隔符。 rparse 任意(自动转为String) 否 指定value2中元素之间的分隔符和引用符,默认分隔符为,,默认引用符为"。格式为rparse=(',', '"')。 说明 引用符优先级高于分隔符。 返回结果 合并后的字符串。 函数示例 示例1:sep的使用。 测试数据 { "key1": "value1,value11", "key2": "value2,value21" } 加工规则 e_set("combine", str_zip(v("key1"), v("key2"), sep="|")) 加工结果 key1: value1,value11 key2: value2,value21 combine: value1#value2|value11#value21 示例2:quote的使用。 测试数据 { "key1": "\"value1, value2\", value3, \"value4,value5\"", "key2": "value11,\"value12,value13\",value14" } 加工规则 e_set("combine", str_zip(v("key1"), v("key2"), quote='|')) 加工结果 key1: "value1, value2", value3, "value4,value5" key2: value11,"value12,value13",value14 combine: |value1,value2#value11|,|value3#value12,value13|,|value4,value5#value14| 示例3:不同长度的值。 测试数据 { "key1": "value1,value2", "key2": "value11,value12,value13" } 加工规则 e_set("combine", str_zip(v("key1"), v("key2"))) 加工结果 key1: value1,value2 key2: value11,value12,value13 combine: value1#value11,value2#value12 示例4:lparse和rparse的使用。 测试数据 { "key1": "|value1, value1|, value2, |value3,value3|", "key2": "value11, #value12,value12#, value13" } 加工规则 e_set("combine", str_zip(v("key1"), v("key2"), lparse=(",", '|'), rparse=(",", '#'))) 加工结果 key1: |value1, value1|, value2, |value3,value3| key2: value11, #value12,value12#, value13 combine: "value1,value1#value11","value2#value12,value12","value3,value3#value13"
  • str_sort 函数格式 str_sort(value, reverse=false) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被排序的原字符串。 reverse Boolean 否 默认为false,表示升序排列。 返回结果 排序后的字符串。 函数示例 测试数据 { "key1": "value" } 加工规则 e_set("str_sort", str_sort(v("key1"))) 加工结果 key1: value str_sort: aeluv
  • str_reverse 函数格式 str_reverse(value) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被反转的值 返回结果 反转后的字符串。 函数示例 测试数据 { "data": "switch" } 加工规则 e_set("reverse_data", str_reverse(v("data"))) 加工结果 data: switch reverse_data: hctiws
  • str_join 函数格式 str_join(connector, str1, str2, ...) 参数说明 参数名称 参数类型 是否必填 说明 connector 任意(自动转为string) 是 连接符,比如#,$,%等 str1 任意(自动转为string) 是 待连接的值1 str2 任意(自动转为string) 是 待连接的值2 返回结果 连接后的字符串。 函数示例 测试数据:无 加工规则 e_set("email", str_join("@", "lts", "aa", "com")) 加工结果 email: lts@aa@com
共100000条