华为云用户手册

  • 函数列表 表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的算术平均值。
  • mobile_carrier函数 分析电话号码所属的运营商。 语法:mobile_carrier(expr) 表2 参数说明 参数名称 描述 类型 是否必选 expr 电话号码 String 是 返回值类型:String类型 示例:SELECT MOBILE_CARRIER('17052294531') 表3 查询分析结果 类型 场景 查询语句 MOBILE_CARRIER('17052294531') 返回结果 中国移动
  • mobile_ province函数 分析电话号码所属的省份。 语法:mobile_ province(expr) 表6 参数说明 参数名称 描述 类型 是否必选 expr 电话号码 String 是 返回值类型:String类型 示例:SELECT MOBILE_PROVINCE('17052294531') 表7 查询分析结果 类型 场景 查询语句 MOBILE_PROVINCE('17052294531') 返回结果 陕西省
  • 结构化模板日志详情 GAUSSV5审计日志示例 表1 结构化模板示例 模板名称 示例日志 GAUSSV5审计日志 { "username": "rdsAdmin", "client_conninfo": "cm_agent@10.254.95.70", "instanceId": "96e86f462bbc4f2286d7c8274815d0fein14", "detail_info": "xid=30818, SET statement_timeout = 10000000;n", "thread_id": "140463114942208@713872403507507", "result": "ok", "database": "postgres", "local_port": "8001", "userid": "10", "nodeId": "06c267fad8054a0abcb17cfa3b8f260cno14", "node_name": "dn_6001_6002_6003", "object_name": "statement_timeout", "time": "2022-08-15 17:53:23+08", type: "set_parameter", "remote_port": "50952" } 结构化字段及字段说明 表2 结构化字段 字段 示例 描述 类型 username rdsAdmin 用户名 string client_conninfo cm_agent@10.254.95.70 客户端连接信息 string instanceId 96e86f462bbc4f2286d7c8274815d0fein14 实例ID string detail_info xid=30818, SET statement_timeout = 10000000;n 执行的SQL语句 string thread_id 140463114942208@713872403507507 线程ID string result ok SQL执行结果 string database postgres 使用的数据库 string local_port 8001 本地端口 string userid 10 用户ID string nodeId 06c267fad8054a0abcb17cfa3b8f260cno14 节点ID string node_name dn_6001_6002_6003 节点名称 string object_name statement_timeout 对象的名称 string time 2022-08-15 17:53:23+08 审计日志时间 string type set_parameter SQL开始执行时间 string remote_port 50952 远程端口 string
  • 结构化模板日志详情 TOMCAT日志示例 表1 结构化模板示例 模板名称 示例日志 TOMCAT 192.168.12.2 - - [07/Mar/2018:09:49:55 +0800] "GET /logHello/test HTTP/1.1" 200 1943 结构化字段及字段说明 表2 结构化字段 字段 示例 描述 类型 bytes_sent 1943 发送的字节 long remote_ip_address 192.168.12.2 远程IP地址 string remote_logical_username - 远程逻辑从identd的用户名 string remote_user_authenticated - 远程用户身份验证 string router_uri /logHello/test 请求url string scheme GET 请求方法 string server_protocol HTTP/1.1 请求协议 string status 200 响应的http状态码 long time_local 07/Mar/2018:09:49:55 日期 string
  • levenshtein_distance函数 计算两个字符串str1和str2之间的最小编辑距离。 语法:levenshtein_distance(str1, str2) 表44 参数说明 参数名称 描述 类型 是否必选 str1 原始字符串1。 String 是 str2 原始字符串2。 String 是 返回值类型:Integer类型 示例:SELECT LEVENSHTEIN_DISTANCE('horse', 'ros') 表45 查询分析结果 类型 场景 查询语句 LEVENSHTEIN_DISTANCE('horse', 'ros') 返回结果 3
  • normalize函数 格式化字符串str。 使用NFC格式格式化字符串str。 语法:normalize(str) 使用给定格式格式化字符串str,支持的格式有NFC, NFD, NFKC, NFKD. 语法:normalize(str, form) 表46 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 form 格式化类型。 String 否 返回值类型:String类型 示例:SELECT NORMALIZE('schön'), NORMALIZE('Henry \u2163', 'nfd') 表47 查询分析结果 类型 场景1 场景2 查询语句 NORMALIZE('schön') NORMALIZE('Henry \u2163', 'nfd') 返回结果 schön Henry Ⅳ
  • character_length函数 与length函数功能一致。 语法:character_length(str) 表40 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 返回值类型:Integer类型 示例:SELECT CHARACTER_LENGTH('HELLO WORLD') 表41 查询分析结果 类型 场景 查询语句 CHARACTER_LENGTH('HELLO WORLD') 返回结果 11
  • strpos函数 查询目标子串初次出现在字符串中的位置,如果目标子串未出现在字符串中,则返回0。 语法:strpos(str, subStr) 表30 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 subStr 填充字符。 String 是 返回值类型:Integer类型 示例:SELECT STRPOS('hello world', 'llo'), STRPOS('llo', 'hello world') 表31 查询分析结果 类型 场景1 场景2 查询语句 STRPOS('hello world', 'llo') STRPOS('llo', 'hello world') 返回结果 3 0
  • substring函数 使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串。 语法:substring(str, start, length) 表34 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 start 起始位置。 Integer 是 length 长度。 Integer 否 返回值类型:String类型 示例:SELECT SUBSTRING('helloworld', 5), SUBSTRING('helloworld', 5, 3) 表35 查询分析结果 类型 场景1 场景2 查询语句 SUBSTRING('helloworld', 5) SUBSTRING('helloworld', 5, 3) 返回结果 oworld owo
  • substr函数 使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串,同substring。 语法:substr(str, start, length) 表32 参数说明 参数名称 描述 类型 是否必选 str 原始字符串 String 是 start 起始位置 Integer 是 length 长度 Integer 否 返回值类型:String类型 示例:SELECT SUBSTR('helloworld', 5), SUBSTR('helloworld', 5, 3) 表33 查询分析结果 类型 场景1 场景2 查询语句 SUBSTR ('helloworld', 5) SUBSTR ('helloworld', 5, 3) 返回结果 oworld owo
  • char_length函数 与length函数功能一致,如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。 语法:char_length(str) 表38 参数说明 参数名称 描述 类型 是否必选 str 原始字符串 String 是 返回值类型:Integer类型 示例:SELECT CHAR_LENGTH('HELLO WORLD') 表39 查询分析结果 类型 场景 查询语句 CHAR_LENGTH('HELLO WORLD') 返回结果 11
  • length函数 如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。 语法:length(str) 表36 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 返回值类型:Integer类型 示例:SELECT LENGTH('HELLO WORLD') 表37 查询分析结果 类型 场景1 查询语句 LENGTH('HELLO WORLD') 返回结果 11
  • parse_long函数 将字符串转换成基于指定基数的Long型,如果未指定基数,则基于十进制对原始字符串进行转换。 语法:parse_long(str, radix) 表20 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 radix 基数。 Integer 否 返回值类型:Long类型 示例:SELECT PARSE_LONG('-1234', 8), PARSE_LONG('1234') 表21 查询分析结果 类型 场景1 场景2 查询语句 PARSE_LONG('-1234', 8) PARSE_LONG('1234') 返回结果 -668 1234
  • split_part函数 使用指定的分隔符拆分字符串,并返回指定位置的字符串。如果拆分后指定的位置超过数组的长度,则返回“”。 语法:split_part(str, splitStr, position) 表24 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 splitStr 分隔符。 String 是 position 需要返回的字符串的位置。 Integer 是 返回值类型:STRING类型 示例:SELECT SPLIT_PART('helloworld', 'o', 2), SPLIT_PART('helloworld', 'o', 4) 表25 查询分析结果 类型 场景1 场景2 查询语句 SPLIT_PART('helloworld','o', 2) SPLIT_PART('helloworld', 'o', 4) 返回结果 w
  • string_format函数 返回以Java的String.format方式格式化的字符串。 语法:string_format(str, Object... args) 表28 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 args 参数。 String/Integer/Long/Boolean/Double 是 返回值类型:String类型 示例:SELECT STRING_FORMAT('My name is %s and I am %d years old.', 'name', age) 表29 查询分析结果 类型 场景 查询语句 STRING_FORMAT('My name is %s and I am %d years old.', 'Tom', 25) 返回结果 My name is Tom and I am 25 years old. %d:Output integer. %f:Output floating point number. %s:Output character string. %n:Output newline character. %c:Output Characters %b:Output bool type %e:Output Exponential Type %tc:Output Date and time information %tF:Output format is YYY-MM-DD. %tr:Output in HH:MM:SS PM format 可以参考Java的String.format获取更多的细节
  • split_to_map函数 使用指定的第一个分隔符拆分字符串,然后使用指定的第二个分隔符第二次拆分字符串。返回第二次拆分后的结果。 语法:split_to_map(str, splitStr1, splitStr2) 表26 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 splitStr1 分隔符1。 String 是 splitStr2 分隔符2。 String 是 返回值类型:ARRAY类型 示例:SELECT SPLIT_TO_MAP('hello world', 'e', 'o') 表27 查询分析结果 类型 场景 查询语句 SPLIT_TO_MAP('hello world', 'e', 'o') 返回结果 ["h","ll"," w","rld"]
  • replace函数 将字符串中的匹配字符串替换成指定的字符串,如果未指定替换字符串,则将匹配的字符串从原来的字符串中删除。 语法:replace(str, subStr, replaceStr) 表6 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 subStr 目标子串。 String 是 replaceStr 用于替换的字符串。 String 否 返回值类型:String类型 示例:SELECT REPLACE('hello world', 'o'), REPLACE('hello world', 'w', 'new w') 表7 查询分析结果 类型 场景1 场景2 查询语句 REPLACE('hello world', 'o') REPLACE('hello world', 'w', 'new w') 返回结果 hell wrld hello new world
  • contains_string函数 判断字符串是否包含指定字符串。 语法:contains_string(str, containsStr) 表12 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 containsStr 指定字符串。 String 是 返回值类型:Boolean类型 示例:SELECT CONTAINS_STRING('hello world', 'llo') 表13 查询分析结果 类型 场景 查询语句 CONTAINS_STRING('hello world', 'llo') 返回结果 true
  • textcat函数 将两个字符串拼接起来,返回拼接后的结果。 语法:textcat(str1, str2) 表16 参数说明 参数名称 描述 类型 是否必选 str1 待拼接字符串1。 String 是 str2 待拼接字符串2。 String 是 返回值类型:String类型 示例:SELECT TEXTCAT('hello ', 'world') 表17 查询分析结果 类型 场景 查询语句 TEXTCAT('hello ', 'world') 返回结果 hello world
共100000条