개요
이 섹션에 언급된 함수는 최대 성능을 위해 최적화되어 있으며, 대부분 RFC-3986 표준을 따르지 않습니다.
RFC-3986을 구현하는 함수는 함수 이름 끝에
RFC가 붙으며, 일반적으로 더 느립니다.@ 기호가 포함되지 않았다면 일반적으로 non-RFC 함수 변형을 사용할 수 있습니다.
아래 표는 URL에서 각 RFC 및 non-RFC 변형이 어떤 기호를 파싱할 수 있는지(✔), 또는 파싱할 수 없는지(✗)를 보여줍니다.
*로 표시된 기호는 RFC 3986의 하위 구분 기호(sub-delimiters)이며, @ 기호 뒤의 사용자 정보에 허용됩니다.
URL 함수에는 두 가지 타입이 있습니다.
- URL의 일부를 추출하는 함수입니다. URL에 해당 부분이 없으면 빈 문자열을 반환합니다.
- URL의 일부를 제거하는 함수입니다. URL에 해당하는 부분이 없으면 URL은 변경되지 않습니다.
아래 함수는
system.functions 시스템 테이블(system table)에서 생성됩니다.URLHierarchy
/, ?, # 기호를 기준으로 URL의 끝부분을 잘라낸 값들을 담은 배열을 반환합니다. 연속된 구분자 문자는 하나로 간주됩니다. 결과의 첫 번째 요소에는 프로토콜과 호스트가 포함되며, 이후에는 점차 길어지는 경로가 계층 구조를 이룹니다.
구문
url— 처리할 URL입니다.String
Array(String)
예시
기본 사용법
Query
Response
URLPathHierarchy
/, ?, # 기호를 기준으로 잘라냅니다. URLHierarchy와 달리 결과에는 프로토콜과 호스트가 포함되지 않으며, 경로부터 시작합니다. 연속된 구분자 문자는 하나로 간주됩니다.
구문
url— 처리할 URL입니다.String
Array(String)
예시
기본 사용법
Query
Response
cutFragment
url— URL.String
String
예시
사용 예시
Query
Response
cutQueryString
url— URL.String
String
예시
사용 예시
Query
Response
cutQueryStringAndFragment
url— URL.String
String
예시
사용 예시
Query
Response
cutToFirstSignificantSubdomain
url— 처리할 URL 또는 도메인 문자열입니다.String
String
예시
사용 예시
Query
Response
cutToFirstSignificantSubdomainCustom
url— 처리할 URL 또는 도메인 문자열입니다.Stringtld_list_name— ClickHouse에 구성된 사용자 지정 TLD 목록의 이름입니다.const String
String
예시
비표준 도메인에 사용자 지정 TLD 목록 적용
Query
Response
cutToFirstSignificantSubdomainCustomRFC
url— RFC 3986에 따라 처리할 URL 또는 도메인 문자열입니다. -tld_list_name— ClickHouse에 구성된 사용자 지정 TLD 목록의 이름입니다.
String
예시
사용 예시
Query
Response
cutToFirstSignificantSubdomainCustomWithWWW
www를 제거하지 않고, 최상위 하위 도메인부터 첫 번째 유의미한 하위 도메인까지 포함하는 도메인 부분을 반환합니다. 사용자 지정 TLD 목록 이름을 받습니다. 최신 TLD 목록이 필요하거나 사용자 지정 목록을 사용하는 경우 유용할 수 있습니다.
구성 예시
url— 처리할 URL 또는 도메인 문자열입니다. -tld_list_name— ClickHouse에 구성된 사용자 지정 TLD 목록의 이름입니다.
www를 제거하지 않고, 첫 번째 유의미한 하위 도메인까지의 최상위 하위 도메인을 포함한 도메인 부분입니다. String
예시
사용 예시
Query
Response
cutToFirstSignificantSubdomainCustomWithWWWRFC
www를 제거하지 않은 채, 최상위 하위 도메인부터 첫 번째 유의미한 하위 도메인까지 포함하는 도메인 부분을 반환합니다.
사용자 지정 TLD 목록 이름을 인자로 받습니다.
최신 TLD 목록이 필요하거나 사용자 지정 목록을 사용하는 경우 유용합니다.
cutToFirstSignificantSubdomainCustomWithWWW와 유사하지만, RFC 3986를 준수합니다.
구성 예시
url— RFC 3986에 따라 처리할 URL 또는 도메인 문자열입니다. -tld_list_name— ClickHouse에 구성된 사용자 지정 TLD 목록의 이름입니다.
www를 제거하지 않고, 최상위 하위 도메인부터 첫 번째 유의미한 하위 도메인까지 포함한 도메인 부분을 반환합니다. String
예시
사용자 지정 TLD 목록을 사용해 www를 유지한 채 RFC 3986을 파싱하는 예시
Query
Response
cutToFirstSignificantSubdomainRFC
cutToFirstSignificantSubdomain와 유사하지만 RFC 3986을 준수합니다.
구문
url— RFC 3986에 따라 처리할 URL 또는 도메인 문자열입니다.String
String
예시
사용 예시
Query
Response
cutToFirstSignificantSubdomainWithWWW
www.를 제거하지 않고, 도메인에서 “유의미한 하위 도메인”까지의 최상위 하위 도메인을 포함한 부분을 반환합니다.
cutToFirstSignificantSubdomain과 유사하지만, www. 접두사가 있으면 그대로 유지합니다.
구문
url— 처리할 URL 또는 도메인 문자열입니다.String
www 포함)의 도메인 부분을 반환하며, 그렇지 않으면 빈 문자열을 반환합니다. String
예시
사용 예시
Query
Response
cutToFirstSignificantSubdomainWithWWWRFC
www를 제거하지 않고, 「첫 번째 유의미한 하위 도메인」까지의 최상위 하위 도메인을 포함하는 부분을 반환합니다. cutToFirstSignificantSubdomainWithWWW와 유사하지만 RFC 3986을 준수합니다.
구문
url— RFC 3986에 따라 처리할 URL 또는 도메인 문자열입니다.
www 포함)까지의 도메인 부분을 반환하고, 그렇지 않으면 빈 문자열 String을 반환합니다.
예시
사용 예시
Query
Response
cutURLParameter
name 매개변수가 있으면 제거합니다.
이 함수는 매개변수 이름의 문자를 인코딩하거나 디코딩하지 않으므로, 예를 들어 Client ID와 Client%20ID는 서로 다른 매개변수 이름으로 간주됩니다.
구문
url— URL.Stringname— URL 매개변수의 이름.String또는Array(String)
name URL 매개변수가 제거된 URL입니다. String
예시
사용 예시
Query
Response
cutWWW
www. 접두사가 있으면 제거합니다.
구문
url— URL.String
www.를 제거한 URL을 반환합니다. String
예시
사용 예시
Query
Response
decodeURLComponent
url— URL.String
String
예시
사용 예시
Query
Response
decodeURLFormComponent
+ 기호를 공백으로 변환하고 퍼센트 인코딩된 문자를 디코딩하는 폼 인코딩 규칙(RFC-1866)에 따라 URL 인코딩된 문자열을 디코딩합니다.
구문
url— URL입니다.String
String
예시
사용 예시
Query
Response
domain
url— URL.String
String
예시
사용 예시
Query
Response
domainRFC
domain과 유사하지만 RFC 3986을 준수합니다.
구문
url— URL.String
String
예시
사용 예시
Query
Response
domainWithoutWWW
www.가 있으면 이를 제거한 도메인을 반환합니다.
구문
url— URL.String
www. 제외)을 반환하고, 그렇지 않으면 빈 문자열을 반환합니다. String
예시
사용 예시
Query
Response
domainWithoutWWWRFC
www.가 있으면 이를 제거한 도메인을 반환합니다. domainWithoutWWW와 유사하지만 RFC 3986을 준수합니다.
구문
url— URL.String
www. 제외)을 반환하고, 그렇지 않으면 빈 문자열을 반환합니다. String
예시
사용 예시
Query
Response
encodeURLComponent
url— URL입니다.String
String
예시
사용 예시
Query
Response
encodeURLFormComponent
url— URL.String
String
예시
사용 예시
Query
Response
extractURLParameter
name 매개변수가 있으면 해당 값을 반환하고, 없으면 빈 문자열을 반환합니다.
같은 이름의 매개변수가 여러 개 있으면 첫 번째 값을 반환합니다.
이 함수는 url 매개변수에 포함된 매개변수가 name 인수와 동일한 방식으로 인코딩되어 있다고 가정합니다.
구문
String
예시
사용 예시
Query
Response
extractURLParameterNames
url— URL.String
Array(String)
예시
사용 예시
Query
Response
extractURLParameters
name=value 형식의 문자열 배열을 반환합니다.
값은 디코딩되지 않습니다.
구문
url— URL.String
name=value 문자열의 배열을 반환합니다. Array(String)
예시
사용 예시
Query
Response
firstSignificantSubdomain
- None.
Query
Response
firstSignificantSubdomainCustom
String
예시
기본 사용법
Query
Response
firstSignificantSubdomainCustomRFC
firstSignificantSubdomainCustom와 유사하지만, 단순화된 알고리즘 대신 RFC 3986을 준수하는 URL 파싱을 사용합니다.
구문
String
예시
기본 사용법
Query
Response
firstSignificantSubdomainRFC
- 없음.
fragment
url— URL.String
String
예시
사용 예시
Query
Response
netloc
username:password@host:port)를 추출합니다.
구문
url— URL.String
username:password@host:port를 반환합니다. String
예시
사용 예시
Query
Response
path
url— URL.String
String
예시
사용 예시
Query
Response
pathFull
path와 동일하지만 URL의 쿼리 문자열과 프래그먼트도 포함합니다.
구문
url— URL.String
String
예시
사용 예시
Query
Response
port
default_port를 반환합니다.
구문
UInt16
예시
사용 예시
Query
Response
portRFC
default_port를, 그렇지 않으면 포트를 반환합니다.
port와 유사하지만 RFC 3986을 준수합니다.
구문
UInt16
예시
사용 예시
Query
Response
protocol
url— URL.String
String
예시
사용 예시
Query
Response
queryString
# 및 그 뒤의 모든 내용을 제외한 값을 반환합니다.
구문
url— URL.String
String
예시
사용 예시
Query
Response
queryStringAndFragment
url— URL.String
String
예시
사용 예시
Query
Response
topLevelDomain
URL은 프로토콜이 있거나 없어도 지정할 수 있습니다.
예를 들면 다음과 같습니다:
url— URL.String
String
예시
사용 예시
Query
Response
topLevelDomainRFC
도입 버전: v22.10.0 URL에서 최상위 도메인을 추출합니다.topLevelDomain와 비슷하지만, RFC 3986을 준수합니다.
구문
url— URL.String
String
예시
사용 예시
Query
Response