本文介绍URL函数的基本语法和示例。
日志服务支持如下URL函数。
URL格式为
[protocol:][//host[:port]][path][?query][#fragment]
。在日志服务分析语句中,表示字符串的字符必须使用单引号('')包裹,无符号包裹或被双引号("")包裹的字符表示字段名或列名。例如:'status'表示字符串status,status或"status"表示日志字段status。
函数名称 | 语法 | 说明 | 支持SQL | 支持SPL |
url_encode(x) | 对URL进行编码。 | √ | √ | |
url_decode(x) | 对URL进行解码。 | √ | √ | |
url_extract_fragment(x) | 从URL中提取Fragment信息。 | √ | √ | |
url_extract_host(x) | 从URL中提取Host信息。 | √ | √ | |
url_extract_parameter(x, parameter name) | 从URL的查询部分中提取指定参数的值。 | √ | √ | |
url_extract_path(x) | 从URL中提取访问路径信息。 | √ | √ | |
url_extract_port(x) | 从URL中提取端口信息。 | √ | √ | |
url_extract_protocol(x) | 从URL中提取协议信息。 | √ | √ | |
url_extract_query(x) | 从URL中提取查询部分的信息。 | √ | √ |
url_encode函数
url_encode函数用于对URL进行编码。
语法
url_encode(x)
参数说明
参数 | 说明 |
x | 参数值为具体的URL地址。 |
返回值类型
varchar类型。
示例
对url字段的值进行编码。
字段样例
url:https://homenew.console.aliyun.com/home/dashboard/ProductAndService
查询和分析语句
* | select url_encode(url)
查询和分析结果
url_decode函数
url_decode函数对URL进行解码。
语法
url_decode(x)
参数说明
参数 | 说明 |
x | 参数值为编码过的URL地址。 |
返回值类型
varchar类型。
示例
对url字段值进行解码。
字段样例
url:http%3A%2F%2Fwww.aliyun.com%3A80%2Fproduct%2Fsls
查询和分析语句
* | SELECT url_decode(url) AS decode
查询和分析结果
url_extract_fragment函数
url_extract_fragment函数用于从URL中提取Fragment信息。
语法
url_extract_fragment(x)
参数说明
参数 | 说明 |
x | 参数值为具体的URL地址。 |
返回值类型
varchar类型。
示例
从url字段值中提取Fragment信息。
字段样例
url:https://sls.console.aliyun.com/#/project/dashboard-demo/categoryList
查询和分析语句
* | SELECT url_extract_fragment(url)
查询和分析结果
url_extract_host函数
url_extract_host函数用于从URL中提取Host信息。
语法
url_extract_host(x)
参数说明
参数 | 说明 |
x | 参数值为具体的URL地址。 |
返回值类型
varchar类型。
示例
从url字段值中提取Host信息。
字段样例
url:https://homenew.console.aliyun.com/home/dashboard/ProductAndService
查询和分析语句
* | SELECT url_extract_host(url) AS host
查询和分析结果
url_extract_parameter函数
url_extract_parameter函数用于从URL的查询部分中提取指定参数的值。
语法
url_extract_parameter(x, parameter name)
参数说明
参数 | 说明 |
x | 参数值为具体的URL地址。 |
parameter name | URL查询部分中的参数名称。 |
返回值类型
varchar类型。
示例
从url字段值中提取accounttraceid参数的值。
字段样例
url:https://sls.console.aliyun.com/lognext/project/dashboard-all/logsearch/nginx-demo?accounttraceid=d6241a173f88471c91d3405cda010ff5ghdw
查询和分析语句
* | SELECT url_extract_parameter(url,'accounttraceid') AS accounttraceid
查询和分析结果
url_extract_path函数
url_extract_path用于从URL中提取访问路径信息。
语法
url_extract_path(x)
参数说明
参数 | 说明 |
x | 参数值为具体的URL地址。 |
返回值类型
varchar类型。
示例
从url字段值中提取访问路径信息。
字段样例
url:https://sls.console.aliyun.com/lognext/project/dashboard-all/logsearch/nginx-demo?accounttraceid=d6241a173f88471c91d3405cda010ff5ghdw
查询和分析语句
* | SELECT url_extract_path(url) AS path
查询和分析结果
url_extract_port函数
url_extract_port函数用于从URL中提取端口信息。
语法
url_extract_port(x)
参数说明
参数 | 说明 |
x | 参数值为具体的URL地址。 |
返回值类型
varchar类型。
示例
从url字段值中提取端口信息。
字段样例
url:http://localhost:8080/lognext/profile
查询和分析语句
* | SELECT url_extract_port(url) AS port
查询和分析结果
url_extract_protocol函数
url_extract_protocol用于从URL中提取协议信息。
语法
url_extract_protocol(x)
参数说明
参数 | 说明 |
x | 参数值为具体的URL地址。 |
返回值类型
varchar类型。
示例
从url字段值中提取协议信息。
字段样例
url:https://homenew.console.aliyun.com/home/dashboard/ProductAndService
查询和分析语句
* | SELECT url_extract_protocol(url) AS protocol
查询和分析结果
url_extract_query函数
url_extract_query函数用于从URL中提取查询部分的信息。
语法
url_extract_query(x)
参数说明
参数 | 说明 |
x | 参数值为具体的URL地址。 |
返回值类型
varchar类型。
示例
从url字段值中提取查询部分的信息。
字段样例
url:https://sls.console.aliyun.com/lognext/project/dashboard-all/logsearch/nginx-demo?accounttraceid=d6241a173f88471c91d3405cda010ff5ghdw
查询和分析语句
* | SELECT url_extract_query(url)
查询和分析结果