华为云用户手册

  • mobile_carrier函数 分析电话号码所属的运营商。 语法:mobile_carrier(expr) 表2 参数说明 参数名称 描述 类型 是否必选 expr 电话号码 String 是 返回值类型:String类型 示例:SELECT MOBILE_CARRIER('17052294531') 表3 查询分析结果 类型 场景 查询语句 MOBILE_CARRIER('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
  • 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 Ⅳ
  • 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
  • character_length函数 与length函数功能一致。 语法:character_length(str) 表40 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 返回值类型:Integer类型 示例:SELECT CHARACTER_LENGTH('HELLO WORLD') 表41 查询分析结果 类型 场景 查询语句 CHARACTER_LENGTH('HELLO WORLD') 返回结果 11
  • char_length函数 与length函数功能一致,如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。 语法:char_length(str) 表38 参数说明 参数名称 描述 类型 是否必选 str 原始字符串 String 是 返回值类型:Integer类型 示例:SELECT CHAR_LENGTH('HELLO WORLD') 表39 查询分析结果 类型 场景 查询语句 CHAR_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
  • length函数 如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。 语法:length(str) 表36 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 返回值类型:Integer类型 示例:SELECT LENGTH('HELLO WORLD') 表37 查询分析结果 类型 场景1 查询语句 LENGTH('HELLO WORLD') 返回结果 11
  • 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
  • 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"]
  • 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获取更多的细节
  • 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
  • repeat函数 将字符串重复指定次数。 语法:repeat(str, num) 表10 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 num 重复次数 Integer 是 返回值类型:String类型 示例:SELECT REPEAT('hello world', 2), REPEAT('hello world', 0) 表11 查询分析结果 类型 场景1 场景2 查询语句 REPEAT('hello world', 2) REPEAT('hello world', 0) 返回结果 hello worldhello world
  • icontains_string函数 判断字符串是否不包含指定字符串。 语法:icontains_string(str, containsStr) 表14 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 containsStr 指定字符串。 String 是 返回值类型:Boolean类型 示例:SELECT ICONTAINS_STRING('hello world', 'llo') 表15 查询分析结果 类型 场景 查询语句 ICONTAINS_STRING('hello world', 'llo') 返回结果 false
  • lpad函数 在字符串的开头填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。 语法:lpad(str, len, lpadStr) 表2 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 len 结果字符串的长度。 如果原始字符串的长度小于len,那么在字符串的开头填充指定的字符。 如果原始字符串的长度大于len,那么只返回字符串的len个字符。 int 是 lpadStr 填充字符。 String 否 返回值类型:String类型 示例:SELECT LPAD('hello world', 10), LPAD('hello', 10, 'e') 表3 查询分析结果 类型 场景1 场景2 查询语句 LPAD('hello world', 10) LPAD('hello', 10, 'e') 返回结果 hello worl eeeeehello
  • 函数列表 表1 字符串函数 函数 描述 lpad函数 在字符串的开头填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。 rpad函数 在字符串的结尾填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。 replace函数 将字符串中的匹配字符串替换成指定的字符串,如果未指定替换字符串,则将匹配的字符串从原来的字符串中删除。 reverse函数 将字符串转换成反向顺序的字符串。 repeat函数 将字符串重复指定次数。 contains_string函数 判断字符串是否包含指定字符串。 icontains_string函数 判断字符串是否不包含指定字符串。 textcat函数 将两个字符串拼接起来,返回拼接后的结果。 btrim函数 删除字符串左右两侧的空格。 parse_long函数 将字符串转换成基于指定基数的Long型,如果未指定基数,则基于十进制对原始字符串进行转换。 split函数 使用指定的分隔符拆分字符串,并返回子字符串的集合。如果设置了limit,则使用limit限制拆分字符串的数量。 split_part函数 使用指定的分隔符拆分字符串,并返回指定位置的字符串。如果拆分后指定的位置超过数组的长度,则返回“”。 split_to_map函数 使用指定的第一个分隔符拆分字符串,然后使用指定的第二个分隔符第二次拆分字符串,返回第二次拆分后的结果。 string_format函数 返回以Java的String.format方式格式化的字符串。 strpos函数 查询目标子串初次出现在字符串中的位置,如果目标子串未出现在字符串中,则返回0。 substr函数 使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串,同substring。 substring函数 使用起始位置和长度返回子字符串。如果没有长度参数,则返回从起始位置开始的整个字符串。 length函数 如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。 char_length函数 与length函数功能一致,如果字符串表达式是字符数据类型,则返回输入的字符长度;否则,返回字符串表达式的字节长度(不小于位数除以8的最小整数)。 character_length函数 与length函数功能一致。 strlen函数 与length函数功能一致。 levenshtein_distance函数 计算两个字符串str1和str2之间的最小编辑距离。 normalize函数 格式化字符串。 to_utf8函数 将字符串转换为UTF-8编码格式。 chr函数 将ascii值转换成字符。 concat函数 用于将多个参数拼接成一个字符串。
  • rpad函数 在字符串的结尾填充指定字符,直到指定长度后返回结果字符串。如果未指定填充字符,则使用“ ”进行填充。 语法:rpad(str, len, rpadStr) 表4 参数说明 参数名称 描述 类型 是否必选 str 原始字符串。 String 是 len 结果字符串的长度。 如果原始字符串的长度小于len,那么在字符串的结尾填充指定的字符。 如果原始字符串的长度大于len,那么只返回字符串的len个字符。 Integer 是 rpadStr 填充字符。 String 否 返回值类型:String类型 示例:SELECT RPAD('hello world', 10), RPAD('hello', 10, 'e') 表5 查询分析结果 类型 场景1 场景2 查询语句 RPAD('hello world', 10) RPAD('hello', 10, 'e') 返回结果 hello worl helloeeeee
  • compare函数 用于对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。 语法:compare(x, n1, n2, n3...) 对比当前时间周期内的计算结果与n1、n2、n3秒之前时间周期内的计算结果。 表2 参数说明 参数名称 描述 类型 是否必选 x 待同比表达式。 double 是 n? 时间窗口,单位为毫秒。例如3600000(1小时)、86400000(1天)、604800000(1周)、31622400000(1年)。 long 是 返回值类型:数组。格式为[当前计算结果, n秒前的计算结果, 当前计算结果与n秒前计算结果的比值]。 示例:select compare(c,1) as diff from (select count(type) as c) as t 表3 查询分析结果 类型 场景 查询语句 compare(c,1) as diff from (select count(type) as c) as t 返回结果 [8,8,1] 8表示当前时间[0,1693533477000]数据总量。 8表示前一秒同时间段[1,1693533477001]数据总量。 1表示当前时间与前一秒同时间段的数据总量比值。
  • ts_compare函数 用于对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。ts_compare函数必须按照时间列进行分组(GROUP BY)。 语法:ts_compare(x, n1, n2, n3...) 对比当前时间周期内的计算结果与n1、n2、n3秒之前时间周期内的计算结果。 表4 参数说明 参数名称 描述 类型 是否必选 x 待环比表达式。 double 是 n? 时间窗口,单位为毫秒。例如3600000(1小时)、86400000(1天)、604800000(1周)、31622400000(1年)。 long 是 返回值类型:数组。格式为[当前计算结果, n秒前的计算结果, 当前计算结果与n秒前计算结果的比值, n秒前的UNIX时间戳]。 示例:select time,ts_compare(pv,86400000) as diff from (select count(*) as pv,date_histogram(field=time, calendar_interval=day) as time group by time) as t group by time 表5 查询分析结果 类型 场景 查询语句 time,ts_compare(pv,86400000) as diff from (select count(*) as pv,date_histogram(field=time, calendar_interval=day) as time group by time) as t group by time 返回结果 [20,20,1,1698766080000]
  • POSTGRESQL错误日志结构化模板日志详情 POSTGRESQL错误日志示例 表3 结构化模板示例 模板名称 示例日志 POSTGRESQL错误日志 {"log_type":"error_log","severity":"WARNING","log_time":"2022-08-22T06:52:08Z","raw_message":"Occur error when reading bytes from a network handler. Client actively closes the connection.","node_id":"d285609201534696bdcd648519fe2b8dno02","instance_id":"5b67dc63ba824145aae1f12ff51e58b8in02"} 结构化字段及字段说明 表4 结构化字段 字段 示例 描述 类型 log_type error_log 日志类型 string severity WARNING 日志级别 string log_time 2022-08-22T06:52:08Z 日志产生时间 string raw_message Occur error when reading bytes from a network handler. Client actively closes the connection. 错误日志内容 string node_id d285609201534696bdcd648519fe2b8dno02 节点id string instance_id 5b67dc63ba824145aae1f12ff51e58b8in02 实例id string
  • cast函数 将值从一种数据类型转换为另一种数据类型,并将数据类型提供给动态参数。 在允许表达式的任何地方都允许使用铸造表达式。 语法:CAST(Expression as Datatype) 要将表达式转换到的数据类型是目标类型。要从中转换的表达式的数据类型是源类型。 表2 参数说明 参数名称 描述 类型 是否必选 expression 源类型的表达式。 任意 是 Datatype 目标类型。 任意 是 下表显示了数据类型的源类型和目标类型之间的有效显式转换。 to/from boolean date string double long int boolean Y Y Y Y Y Y date - Y - Y Y Y string Y Y Y Y Y Y double - Y Y Y Y Y long - Y Y Y Y Y int - Y Y Y Y Y 返回值类型:目标数据类型。 示例:select cast(time as date) 表3 查询分析结果 类型 场景 查询语句 cast(time as date) 返回结果 2023-08-31 23:11:17.000
  • 语法 select key from t1 LEFT|RIGHT|INNER JOIN t2 on t1.key=t2.key 当前日志服务支持LEFT JOIN、RIGHT JOIN和INNER JOIN三种JOIN子句方式。具体功能如下: 表1 JOIN方式 说明 LEFT JOIN 以左表(t1)的结果为基础,关联右表(t2)数据。 说明: 当表名为纯数字时,需要给表名加上双引号转换成字符串。例如:表名是123,JOIN语句中该表应写成“123”。 RIGHT JOIN 以右表(t2)的结果为基础,关联左表(t1)数据。 说明: 当表名为纯数字时,需要给表名加上双引号转换成字符串。例如:表名是123,JOIN语句中该表应写成“123”。 INNER JOIN 两个表的结果(elb1,elb2)交集数据
  • 示例 有两个表,access表示主机的接入指标包含路径,时延,状态码,host为主机指标包含cpu和内存。通过JOIN可以关联接入和主机指标,查看相同主机的不同维度的指标情况。 LEFT JOIN 查询语句 SELECT "access".__time, "access".host_ip, "access".cost, "host".cpu, "host".memory FROM log "access" LEFT JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip 返回结果,总共60条数据。 RIGHT JOIN 查询语句 SELECT "access".__time, "host".host_ip, "access".cost, "host".cpu, "host".memory FROM log "access" RIGHT JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip 返回结果,总共60条数据。 INNER JOIN 查询语句 SELECT "access".__time, "host".host_ip, "access".cost, "host".cpu, "host".memory FROM log "access" INNER JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip 返回结果,总共45条数据。
  • GeminiDB Mongo错误日志结构化模板日志详情 GeminiDB Mongo错误日志示例 表1 结构化模板示例 模板名称 示例日志 GeminiDB Mongo错误日志 {"log_type":"error_log","severity":"Error","log_time":"2022-08-22T09:33:15.142+0000","raw_message":"E QUERY [ClusterDisasterBackupChangeJob] Get global setting disasterBackup failed.","instance_id": "5b67dc63ba824145aae1f12ff51e58b8in02","node_id": "686a791e690e4db3af591ec4b6f72916no02"} 结构化字段及字段说明 表2 结构化字段 字段 示例 描述 类型 log_type error_log 日志类型 string severity Error 日志级别 string log_time 2022-08-22T09:33:15.142+0000 日志产生时间 string raw_message E QUERY [ClusterDisasterBackupChangeJob] Get global setting disasterBackup failed. 日志内容 string instance_id 5b67dc63ba824145aae1f12ff51e58b8in02 实例Id string node_id 686a791e690e4db3af591ec4b6f72916no02 节点Id string
共100000条