华为云用户手册

  • 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
  • 函数列表 表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的索引处的数组元素。 mv_ordinal函数 返回所提供的基于1的索引处的数组元素。 mv_offset_of函数 返回数组中第一次出现expr的基于0的索引,如果未出现,则返回-1。 mv_ordinal_of函数 返回数组中第一次出现expr的基于1的索引,如果未出现,则返回-1。
  • 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') 返回结果 陕西省
  • url_extract_query函数 提取URL中的查询部分的信息。 语法:url_extract_query(expr) 表18 参数说明 参数名称 描述 类型 是否必选 expr URL字符串 String 是 返回值类型:String类型 示例:SELECT URL_EXTRACT_QUERY('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 表19 查询分析结果 类型 场景 查询语句 URL_EXTRACT_QUERY('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 返回结果 parameterName=parameterValue
  • url_extract_protocol函数 提取URL中的协议信息。 语法:url_extract_protocol(expr) 表16 参数说明 参数名称 描述 类型 是否必选 expr URL字符串 String 是 返回值类型:String类型 示例:SELECT URL_EXTRACT_PROTOCOL('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 表17 查询分析结果 类型 场景 查询语句 URL_EXTRACT_PROTOCOL('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 返回结果 http
  • url_extract_fragment函数 提取URL中的fragment信息。 语法:url_extract_fragment(expr) 表6 参数说明 参数名称 描述 类型 是否必选 expr URL字符串 String 是 返回值类型:String类型 示例:SELECT URL_EXTRACT_FRAGMENT('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 表7 查询分析结果 类型 场景 查询语句 URL_EXTRACT_FRAGMENT('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 返回结果 fragment
  • url_extract_port函数 提取URL中的端口信息。 语法:url_extract_port(expr) 表14 参数说明 参数名称 描述 类型 是否必选 expr URL字符串 String 是 返回值类型:String类型 示例:SELECT URL_EXTRACT_PORT('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 表15 查询分析结果 类型 场景 查询语句 URL_EXTRACT_PORT('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 返回结果 8080
  • url_extract_host函数 提取URL中的host信息。 语法:url_extract_host(expr) 表8 参数说明 参数名称 描述 类型 是否必选 expr URL字符串 String 是 返回值类型:String类型 示例:SELECT URL_EXTRACT_HOST('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 表9 查询分析结果 类型 场景 查询语句 URL_EXTRACT_HOST('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 返回结果 host
  • url_extract_parameter函数 提取URL中的参数信息。 语法:url_extract_parameter(expr, paramName) 表10 参数说明 参数名称 描述 类型 是否必选 expr URL字符串 String 是 paramName 参数名称 String 是 返回值类型:String类型 示例:SELECT URL_EXTRACT_PA RAM ETER('http://username:password@host:8080/index?parameterName=parameterValue#fragment', 'parameterName') 表11 查询分析结果 类型 场景 查询语句 URL_EXTRACT_PARAMETER('http://username:password@host:8080/index?parameterName=parameterValue#fragment', 'parameterName') 返回结果 parameterValue
  • url_extract_path函数 提取URL中的path信息。 语法:url_extract_path(expr) 表12 参数说明 参数名称 描述 类型 是否必选 expr URL字符串 String 是 返回值类型: String类型 示例:SELECT URL_EXTRACT_PATH('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 表13 查询分析结果 类型 场景 查询语句 URL_EXTRACT_PATH('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 返回结果 /index
  • url_decode函数 对URL进行解码。 语法:url_decode(expr) 表4 参数说明 参数名称 描述 类型 是否必选 expr URL字符串 String 是 返回值类型:String类型 示例:SELECT URL_DECODE('http%3A%2F%2Fusername%3Apassword%40host%3A8080%2Findex%3FparameterName%3DparameterValue%23fragment') 表5 查询分析结果 类型 场景 查询语句 URL_DECODE('http%3A%2F%2Fusername%3Apassword%40host%3A8080%2Findex%3FparameterName%3DparameterValue%23fragment') 返回结果 http://username:password@host:8080/index?parameterName=parameterValue#fragment
  • 函数列表 表1 URL函数 函数 描述 url_encode函数 对URL进行编码。 url_decode函数 对URL进行解码。 url_extract_fragment函数 提取URL中的fragment信息。 url_extract_host函数 提取URL中的host信息。 url_extract_parameter函数 提取URL中的参数信息。 url_extract_path函数 分割目标字符串,返回被分割后的子串合集。 url_extract_port函数 提取URL中的端口信息。 url_extract_protocol函数 提取URL中的协议信息。 url_extract_query函数 提取URL中查询部分的信息。
  • url_encode函数 对URL进行编码。 语法:url_encode(expr) 表2 参数说明 参数名称 描述 类型 是否必选 expr URL字符串 String 是 返回值类型:String类型 示例:SELECT URL_ENCODE('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 表3 查询分析结果 类型 场景 查询语句 URL_ENCODE('http://username:password@host:8080/index?parameterName=parameterValue#fragment') 返回结果 http%3A%2F%2Fusername%3Apassword%40host%3A8080%2Findex%3FparameterName%3DparameterValue%23fragment
  • cast函数 将值从一种数据类型转换为另一种数据类型,并将数据类型提供给动态参数。 在允许表达式的任何地方都允许使用铸造表达式。 语法:CAST(Expression as Datatype) 要将表达式转换到的数据类型是目标类型。要从中转换的表达式的数据类型是源类型。 表2 参数说明 参数名称 描述 类型 是否必选 expression 源类型的表达式。 任意 是 Datatype 目标类型。 SQL数据类型,可选值为bigint、varchar、double、double precision、boolean、timestamp、decimal、integer、char、date。 是 表3 索引数据类型和SQL数据类型的对应关系 索引的数据类型 SQL的数据类型 long bigint string varchar float double或double precision 返回值类型:目标数据类型。 示例:select cast(time as date) 表4 查询分析结果 类型 场景 查询语句 cast(time as date) 返回结果 2023-08-31 23:11:17.000
  • 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 返回结果
  • compare函数 用于对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。 语法:compare(x, n) 对比当前时间周期内的计算结果与n1、n2、n3秒之前时间周期内的计算结果。 语法:compare(x, n1, n2, n3...) 表2 参数说明 参数名称 描述 类型 是否必选 x 待同比表达式。 double 是 n? 时间窗口,单位为秒。例如3600(1小时)、86400(1天)、604800(1周)、31622400(1年)。 long 是 返回类型 JSON数组。格式为[当前计算结果,n秒前的计算结果,当前计算结果与n秒前计算结果的比值]。 示例说明 计算当前1小时和昨天同时段的访问量比值。 选择查询和分析的时间范围为1小时(整点时间),并执行如下查询和分析语句。其中86400表示当前时间减去86400秒(1天)。 SELECT compare(PV, 86400) FROM (SELECT count(*) AS PV ) 查询和分析结果。 5994.0表示当前1小时(例如2021-01-02 00:00:00~2021-01-02 01:00:00)的网站访问量。 6000.0表示昨天同时段(例如2021-01-01 00:00:00~2021-01-01 01:00:00)的网站访问量。 0.999表示当前1小时与昨天同时段的网站访问量比值。 图1 查询和分析结果 分列显示查询和分析结果。 SELECT diff[1] as "today", diff[2] as "yesterday", diff[3] as "ratio" FROM(SELECT compare(pv, 86400) AS diff FROM (SELECT count(*) AS pv )) 图2 查询和分析结果
  • ts_compare函数 ts_compare函数用于对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。ts_compare函数必须按照时间列进行分组(GROUP BY)。 语法格式 对比当前时间周期内的计算结果与n秒之前时间周期内的计算结果。 ts_compare(x, n) 对比当前时间周期内的计算结果与n1、n2、n3秒之前时间周期内的计算结果。 ts_compare(x, n1, n2, n3...) 表3 环比函数参数说明 参数 说明 x 参数值为double类型或long类型。 n 时间窗口,单位为秒。例如3600(1小时)、86400(1天)、604800(1周)、31622400(1年)。 返回类型 JSON数组。格式为[当前计算结果, n秒前的计算结果, 当前计算结果与n秒前计算结果的比值, n秒前的UNIX时间戳]。 示例说明 环比今天3小时与昨天3小时的网站访问量。 选择查询和分析的时间范围为今天某3小时,并执行如下查询和分析语句。其中86400表示当前时间减去86400秒(1天),date_trunc('hour',__time)表示使用date_trunc函数将时间对齐到小时。 查询和分析语句 * | SELECT t_time, ts_compare(PV, 86400) AS data FROM( SELECT to_unixtime(date_trunc('hour', __time)) AS t_time, count(*) AS PV GROUP BY t_time ORDER BY t_time ) GROUP BY t_time 查询和分析结果 t_time data 2021-10-26T06:00:00.000Z [159.0,224.0,0.7098214285714286,1.6351416E9] 2021-10-26T07:00:00.000Z [100.0,148.0,0.6756756756756757,1.6351452E9] 2021-10-26T08:00:00.000Z [100.0,100.0,1.0, 1.6016544E9, 1.6351488E9]
  • regexp_split函数 分割目标字符串,返回被分割后的子串合集。 语法:regexp_split(expr, regularExpr) 表10 参数说明 参数名称 描述 类型 是否必选 expr 目标字符串 String 是 regularExpr 包含捕获组的正则表达式,(\d)(\d)表示两个捕获组 String 是 返回值类型:Array类型 示例:SELECT REGEXP_SPLIT('request_uri:/request/path-0/file-7','/') 表11 查询分析结果 类型 场景 查询语句 REGEXP_SPLIT('request_uri:/request/path-0/file-7','/') 返回结果 ["request_uri:","request","path-0","file-7"]
  • regexp_like函数 判断目标字符串是否符合正则表达式。 语法:regexp_like(expr, regularExpr) 表4 参数说明 参数名称 描述 类型 是否必选 expr 目标字符串 String 是 regularExpr 包含捕获组的正则表达式,(\d)(\d)表示两个捕获组 String 是 返回值类型: Boolean类型 示例:SELECT REGEXP_LIKE('HTTP/2.0', '\d+') 表5 查询分析结果 类型 场景 查询语句 REGEXP_LIKE('HTTP/2.0', '\d+') 返回结果 true
  • regexp_replace函数 删除或替换目标字符串中符合正则表达式的子串。 删除目标字符串中符合正则表达式的子串,返回未被删除的子串。 语法:regexp_replace(expr, regularExpr) 替换目标字符串中符合正则表达式的子串,返回被替换后的字符串。 语法:regexp_replace(expr, regularExpr, replaceStr) 表8 参数说明 参数名称 描述 类型 是否必选 expr 目标字符串 String 是 regularExpr 包含捕获组的正则表达式,(\d)(\d)表示两个捕获组 String 是 replaceStr 替换的字符串 String 否 返回值类型:String类型 示例:SELECT REGEXP_REPLACE('ab12cd34', '\d+'), REGEXP_REPLACE('ab12cd34', '\d+', '00') 表9 查询分析结果 类型 场景1 场景2 查询语句 REGEXP_REPLACE('ab12cd34', '\d+') REGEXP_REPLACE('ab12cd34', '\d+', '00') 返回结果 abcd ab00cd00
  • regexp_extract_all函数 从目标字符串中提取符合正则表达式的子字符串。 语法:regexp_extract_all(expr, regularExpr) 表6 参数说明 参数名称 描述 类型 是否必选 expr 目标字符串 String 是 regularExpr 包含捕获组的正则表达式,(\d)(\d)表示两个捕获组 String 是 返回值类型:Array类型 示例:SELECT REGEXP_EXTRACT_ALL('HTTP/2.0', '\d+') 表7 查询分析结果 类型 场景 查询语句 REGEXP_EXTRACT_ALL ('HTTP/2.0', '\d+') 返回结果 ["2","0"]
  • regexp_extract函数 提取目标字符串中符合正则表达式的子串。 提取并返回目标字符串中符合正则表达式的第一个子串。 语法:regexp_extract(expr, regularExpr) 提取并返回目标字符串中符合正则表达式的第n个子串。 语法:regexp_extract(expr, regularExpr, n) 表2 参数说明 参数名称 描述 类型 是否必选 expr 目标字符串。 String 是 regularExpr 包含捕获组的正则表达式,(\d)(\d)表示两个捕获组。 String 是 n 第n个符合正则表达式的子串。 Integer 否 返回值类型:String类型 示例:SELECT REGEXP_EXTRACT('HTTP/2.0', '\d+') 表3 查询分析结果 类型 场景1 场景2 查询语句 REGEXP_EXTRACT('HTTP/2.0', '\d+') REGEXP_EXTRACT ('HTTP/2.0', '\d+', 1) 返回结果 2 2
  • 函数列表 表1 正则式函数 函数 描述 regexp_extract函数 提取目标字符串中符合正则表达式的子串。 regexp_like函数 判断目标字符串是否符合正则表达式。 regexp_extract_all函数 从目标字符串中提取符合正则表达式的子字符串。 regexp_replace函数 删除或替换目标字符串中符合正则表达式的子串。 regexp_split函数 分割目标字符串,返回被分割后的子串合集。
  • 使用说明 当用户修改权限后,权限信息在一天后生效。 SDK支持跨云/本地上报日志,当前仅支持华北-北京四、华东-上海一、华南-广州、西南-贵阳一。使用详情见Appender配置参数说明表中的“enableLocalTest”参数,当该参数为true时,上报日志规格为单个机器200次/秒(即每秒只能发送200次,每次批量发送数量/大小详情见参数“batchSizeThresholdInBytes、batchCountThreshold、lingerMs”)。 通过SDK上报日志到LTS的时间相距当前时间不超过2天,否则上报日志会被LTS删除。
  • 单个producer性能基线 上报日志时,请参考如下参数的测试性能基线,若超出基线值,可能会导致日志上报异常。 totalSizeInBytes:524288000 ioThreadCount:8 maxBlockMs:0 batchSizeThresholdInBytes:524288 batchCountThreshold:4096 lingerMs:2000 按照参数基线值设置后,使用8U16GB的机器规格测试,上报单条日志大小为1KB。 测试结果:SDK上报日志的数据量为60MB/s,速率为6w条/s。 当日志上报量超过单个producer时: 建议拆分日志流,使用多个producer上报日志,分摊流量,以保障SDK处于正常上报状态。 如果maxBlockMs为0时,SDK处于非阻塞状态,会触发保护机制自动降级,可能会对部分日志做丢弃处理。 如果maxBlockMs大于0时,SDK处于阻塞状态,阻塞时间为maxBlockMs,可能会造成prodcuer.send()发送日志方法处于阻塞状态。
  • 注意事项 由于Java-SDK默认对SK明文存储,不符合某些对于安全有更高要求的用户,lts提供了一种用户自定义的加解密方式,建议用户优先使用加解密方式。 加密过程如下: 用户编写一个java类,比如com.demo.DecryptDemo类,在该类中增加一个解密方法,比如decrypt方法,输入和输出均为字符串。 编写decrypt的方法内容,客户自行实现SK加解密算法,返回解密后的值。 当用户调用Java-SDK初始化时,会需要传入SK,这时使用DecryptDemo.decrypt方法即可。
  • 参数获取方式 区域表 区 域名 称 RegionName 华北-北京二 cn-north-2 华北-北京四 cn-north-4 华北-北京一 cn-north-1 华东-上海二 cn-east-2 华东-上海一 cn-east-3 华南-广州 cn-south-1 华南-深圳 cn-south-2 西南-贵阳一 cn-southwest-2 亚太-新加坡 ap-southeast-3 日志组ID:在 云日志 服务控制台,选择“日志管理”,鼠标悬浮在日志组名称上,可查看日志组名称和日志组ID。 日志流ID:单击日志组名称对应的按钮,鼠标悬浮在日志流名称上,可查看日志流名称和日志流ID。
  • e_if_else 根据判断条件的结果执行操作。 函数格式 e_if_else(条件, 真时操作, 假时操作) 参数说明 参数名称 参数类型 是否必填 说明 条件 任意 是 表达式或其组合。其结果不是布尔值时,会进行真假判断。 真时操作 全局操作函数 是 全局操作函数或其组合。 假时操作 全局操作函数 是 全局操作函数或其组合。 返回结果 返回不同条件对应的操作结果。 函数示例 如果result字段的值为ok或pass,或者status字段的值为200,则保留日志。 测试数据 { "result":"ok", "status": 400 } { "result": "Pass", "status": 200 } { "result": "failure", "status": 500 } 加工规则 e_if_else( op_or(e_match("result", r"(?i)ok|pass"), e_search("status== 200")), e_keep(),e_drop() ) 加工结果 result: ok status: 400 result: Pass status: 200
  • e_switch 组合多个条件和操作。 函数格式 e_switch(条件1, 操作1, ……, default=None) 说明 函数中条件和操作必须成对出现。 参数说明 参数名称 参数类型 是否必填 说明 条件 任意 是 表达式或其组合。其结果不是布尔值时,会进行真假判断。 操作 全局操作函数 是 全局操作函数或其组合。 default 全局操作函数 否 默认的全局操作函数或其组合。没有条件满足时执行该操作。 返回结果 返回加工处理后的日志。 函数示例 如果content字段的值为123,则将__topic__字段的值设置为Number。如果data字段的值为123,则将__topic__字段的值设置为PRO。 测试数据 { "__topic__": , "age": 18, "content": 123, "name":"maki", "data": 342 } { "__topic__": , "age": 18, "content": 23, "name": "maki" , "data": 123 } 加工规则 e_switch( e_search("content==123"), e_set("__topic__", "Number", mode="overwrite"), e_search("data==123"), e_set("__topic__", "PRO", mode="overwrite"), ) 加工结果 __topic__: Number age: 18 content: 123 name: maki data: 342 __topic__: PRO age: 18 content: 23 name: maki data: 123 通过e_switch语法和e_output语法结合,将符合规则的日志投递到不同的Logstream。其中default=e_drop(),表示将不满足规则的日志丢弃,不做投递处理。若不设置default参数,则表示不满足规则日志都会被投递到配置的第一个Logstream中。 output的加工结果不会显示到加工结果框中。 测试数据 { "__topic__": "sas-log-dns" , "test": "aa" , "__topic__": "aegis-log-network", "test":"ecs" , "__topic__": "local-dns" , "test":"sls" , "__topic__": "aegis-log-login" , "test": "sls" } 加工规则 e_switch(e_match("__topic__","sas-log-dns"), e_output(name="target1"), e_match("__topic__","sas-log-process"), e_output(name="target2"), e_match("__topic__","local-dns"), e_output(name="target3"), e_match("__topic__","aegis-log-network"), e_output(name="target4"), e_match("__topic__","aegis-log-login"), e_output(name="target5"), default=e_drop()) 更多参考 支持和其他函数组合使用。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全