云服务器内容精选

  • 数据类型 SQL查询中支持的数据类型如表1。如果当前字段数据类型需要改为其他数据类型,我们会进行数据类型的转换。例如STRING类型的字段转为LONG类型。字段数据类型转换之后的结果将会显示默认值,如STRING类型的数据转换为LONG类型的数据,结果会显示为LONG类型的默认值0。同理,当空值被转换为非空类型值时,也会使用默认值进行替换。例如,当把STRING类型空值转换为数字类型时,将会返回默认值0。 SQL语法中,字符必须被单引号('')包裹,无符号或双引号("")包裹的为字段或表名称,如:'msg'表示字符串msg,msg或"msg"表示日志结构化msg字段。 表1 SQL查询支持的数据类型 原生数据类型 默认值 说明 STRING "" 原生STRING类型 FLOAT 0.0 原生FLOAT类型 LONG 0 原生LONG类型
  • SPLIT函数语句 语句 说明 示例 参数 split split函数用于通过指定的分隔符拆分字符串,并返回拆分后的子串集合。 split(x, delimeter,[limit]) x:参数值为varchar类型。 delimeter:分隔符。 limit:限制字符串拆分的个数,大于0的整数。 split_part split_part函数通过指定的分隔符拆分字符串,并返回指定索引的内容。 split_part(x, delimeter, part) x:参数值为varchar类型。 delimeter:分隔符。 part:指定要返回字段的索引值。 split_to_map split_to_map函数用于使用指定的第一个分隔符拆分字符串,然后再使用指定的第二个分隔符进行第二次拆分。 split_to_map(x, delimiter01, delimiter02) x:参数值为varchar类型。 delimeter01:分隔符1。 delimeter02:分隔符2。
  • 示例及说明 split函数 将目标字符串按指定字符串分割,limit用于限制分割后的最大单词数,若不填写,则默认全部分割。 字段样例 Id:dc1dab7e-b045-4e77-bda4-914d083d1bf7 查询和分析语句 SELECT split(Id,'-'), split(Id,'-',2) 查询和分析结果 表1 split函数查询和分析结果 EXPR$0 EXPR$1 ["dc1dab7e","b045","4e77","bda4","914d083d1bf7"] ["dc1dab7e","b045-4e77-bda4-914d083d1bf7"] split_part函数 通过指定的分隔符拆分字符串,并返回指定索引的内容字段样例,索引下标从0开始。若索引下标超过分割数量或者为负数,则返回空字符串。 字段样例 Id: dc1dab7e-b045-4e77-bda4-914d083d1bf7 查询和分析语句 SELECT split_part(Id,'-',1) 查询和分析结果 表2 split_part函数查询和分析结果 EXPR$0 b045 split_to_map函数 用于使用指定的第一个分隔符拆分字符串,然后再使用指定的第二个分隔符进行第二次拆分,展示形式为{“KEY1”:”VALUE1”,”KEY2”:”VALUE2”}。无法被二次分割的value值为空。 字段样例 Request:request_id:"e3ac4b70c7d244f080d434e300d8065a”;request_time: "1674965051000” 查询和分析语句 SELECT split_to_map(Request,';',':') 查询和分析结果 表3 split_to_map函数查询和分析结果 EXPR$0 {"request_id ":"e3ac4b70c7d244f080d434e300d8065a ","request_time":"1674965051000"}
  • 示例 有两个表,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条数据。
  • 语法 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)交集数据