SLS 分析文で URL をエンコード・デコードしたり、URL のコンポーネントを抽出したりするには、URL 関数を使用します。
SLS は以下の URL 関数をサポートしています。
-
URL のフォーマットは
[protocol:][//host[:port]][path][?query][#fragment]です。 -
SLS 分析文中では、文字列をシングルクォーテーション ('') で囲みます。引用符で囲まれていない、またはダブルクォーテーション ("") で囲まれたテキストはフィールド名またはカラム名を表します。たとえば、'status' は文字列 status を表し、status または "status" は status という名前のログフィールドを表します。
|
関数名 |
構文 |
説明 |
SQL |
SPL |
|
url_encode(x) |
URL をエンコードします。 |
√ |
√ |
|
|
url_decode(x) |
URL をデコードします。 |
√ |
√ |
|
|
url_extract_fragment(x) |
URL からフラグメントを抽出します。 |
√ |
√ |
|
|
url_extract_host(x) |
URL からホストを抽出します。 |
√ |
√ |
|
|
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 をエンコードします。
構文
url_encode(x)
パラメーター
|
パラメーター |
説明 |
|
x |
URL。 |
戻り値の型
varchar
使用例
url フィールドをエンコードします。
-
サンプルログ
url:https://home.console.alibabacloud.com/home/dashboard/ProductAndService -
クエリ
* | select url_encode(url) -
結果

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 からフラグメントを抽出します。
構文
url_extract_fragment(x)
パラメーター
|
パラメーター |
説明 |
|
x |
URL。 |
戻り値の型
varchar
使用例
url フィールドからフラグメントを抽出します。
-
サンプルログ
url:https://sls.console.alibabacloud.com/#/project/dashboard-demo/categoryList -
クエリ
* | SELECT url_extract_fragment(url) -
結果

url_extract_host 関数
URL からホストを抽出します。
構文
url_extract_host(x)
パラメーター
|
パラメーター |
説明 |
|
x |
URL。 |
戻り値の型
varchar
使用例
url フィールドからホストを抽出します。
-
サンプルログ
url:https://home.console.alibabacloud.com/home/dashboard/ProductAndService -
クエリ
* | SELECT url_extract_host(url) AS host -
結果

url_extract_parameter 関数
URL から指定されたクエリパラメーターの値を抽出します。
構文
url_extract_parameter(x, parameter name)
パラメーター
|
パラメーター |
説明 |
|
x |
URL。 |
|
parameter name |
クエリパラメーター名。 |
戻り値の型
varchar
使用例
url フィールドから accounttraceid パラメーターを抽出します。
-
サンプルログ
url:https://sls.console.alibabacloud.com/lognext/project/dashboard-all/logsearch/nginx-demo?accounttraceid=d6241a173f88471c91d3405cda010ff5ghdw -
クエリ
* | SELECT url_extract_parameter(url,'accounttraceid') AS accounttraceid -
結果

url_extract_path 関数
URL からパスを抽出します。
構文
url_extract_path(x)
パラメーター
|
パラメーター |
説明 |
|
x |
URL。 |
戻り値の型
varchar
使用例
url フィールドからパスを抽出します。
-
サンプルログ
url:https://sls.console.alibabacloud.com/lognext/project/dashboard-all/logsearch/nginx-demo?accounttraceid=d6241a173f88471c91d3405cda010ff5ghdw -
クエリ
* | SELECT url_extract_path(url) AS path -
結果

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 からプロトコルを抽出します。
構文
url_extract_protocol(x)
パラメーター
|
パラメーター |
説明 |
|
x |
URL。 |
戻り値の型
varchar
使用例
url フィールドからプロトコルを抽出します。
-
サンプルログ
url:https://home.console.alibabacloud.com/home/dashboard/ProductAndService -
クエリ
* | SELECT url_extract_protocol(url) AS protocol -
結果

url_extract_query 関数
URL からクエリ文字列を抽出します。
構文
url_extract_query(x)
パラメーター
|
パラメーター |
説明 |
|
x |
URL。 |
戻り値の型
varchar
使用例
url フィールドからクエリ文字列を抽出します。
-
サンプルログ
url:https://sls.console.alibabacloud.com/lognext/project/dashboard-all/logsearch/nginx-demo?accounttraceid=d6241a173f88471c91d3405cda010ff5ghdw -
クエリ
* | SELECT url_extract_query(url) -
結果
