ClickHouse/docs/ja/sql-reference/functions/url-functions.md
2020-10-13 20:23:29 +03:00

7.8 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 54 Urlの操作

Urlを操作するための関数

これらの関数はすべてRFCに従っていません。 それらは改善された性能のために最大限に簡単にされる。

URLの一部を抽出する関数

関連する部分がURLにない場合は、空の文字列が返されます。

プロトコル

URLからプロトコルを抽出します。

Examples of typical returned values: http, https, ftp, mailto, tel, magnet…

ドメイン

URLからホスト名を抽出します。

domain(url)

パラメータ

URLは、スキームの有無にかかわらず指定できます。 例:

svn+ssh://some.svn-hosting.com:80/repo/trunk
some.svn-hosting.com:80/repo/trunk
https://yandex.com/time/

これらの例では、 domain 関数は、次の結果を返します:

some.svn-hosting.com
some.svn-hosting.com
yandex.com

戻り値

  • ホスト名。 ClickHouseが入力文字列をURLとして解析できる場合。
  • 空の文字列。 ClickHouseが入力文字列をURLとして解析できない場合。

タイプ: String.

SELECT domain('svn+ssh://some.svn-hosting.com:80/repo/trunk')
┌─domain('svn+ssh://some.svn-hosting.com:80/repo/trunk')─┐
│ some.svn-hosting.com                                   │
└────────────────────────────────────────────────────────┘

domainWithoutWWW

ドメインを返し、複数のドメインを削除しません www. それの始めから、存在する場合。

トップレベルドメイン

URLからトップレベルドメインを抽出します。

topLevelDomain(url)

パラメータ

URLは、スキームの有無にかかわらず指定できます。 例:

svn+ssh://some.svn-hosting.com:80/repo/trunk
some.svn-hosting.com:80/repo/trunk
https://yandex.com/time/

戻り値

  • ドメイン名。 ClickHouseが入力文字列をURLとして解析できる場合。
  • 空の文字列。 ClickHouseが入力文字列をURLとして解析できない場合。

タイプ: String.

SELECT topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk')
┌─topLevelDomain('svn+ssh://www.some.svn-hosting.com:80/repo/trunk')─┐
│ com                                                                │
└────────────────────────────────────────────────────────────────────┘

firstSignificantSubdomain

を返す。 “first significant subdomain”. これはYandexに固有の非標準的な概念です。メトリカ 最初の重要なサブドメインは、次の場合にセカンドレベルドメインです com, net, org,または co. それ以外の場合は、サードレベルドメインです。 例えば, firstSignificantSubdomain (https://news.yandex.ru/) = yandex, firstSignificantSubdomain (https://news.yandex.com.tr/) = yandex. のリスト “insignificant” セカンドレベルドメイ

cutToFirstSignificantSubdomain

トップレベルのサブドメインを含むドメインの一部を返します。 “first significant subdomain” (上記の説明を参照)。

例えば, cutToFirstSignificantSubdomain('https://news.yandex.com.tr/') = 'yandex.com.tr'.

パス

パスを返します。 例: /top/news.html パスにはクエリ文字列は含まれません。

パスフル

上記と同じですが、クエリ文字列とフラグメントを含みます。 例:/top/news.html?ページ=2#コメント

クエリ文字列

クエリ文字列を返します。 例:ページ=1&lr=213. query-stringには、最初の疑問符だけでなく、#と#の後のすべても含まれていません。

断片

フラグメント識別子を返します。 fragmentには初期ハッシュ記号は含まれません。

queryStringAndFragment

クエリ文字列とフラグメント識別子を返します。 例:ページ=1#29390.

extractURLParameter(URL,名前)

の値を返します。 name URLにパラメータがある場合。 それ以外の場合は、空の文字列です。 この名前のパラメーターが多い場合は、最初に出現するパラメーターを返します。 この関数は、パラメータ名が渡された引数とまったく同じ方法でURLにエンコードされるという前提の下で機能します。

extractURLParameters(URL)

URLパラメーターに対応するname=value文字列の配列を返します。 値はどのような方法でもデコードされません。

extractURLParameterNames(URL)

URLパラメーターの名前に対応する名前文字列の配列を返します。 値はどのような方法でもデコードされません。

URLHierarchy(URL)

URLを含む配列を返します。 パスとクエリ文字列で。 連続セパレータ文字として数えます。 カットは、すべての連続した区切り文字の後の位置に行われます。

URLPathHierarchy(URL)

上記と同じですが、結果にプロトコルとホストはありません。 要素(ルート)は含まれません。 例関数は、ツリーを実装するために使用されるYandexの中のURLを報告します。 メートル法

URLPathHierarchy('https://example.com/browse/CONV-6788') =
[
    '/browse/',
    '/browse/CONV-6788'
]

decodeURLComponent(URL)

デコードしたURLを返します。 例:

SELECT decodeURLComponent('http://127.0.0.1:8123/?query=SELECT%201%3B') AS DecodedURL;
┌─DecodedURL─────────────────────────────┐
│ http://127.0.0.1:8123/?query=SELECT 1; │
└────────────────────────────────────────┘

URLの一部を削除する関数

URLに類似のものがない場合、URLは変更されません。

cutWWW

複数を削除しません www. URLのドメインの先頭から存在する場合。

cutQueryString

クエリ文字列を削除します。 疑問符も削除されます。

カットフラグメント

フラグメント識別子を削除します。 番号記号も削除されます。

cutQueryStringAndFragment

クエリ文字列とフラグメント識別子を削除します。 疑問符と番号記号も削除されます。

cutURLParameter(URL,名前)

を削除します。 name URLパラメータが存在する場合。 この関数は、パラメータ名が渡された引数とまったく同じ方法でURLにエンコードされるという前提の下で機能します。

元の記事