华为云用户手册

  • str_splitlines 通过换行符对字符串进行分割。 函数格式 str_splitlines(value, keepends) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被分割的原字符串。 keepends Boolean 否 在输出结果里是否去掉换行符(\r、\r\n、\n)。默认为false,不包含换行符,如果为true,则保留换行符。 返回结果 处理后的列表。 函数示例 测试数据 { "value": "lts\nis\ra\r\n" } 加工规则 e_set("str_splitlines", str_splitlines(v("value"), false)) 加工结果 value: lts\nis\ra\r\n str_splitlines: ['lts','is','a']
  • str_startswith 判断字符串是否以指定字符串开头。 函数格式 str_startswith(value, prefix, start, end) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被判断的原字符串。 prefix 任意(自动转为String) 是 前缀规则。该参数可以是一个字符串或者是一个元素。 start Number 否 字符串检测的起始位置。0表示第一个字符,-1表示倒数第一个字符。 end Number 否 字符串检测的结束位置。0表示第一个字符,-1表示倒数第一个字符。 返回结果 如果字符串以指定前缀开头则返回true,否则返回false。 函数示例 测试数据 { "name": "lts is a log service" } 加工规则 e_set("str_startswith",str_startswith(v("name"), "lts")) 加工结果 name: lts is a log service str_startswith: true
  • str_partition 根据指定的分隔符将字符串从左往右分割为三部分。 函数格式 str_partition(value, substr) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被分割的字符串。 substr 任意(自动转为String) 否 指定的分隔符。 返回结果 分隔后的列表。 函数示例 测试数据 { "address":"big.middle.small" } 加工规则 e_set("str_partition", str_partition(v("address"), ".")) 加工结果 address: big.middle.small str_partition: ["big",".","middle.small"]
  • str_rpartition 根据指定的分隔符将字符串从右往左分割为三部分。 函数格式 str_rpartition(value, substr) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被分割的原字符串。 substr 任意(自动转为String) 否 指定的分隔符。 返回结果 分隔后的列表。 函数示例 测试数据 { "address":"big.middle.small" } 加工规则 e_set("str_partition", str_rpartition(v("address"), ".")) 加工结果 address: big.middle.small str_partition: ["big.middle",".","small"]
  • str_split 通过指定分隔符对字符串进行分割。 函数格式 str_split(value, sep=None, maxsplit=-1) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被分割的原字符串。 sep Number 否 分隔符,None表示空格。 maxsplit Number 否 最大分裂数。-1表示不限制。 返回结果 处理后的字符串。 函数示例 测试数据 { "content": "lts,a,log,service" } 加工规则 e_set("str_split", str_split(v("content"), ",")) 加工结果 content: lts,a,log,service str_split: ["lts","a","log","service"]
  • str_count 统计字符串里某个字符出现的次数。 函数格式 str_count(value, sub, start, end) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 被统计的原字符串。 sub 任意(自动转为String) 是 需要统计个数的字符。 start Number 否 字符串开始搜索的位置。 0(默认值):第一个字符。 -1:最后一个字符。 end Number 否 字符串中结束搜索的位置。 0:第一个字符。 -1(默认值):最后一个字符。 返回结果 返回指定字符出现的次数。 函数示例 测试数据 { "name": "lts is a log service" } 加工规则 e_set("str_count", str_count(v("name"), "l")) 加工结果 name: lts is a log service str_count: 2
  • str_rfind 判断原字符串中是否包含指定的子字符串。 函数格式 str_rfind(value, substr, beg, end) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 被查找的原字符串。 substr 任意(自动转为String) 是 需要查找的字符。 beg Number 否 开始查找的位置,默认为0。 end Number 否 结束查找的位置,默认为字符串的长度。 返回结果 返回字符或字符串最后一次出现的位置。 函数示例 测试数据 { "name": "lts is a log service" } 加工规则 e_set("str_rfind", str_rfind(v("name"), "i")) 加工结果 name: lts is a log service str_rfind: 17
  • str_find 判断原字符串中是否包含指定的子字符串。 函数格式 str_find(value, str, begin, end) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被查找的原字符串。 str 任意(自动转为String) 是 指定查找的子字符串。 begin Number 否 开始索引的位置。默认为0表示第一个字符,-1表示倒数第一个字符。 end Number 否 结束索引的位置。默认为字符串的长度。0表示第一个字符,-1表示倒数第一个字符。 返回结果 指定子字符串在原字符串中的位置。如果指定的子字符串在原字符串中出现多次,只返回第一次出现的子字符串的位置。 函数示例 测试数据 { "name": "lts is a log service" } 加工规则 e_set("str_find",str_find(v("name"), "l")) 加工结果 name: lts is a log service str_find: 0
  • mv_ordinal_of函数 返回数组中第一次出现expr的基于1的索引,如果未出现,则返回-1。 语法:mv_ordinal_of(arr, expr) 表30 参数说明 参数名称 描述 类型 是否必选 arr 原始数组 Array(String/Number) 是 expr 指定元素 String/Number 是 返回值类型:Integer类型 示例:SELECT MV_ORDINAL_OF(ARRAY('1','2','3','4','5'), '2') 表31 查询分析结果 类型 场景 查询语句 MV_ORDINAL_OF (ARRAY('1','2','3','4','5'), '2') 返回结果 2
  • mv_to_string函数 通过str指定分隔符连接arr所有元素。 语法:mv_to_string(arr, str) 表20 参数说明 参数名称 描述 类型 是否必选 arr 原始数组 Array(String/Number) 是 str 指定字符 String 是 返回值类型:String类型 示例:SELECT MV_TO_STRING(ARRAY('1','2','3','4','5'),'-') 表21 查询分析结果 类型 场景 查询语句 MV_TO_STRING(ARRAY('1','2','3','4','5'),'-') 返回结果 1-2-3-4-5
  • mv_offset函数 返回所提供的基于0的索引处的数组元素,或对于超出范围的索引返回null。 语法:mv_offset(arr, index) 表24 参数说明 参数名称 描述 类型 是否必选 arr 原始数组 Array(String/Number) 是 index 指定索引位置 Integer 是 返回值类型:String/Integer/Long/Boolean/Double类型 示例:SELECT MV_OFFSET(ARRAY('1','2','3','4','5'), 2) 表25 查询分析结果 类型 场景 查询语句 MV_OFFSET(ARRAY('1','2','3','4','5'), 2) 返回结果 3
  • mv_offset_of函数 返回数组中第一次出现expr的基于0的索引,如果未出现,则返回-1。 语法:mv_offset_of(arr, expr) 表28 参数说明 参数名称 描述 类型 是否必选 arr 原始数组 Array(String/Number) 是 expr 指定元素 String/Number 是 返回值类型:Integer类型 示例:SELECT MV_OFFSET_OF(ARRAY('1','2','3','4','5'), '2') 表29 查询分析结果 类型 场景 查询语句 MV_OFFSET_OF(ARRAY('1','2','3','4','5'), '2') 返回结果 1
  • string_to_mv函数 使用指定的分隔符str2将str1拆分为数组。 语法:string_to_mv(str1, str2) 表22 参数说明 参数名称 描述 类型 是否必选 str1 原始字符串 String 是 str2 指定字符 String 是 返回值类型:Array类型 示例:SELECT STRING_TO_MV('1-2-3-4-5','-') 表23 查询分析结果 类型 场景 查询语句 STRING_TO_MV ('1-2-3-4-5','-') 返回结果 ["1","2","3","4","5"]
  • mv_ordinal函数 返回所提供的基于1的索引处的数组元素,或对于超出范围的索引返回null。 语法:mv_ordinal(arr, index) 表26 参数说明 参数名称 描述 类型 是否必选 arr 原始数组 Array(String/Number) 是 index 指定索引位置 Integer 是 返回值类型:String/Integer/Long/Boolean/Double类型 示例:SELECT MV_ORDINAL(ARRAY('1','2','3','4','5'), 2) 表27 查询分析结果 类型 场景 查询语句 MV_ORDINAL (ARRAY('1','2','3','4','5'), 2) 返回结果 2
  • contains函数 判断数组中是否包含指定元素。如果包含,则返回true。 语法:contains(expr, ele) 表10 参数说明 参数名称 描述 类型 是否必选 expr 原始数组 Array(String/Number) 是 ele 指定的元素 String/Number 是 返回值类型:Boolean类型 示例:SELECT CONTAINS(ARRAY('1','2'),'1') 表11 查询分析结果 类型 场景 查询语句 CONTAINS(ARRAY('1','2'),'1') 返回结果 true
  • mv_contains函数 判断数组中是否包含指定元素。如果包含,则返回true,同contains。 语法:mv_contains(expr, ele) 表12 参数说明 参数名称 描述 类型 是否必选 expr 原始数组 Array(String/Number) 是 ele 指定的元素 String/Number 是 返回值类型:Boolean类型 示例:SELECT MV_CONTAINS(ARRAY('1','2'),'1') 表13 查询分析结果 类型 场景 查询语句 MV_CONTAINS(ARRAY('1','2'),'1') 返回结果 true
  • mv_prepend函数 将指定的元素添加到数组的开始位置。 语法:mv_prepend(expr, arr) 表14 参数说明 参数名称 描述 类型 是否必选 expr 指定的元素 String/Number 是 arr 原始数组 Array(String/Number) 是 返回值类型:Array类型 示例:SELECT MV_PREPEND('1', ARRAY ('1','2')) 表15 查询分析结果 类型 场景 查询语句 MV_PREPEND ('1', ARRAY ('1','2')) 返回结果 ["1","1","2"]
  • mv_slice函数 返回从start到end索引的数组。 语法:mv_slice(arr, start, end) 表18 参数说明 参数名称 描述 类型 是否必选 arr 原始数组 Array(String/Number) 是 start 起始位置 Integer 是 end 结束位置 Integer 是 返回值类型:Array类型 示例:SELECT MV_SLICE(ARRAY('1','2','3','4','5'), 2, 4) 表19 查询分析结果 类型 场景 查询语句 MV_SLICE(ARRAY('1','2','3','4','5'), 2, 4) 返回结果 ["3","4"]
  • mv_append函数 将指定的元素添加到数组的末尾。 语法:mv_append(arr, expr) 表16 参数说明 参数名称 描述 类型 是否必选 arr 原始数组 Array(String/Number) 是 expr 指定的元素 String/Number 是 返回值类型:Array类型 示例:SELECT MV_APPEND(ARRAY('1','2'),'1') 表17 查询分析结果 类型 场景 查询语句 MV_APPEND(ARRAY('1','2'), '1') 返回结果 ["1","2","1"]
  • 函数列表 表1 数组函数 函数 描述 array函数 将输入的参数构造成数组,参数类型必须相同。 array_position函数 获取指定元素的下标,下标从1开始。如果指定元素不存在,则返回0。 cardinality函数 计算数组中元素的个数。 mv_length函数 计算数组中元素的个数, 同cardinality。 contains函数 判断数组中是否包含指定元素。如果包含,则返回true。 mv_contains函数 判断数组中是否包含指定元素。如果包含,则返回true,同contains。 mv_prepend函数 将指定的元素添加到数组的开始位置。 mv_append函数 将指定的元素添加到数组的末尾。 mv_slice函数 返回从start到end索引的数组。 mv_to_string函数 通过str指定分隔符连接arr所有元素。 string_to_mv函数 使用指定的分隔符str2将str1拆分为数组 mv_offset函数 返回所提供的基于0的索引处的数组元素,或对于超出范围的索引返回null。 mv_ordinal函数 返回所提供的基于1的索引处的数组元素,或对于超出范围的索引返回null。 mv_offset_of函数 返回数组中第一次出现expr的基于0的索引,如果未出现,则返回-1。 mv_ordinal_of函数 返回数组中第一次出现expr的基于1的索引,如果未出现,则返回-1。
  • cardinality函数 计算数组中元素的个数。 语法:cardinality(expr) 表6 参数说明 参数名称 描述 类型 是否必选 expr 原始数组 Array(String/Number) 是 返回值类型:String类型 示例:SELECT CARDINALITY(ARRAY('1','2','3')) 表7 查询分析结果 类型 场景 查询语句 CARDINALITY(ARRAY('1','2','3')) 返回结果 3
  • array_position函数 获取指定元素的下标,下标从1开始。如果指定元素不存在,则返回0。 语法:array_position(expr, ele) 表4 参数说明 参数名称 描述 类型 是否必选 expr 原始数组 Array(String/Number) 是 ele 指定的元素 String/Number 是 返回值类型:Integer类型 示例:SELECT ARRAY_POSITION(ARRAY('1','2','3'),'2') 表5 查询分析结果 类型 场景 查询语句 ARRAY_POSITION(ARRAY('1','2','3'),'2') 返回结果 2
  • mv_length函数 计算数组中元素的个数, 同cardinality。 语法:mv_length(expr) 表8 参数说明 参数名称 描述 类型 是否必选 expr 原始数组 Array(String/Number) 是 返回值类型:Integer 示例:SELECT MV_LENGTH(ARRAY('1','2','3')) 表9 查询分析结果 类型 场景 查询语句 MV_LENGTH (ARRAY('1','2','3')) 返回结果 3
  • array函数 将参数构建成数组,参数类型必须相同。 语法:array(expr1,expr ...) 表2 参数说明 参数名称 描述 类型 是否必选 expr 原始数据 String/Integer/Long/Double/Float 是 返回值类型:Array类型 示例:SELECT ARRAY('1','2','3','4','5') 表3 查询分析结果 类型 场景 查询语句 ARRAY('1','2','3','4','5') 返回结果 ["1", "2", "3", "4", "5"]
  • 结构化模板日志详情 D CS 审计日志结构化模板示例 表1 结构化模板示例 模板名称 示例日志 DCS审计日志 {"time": 1640966500017, "instance_id": "199a1e5a-8a37-40b9-899e-0ab6805c69eb", "server_addr": "192.168.0.1", "role": "proxy", "client_addr": "10.0.0.1", "client_type": "0", "user": "default", "db": 1, "command_name": "DEL", "command_type": "string", "command_keys": ["key1", "key2", "key3"], "command_param": "DEL key1 key2 key3", "use_time": 500, "extend": ""} 结构化字段及字段说明 表2 结构化字段 字段 示例 描述 类型 time 1640966500017 时间 long instance_id 199a1e5a-8a37-40b9-899e-0ab6805c69eb 实例的ID string server_addr 192.168.0.1 服务端IP string role proxy 节点角色 string client_addr 10.0.0.1 客户端IP string client_type 0 客户端类型 string user default 账号名 string db 1 数据库DB long command_name DEL 执行命令 string command_type string 命令类型 string command_keys [\"key1\",\"key2\",\"key3\"] 命令KEYS string command_param DEL key1 key2 key3 命令内容 string use_time 500 执行耗时 long extend - 扩展信息 string
  • ntile函数 用于将窗口分区内数据按照顺序分成N组。 语法: ntile(n) over ( [partition by partition_expression] [order by order_expression] ) 表2 参数说明 参数名称 描述 类型 是否必选 n 组数。 int 是 partition by partition_expression 窗口分区,根据分区表达式将数据划分成不同的分区。 任意 是 order by order_expression 窗口排序,根据排序表达式对各个分区内的每一行进行排序。 任意 是 返回值类型:integer 示例:status,host,ntile(5) over (partition by status order by host) as n 表3 查询分析结果 类型 场景 查询语句 status,host,ntile(5) over (partition by status order by host) as n 返回结果
  • approx_distinct函数 用于估算x中不重复值的个数。 语法:approx_distinct(x) 表2 参数说明 参数名称 描述 类型 是否必选 x 原始字段 任意 是 返回值类型:double类型 示例:select approx_distinct(type) as c group by region 表3 查询分析结果 类型 场景 查询语句 approx_distinct(type) as c group by region 返回结果 1
  • approx_percentile函数 用于对x进行正序排列,返回处于percentage位置的数值。 语法:approx_percentile(x, array[percentage01, percentage02...]) 表4 参数说明 参数名称 描述 类型 是否必选 x 原始字段 double 是 percentage 百分比值,取值范围为[0,1]。 double 是 返回值类型:array(double,...,double) 示例:select approx_percentile(type, 0.99) as c group by region 表5 查询分析结果 类型 场景 查询语句 approx_percentile(type, 0.99) as c group by region 返回结果 [1]
  • max_by函数 查询y为最大值时对应的x值,或查询最大的n个y值对应的x值。 查询y为最大值时对应的x值。 语法:max_by(x, y) 查询最大的n个y值对应的x值。 语法:max_by(x, y, n) 表8 参数说明 参数名称 描述 类型 是否必选 x 原始字段。 任意 是 y 原始字段。 number 是 n 大于0的整数。 int 否 返回值类型:array 示例:select max_by(host, value) 表9 查询分析结果 类型 场景 查询语句 max_by(host, value) 返回结果 ["h1"]
  • 函数列表 表1 聚合函数 函数 描述 approx_distinct函数 用于估算x中不重复值的个数。 approx_percentile函数 用于对x进行正序排列,返回处于percentage位置的数值。 arbitrary函数 用于返回x中任意一个非空的值。 max_by函数 查询y为最大值时对应的x值,或查询最大的n个y值对应的x值。 count函数 用于计数。 max函数 用于查询x中最大的值。 min函数 用于查询x中最小值。 avg函数 用于计算x的算术平均值。
共100000条