华为云用户手册

  • round函数 用于对x进行四舍五入。如果n存在,则保留n位小数;如果n不存在,则对x进行四舍五入取整数。 对x进行四舍五入取整数。 语法:ROUND(x) 对x进行四舍五入且保留n位小数。 语法:ROUND(x, n) 表2 参数说明 参数名称 描述 类型 是否必选 x 原始字段。 number 是 n n位小数(int)。 int 是 返回值类型:Number 示例:select ROUND(3.1415, 1) 表3 查询分析结果 类型 场景 查询语句 ROUND(3.1415, 1) 返回结果 3.1
  • CCE仪表盘模板 日志服务支持采集CCE日志,并进行多维度分析。CCE仪表盘模板支持多种仪表盘模板,分别是CCE日志节点操作、CCE日志K8s事件中心、CCE日志聚合检索、CCE日志K8s对象操作、CCE日志账号操作审计、CCE审计日志中心和CCE日志K8s事件查询。 CCE仪表盘功能目前仅对“华北-北京四”、“华东-上海一”和“华南-广州”局点开放。 CCE日志节点操作 CCE日志K8s对象操作 CCE日志K8s事件查询 CCE日志K8s事件中心 CCE日志聚合检索 CCE日志账号操作审计 CCE日志审计中心 父主题: 日志仪表盘模板
  • MYSQL审计日志结构化模板日志详情 MYSQL审计日志示例 表5 结构化模板示例 模板名称 示例日志 MYSQL审计日志 {"logType":"audit_log","instanceId":"e2a8db82a9d74982a6021c6758d57e00in01","nodeId":"633a1f5a3db9445586f297f9c026b91bno01","record_id":"2","connection_id":"112","connection_status":"0","name":"Query","timestamp":"2023-01-06T06:35:46 UTC","command_class":"show_tables","sqltext":"show tables","user":"root[root] @ [10.58.239.247]","host":"","external_user":"","ip":"10.58.239.247","default_db":""} 结构化字段及字段说明 表6 结构化字段 字段 示例 描述 类型 logType audit_log 日志类型 string instanceId e2a8db82a9d74982a6021c6758d57e00in01 实例Id string nodeId 633a1f5a3db9445586f297f9c026b91bno01 节点Id string record_id 2 审计日志单条记录的记录ID,记录审计日志的每条SQL的唯一global id string connection_id 112 该条记录执行的会话ID,与show processlist中的ID一致 string connection_status 0 会话状态,常见为执行语句的错误返回码,普通执行成功返回0 string name Query 记录类型名称,通常情况下dml,ddl操作均为QUERY, 连接断开为CONNECT和QUIT string timestamp 2023-01-06T06:35:46 UTC 记录的UTC时间 string command_class show_tables 执行的SQL命令类型,内部为解析得到的SQL类型,例如select,update(连接断开不存在该项) string sqltext show tables 执行的SQL具体内容(连接断开审计不存在该项) string user root[root] @ [10.58.239.247] 登录的账户 string host - 登录的host,当本地登录时为localhost,远程登录为空 string external_user - 代理用户名称 string ip 10.58.239.247 通过远程连接的客户端IP,本地连接为空 string default_db - 执行SQL时默认的数据库 string
  • MYSQL错误日志结构化模板日志详情 MYSQL错误日志示例 表3 结构化模板示例 模板名称 示例日志 MYSQL错误日志 {"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":"5d6c61bbd49b4ad3a1572461811e3dacno01","instance_id":"207032924c644f429b74f6fc5d8c97f9in01"} 结构化字段及字段说明 表4 结构化字段 字段 示例 描述 类型 log_type error_log 日志类型 string severity WARNING 事件优先级, 包含system, error, warning, note/information级别事件 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 5d6c61bbd49b4ad3a1572461811e3dacno01 节点ID string instance_id 207032924c644f429b74f6fc5d8c97f9in01 实例ID string
  • MYSQL慢日志结构化模板日志详情 MYSQL慢日志示例 表1 结构化模板示例 模板名称 示例日志 MYSQL慢日志 {"start_time": "2022-07-27T02:49:19.000","user": "commerce","host": "100.*.*.222","query_time": "1.461583","lock_time": "0.000050","rows_sent": "500","rows_examined": "581000","command_text": "SELECT DN_N.record_id \"a.id\",DN_N.name \"a.name\",DN_N.valueN \"a.ExternalCode\",DN_N.valueN \"a.DeviceName\",DN_N.valueN \"a.DeviceDef\",DN_N.created_date \"a.createdDate\",DN_N.last_modified_date \"a.lastModifiedDate\",DN_N.valueN \"a.DeviceProduct\",DN_N.valueN \"a.Channel\",DN_N.valueN \"a.Status\",CN_N.valueN \"a.Remark\",DN_N.valueN \"a.NodeId\",DN_N.valueN \"a.ConnectStatus\",CAST(DN_N.valueN AS CHAR(N)) \"a.GatewayId\",CAST(DN_N.valueN AS CHAR(N)) \"a.HMI\",DN_N.valueN \"a.SerialNo\",CAST(DN_N.valueN AS DECIMAL(N,N)) \"a.TelemetryPeriod\",DN_N.valueN \"a.ConnectStatusChgTime\",DN_N.valueN \"a.DeviceNumber\",CAST(DN_N.valueN AS CHAR(N)) \"a.ControllerType\",CAST(DN_N.valueN AS CHAR(N)) \"a.ProjectId\",DN_N.valueN \"a.RegisterStatus\",DN_N.created_date ORD_FN FROM dataN DN_N,clobs CN_N WHERE (DN_N.tenant_id= N AND DN_N.obj_id= N AND DN_N.tenant_id= CN_N.tenant_id AND DN_N.obj_id= CN_N.obj_id AND DN_N.record_id= CN_N.record_id) AND ((DN_N.valueN = N)) ORDER BY DN_N.created_date DESC limit N,N;","database": "saas_perf","log_type": "slow_log","log_time": "1658890159","operate_type": "SELECT","node_id":"5d6c61bbd49b4ad3a1572461811e3dacno01","instance_id":"207032924c644f429b74f6fc5d8c97f9in01"} 结构化字段及字段说明 表2 结构化字段 字段 示例 描述 类型 start_time 2022-07-27T02:49:19.000 语句开始执行时间 string user commerce 用户 string host 100.*.*.222 主机 string query_time 1.461583 语句执行时间,以秒为单位 string lock_time 0.000050 获取锁的时间,以秒为单位 string rows_sent 500 发送到客户端的行数 string rows_examined 581000 服务器层检查的行数 string command_text SELECT DN_N.record_id \"a.id\",DN_N.name \"a.name\",DN_N.valueN \"a.ExternalCode\",DN_N.valueN \"a.DeviceName\",DN_N.valueN \"a.DeviceDef\",DN_N.created_date \"a.createdDate\",DN_N.last_modified_date \"a.lastModifiedDate\",DN_N.valueN \"a.DeviceProduct\",DN_N.valueN \"a.Channel\",DN_N.valueN \"a.Status\",CN_N.valueN \"a.Remark\",DN_N.valueN \"a.NodeId\",DN_N.valueN \"a.ConnectStatus\",CAST(DN_N.valueN AS CHAR(N)) \"a.GatewayId\",CAST(DN_N.valueN AS CHAR(N)) \"a.HMI\",DN_N.valueN \"a.SerialNo\",CAST(DN_N.valueN AS DECIMAL(N,N)) \"a.TelemetryPeriod\",DN_N.valueN \"a.ConnectStatusChgTime\",DN_N.valueN \"a.DeviceNumber\",CAST(DN_N.valueN AS CHAR(N)) \"a.ControllerType\",CAST(DN_N.valueN AS CHAR(N)) \"a.ProjectId\",DN_N.valueN \"a.RegisterStatus\",DN_N.created_date ORD_FN FROM dataN DN_N,clobs CN_N WHERE (DN_N.tenant_id= N AND DN_N.obj_id= N AND DN_N.tenant_id= CN_N.tenant_id AND DN_N.obj_id= CN_N.obj_id AND DN_N.record_id= CN_N.record_id) AND ((DN_N.valueN = N)) ORDER BY DN_N.created_date DESC limit N,N; sql语句 string database saas_perf 数据库 string log_type slow_log 日志类型 string log_time 1658890159 语句执行结束时间 string operate_type SELECT 语句类型 string node_id 5d6c61bbd49b4ad3a1572461811e3dacno01 节点ID string instance_id 207032924c644f429b74f6fc5d8c97f9in01 实例ID string
  • 功能描述 SQL提供最值函数,对字段进行最值求解,具体请参见表1 最值函数对零个或多个字段进行操作,并返回单个值。 在最值函数的使用中请注意以下几点: 如果没有设置字段,则返回空值。字段必须能够转换为常见的数据类型。 如果所有字段都为空值,则返回空值。如果只有部分字段为空值,这些字段会被忽略。 如果字段中既有数字也有字符串,则函数将它们作为字符串进行比较。 如果所有字段都是整数,则函数将它们作为LONG值进行比较。 如果所有字段都是数字且至少有一个是FLOAT值,则函数将它们作为FLOAT值进行比较。
  • 其他函数语句 表1 其他函数语句 关键字 说明 示例 CAST(value AS TYPE) 转换数据类型。只支持转换为VARCHAR、 FLOAT。 SELECT fieldname1, CAST(fieldname1 AS VARCHAR) CASE WHEN boolean_expr1 THEN result1 \[ WHEN boolean_expr2 THEN result2 ... \] \[ ELSE resultN \] END 简单CASE函数。 SELECT CASE WHEN httpStatus = 200 THEN 1 ELSE 0 END NULLIF(value1, value2) 如果value1和value2相等,返回空值,否则返回value1。 SELECT fieldname1, fieldname2, NULLIF(fieldname1, fieldname2) NVL(expr,expr-for-null) 如果"expr"为空值或空白字符串,则返回"expr-for-null"。 SELECT NVL(str1, 'expr-for-null')
  • 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_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
  • 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_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"]
  • 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"]
  • 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
  • 函数列表 表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函数 将参数构建成数组,参数类型必须相同。 语法: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 返回结果
  • 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"]
  • 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]
  • 函数列表 表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_ province函数 分析电话号码所属的省份。 语法:mobile_ province(expr) 表6 参数说明 参数名称 描述 类型 是否必选 expr 电话号码 String 是 返回值类型:String类型 示例:SELECT MOBILE_PROVINCE('17052294531') 表7 查询分析结果 类型 场景 查询语句 MOBILE_PROVINCE('17052294531') 返回结果 陕西省
共100000条