extractKeyValuePairs
도입 버전: v23.4.0 임의의 문자열에서 key-value 쌍을 추출합니다. 문자열이 반드시 100% key-value 쌍 형식으로 구조화되어 있을 필요는 없습니다. 노이즈(예: 로그 파일)가 포함될 수 있습니다. 해석할 키-값 쌍 포맷은 함수 인수를 통해 지정해야 합니다. 키-값 쌍은 키 다음에key_value_delimiter와 값이 오는 형태로 구성됩니다. 따옴표로 묶인 키와 값도 지원됩니다. 키-값 쌍은 쌍 구분 기호로 구분되어야 합니다.
구문
data- 키-값 쌍을 추출할 대상 문자열입니다. String 또는 FixedString입니다.key_value_delimiter- 키와 값을 구분하는 데 사용하는 문자입니다. 기본값은:입니다. String 또는 FixedString입니다.pair_delimiters- 각 쌍을 구분하는 데 사용하는 문자 집합입니다. 기본값은\space,,,;입니다. String 또는 FixedString입니다.quoting_character- 인용 문자로 사용하는 문자입니다. 기본값은"입니다. String 또는 FixedString입니다.unexpected_quoting_character_strategy-read_key및read_value단계에서 예상하지 못한 위치에 있는 인용 문자를 처리하는 전략입니다. 가능한 값은invalid,accept,promote입니다.invalid는 키/값을 버리고WAITING_KEY상태로 다시 전환합니다.accept는 이를 일반 문자로 처리합니다.promote는READ_QUOTED_{KEY/VALUE}상태로 전환한 뒤 다음 문자부터 시작합니다. 기본값은PROMOTE입니다.
- Map(String, String) 형식으로 추출된 key-value 쌍입니다.
mapFromString, str_to_map
인수
- 없음.
extractKeyValuePairsWithEscaping
도입 버전: v23.4.0extractKeyValuePairs와 동일하지만 이스케이프를 지원합니다.
지원되는 이스케이프 시퀀스: \x, \N, \a, \b, \e, \f, \n, \r, \t, \v, \0.
표준이 아닌 이스케이프 시퀀스는 다음 중 하나에 해당하지 않는 한 원래대로 반환됩니다(백슬래시 포함):
\\, ', ", backtick, /, = 또는 ASCII 제어 문자(c <= 31).
이 함수는 사전 이스케이프와 사후 이스케이프가 적합하지 않은 경우에 유용합니다. 예를 들어, 다음과 같은
입력 문자열을 생각해 보겠습니다: a: "aaaa\"bbb". 예상 출력은 a: aaaa\"bbbb입니다.
- 사전 이스케이프: 사전 이스케이프를 적용하면
a: "aaaa"bbb"가 출력되고, 이후extractKeyValuePairs는a: aaaa를 출력합니다 - 사후 이스케이프:
extractKeyValuePairs는a: aaaa\를 출력하고, 사후 이스케이프는 이를 그대로 유지합니다.
- 없음.
map
도입 버전: v21.1.0 key-value 쌍에서Map(key, value) 타입의 값을 생성합니다.
구문
Map(Any, Any)
예시
사용 예시
Query
Response
mapAdd
도입 버전: v20.7.0 모든 키를 모아 해당하는 값들을 합산합니다. 구문arg1[, arg2, ...]— 첫 번째 배열의 항목이 키를 나타내고, 두 번째 배열에 각 키의 값이 들어 있는 맵 또는 두 개의 배열로 구성된 튜플입니다.Map(K, V)또는Tuple(Array(T), Array(T))
Map(K, V) 또는 Tuple(Array(T), Array(T))
예시
맵(Map) 타입 사용
Query
Response
Query
Response
mapAll
도입 버전: v23.4.0 맵의 모든 key-value 쌍에 대해 조건이 성립하는지 확인합니다.mapAll은 고차 함수입니다.
첫 번째 인수로 람다 함수를 전달할 수 있습니다.
구문
1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
mapApply
도입 버전: v22.3.0 맵의 각 요소에 함수를 적용합니다. 구문func를 적용해 얻은 새로운 맵을 반환합니다. Map(K, V)
예시
사용 예시
Query
Response
mapConcat
도입된 버전: v23.4.0 여러 맵을 키의 동일 여부를 기준으로 이어 붙입니다. 동일한 키를 가진 요소가 둘 이상의 입력 맵에 있으면 모든 요소가 결과 맵에 추가되지만,[] 연산자로는 첫 번째 요소에만 접근할 수 있습니다.
구문
maps— 개수에 제한 없이 여러 개의 맵.Map
Map
예시
사용 예시
Query
Response
mapContainsKey
도입 버전: v21.2.0 맵에 키가 포함되어 있는지 확인합니다. 구문mapContains
인수
반환 값
맵에 키가 있으면 1, 없으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
mapContainsKeyLike
도입 버전: v23.4.0 맵에LIKE로 지정된 패턴과 일치하는 키가 포함되어 있는지 확인합니다.
구문
map— 검색할 맵입니다.Map(K, V)pattern— 키와 일치하는지 확인할 패턴입니다.const String
map에 pattern과 일치하는 키가 있으면 1, 없으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
mapContainsKeyValue
도입 버전: v26.9.0 맵에 지정된 키와 값을 가진 엔트리가 있는지 반환합니다. 인수가NULL이 아닌 경우 다음 표현식과 같습니다.
arrayExists((k, v) -> k = key AND v = value, mapKeys(map), mapValues(map)).
NULL은 mapContainsKey 및 mapContainsValue에서처럼 다른 NULL과만 일치합니다. = 연산자처럼
비교 결과를 알 수 없는 값으로 처리하지 않습니다.
map[key] = value는 key가 처음 나타나는 엔트리의 값만 비교하는 반면, 이 함수는 모든 엔트리를 확인합니다.
keyValuePairs 토크나이저를 사용하는 텍스트 인덱스에서 이 함수의 결과를 조회할 수 있습니다.
구문
map— 검색 대상 맵입니다.Map(K, V)key— 검색할 키입니다. 타입이 맵의 키 타입과 일치해야 합니다.Anyvalue— 검색할 값입니다. 타입이 맵의 값 타입과 일치해야 합니다.Any
1, 없으면 0을 반환합니다. UInt8
예시
기본 사용법
Query
Response
Query
Response
Query
Response
mapContainsValue
도입 버전: v25.6.0 맵에 값이 포함되어 있는지 판별합니다. 구문1을, 없으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
mapContainsValueLike
도입 버전: v25.5.0 맵에 지정된 패턴과LIKE로 일치하는 값이 포함되어 있는지 확인합니다.
구문
map— 검색할 맵입니다.Map(K, V)pattern— 값과 매칭할 패턴입니다.const String
map에 pattern과 일치하는 값이 포함되어 있으면 1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
mapEntries
도입 버전: v26.10.0 맵의 key-value 쌍을key 및 value 필드로 구성된 named tuple의 배열로 반환합니다.
중복된 키는 그대로 유지됩니다.
구문
map— 엔트리를 추출할 맵입니다.Map(K, V)
Array(Tuple(key K, value V))
예시
사용 예시
Query
Response
mapExists
도입 버전: v23.4.0 맵에서 하나 이상의 키-값 쌍이 조건을 만족하는지 확인합니다.mapExists는 고차 함수입니다.
첫 번째 인수로 람다 함수를 전달할 수 있습니다.
구문
1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
Query
Response
mapExtractKeyLike
도입 버전: v23.4.0 문자열 키를 가진 맵과LIKE 패턴이 주어지면, 키가 해당 패턴과 일치하는 요소만 포함된 맵을 반환합니다.
구문
map— 값을 추출할 대상 맵입니다.Map(K, V)pattern— 키와 일치 여부를 비교할 패턴입니다.const String
Map(K, V)
예시
사용 예시
Query
Response
mapExtractValueLike
도입 버전: v25.5.0 문자열 값을 가진 맵과LIKE 패턴이 주어지면, 이 함수는 값이 해당 패턴과 일치하는 요소만 포함한 맵을 반환합니다.
구문
map— 추출할 대상 맵입니다.Map(K, V)pattern— 값이 일치하는지 확인할 패턴입니다.const String
Map(K, V)
예시
사용 예시
Query
Response
mapFilter
도입 버전: v22.3.0 맵의 각 요소에 함수를 적용해 필터링합니다. 구문func가 0이 아닌 값을 반환한 요소만 포함하는 맵을 반환합니다. Map(K, V)
예시
사용 예시
Query
Response
mapFromArrays
도입 버전: v23.3.0 키 배열 또는 키 맵과 값 배열 또는 값 맵으로부터 맵을 생성합니다. 이 함수는CAST([...], 'Map(key_type, value_type)') 구문의 편리한 대안입니다.
구문
MAP_FROM_ARRAYS
인수
반환 값
키 배열과 값 배열/맵으로 구성된 키와 값을 포함하는 맵을 반환합니다. Map
예시
기본 사용법
Query
Response
Query
Response
mapKeys
도입 버전: v21.2.0 주어진 맵의 키를 반환합니다. 이 함수는 설정optimize_functions_to_subcolumns을 활성화하면 최적화됩니다.
이 설정이 활성화되면 전체 맵 대신 keys 서브컬럼만 읽습니다.
쿼리 SELECT mapKeys(m) FROM table는 SELECT m.keys FROM table로 변환됩니다.
구문
map— 키를 추출할 맵입니다.Map(K, V)
Array(T)
예시
사용 예시
Query
Response
mapPartialReverseSort
도입 버전: v23.4.0 맵의 요소를 내림차순으로 정렬하며, 추가된 limit 인수를 사용해 부분 정렬도 수행할 수 있습니다. func 함수가 지정되면 정렬 순서는 맵의 키와 값에 func 함수를 적용한 결과로 결정됩니다. 구문func— 선택 사항입니다. 람다 함수입니다.람다 함수limit—[1..limit]범위의 요소를 정렬합니다.(U)Int*map— 정렬할 맵입니다.Map(K, V)
Map(K, V)
예시
사용 예시
Query
Response
mapPartialSort
도입 버전: v23.4.0 맵의 요소를 오름차순으로 정렬하며, 추가된 limit 인수를 사용해 부분 정렬도 수행할 수 있습니다. func 함수가 지정되면 정렬 순서는 맵의 키와 값에 func 함수를 적용한 결과로 결정됩니다. 구문func— 선택 사항입니다. 람다 함수입니다.람다 함수limit—[1..limit]범위의 요소를 정렬합니다.(U)Int*map— 정렬할 맵입니다.Map(K, V)
Map(K, V)
예시
사용 예시
Query
Response
mapPopulateSeries
도입 버전: v20.10.0 정수 키를 사용하는 맵에서 누락된 key-value 쌍을 채웁니다. 가장 큰 값을 넘어 키를 확장할 수 있도록 최대 키를 지정할 수 있습니다. 보다 구체적으로, 이 함수는 키가 가장 작은 키부터 가장 큰 키(또는 지정된 경우 max 인수)까지 1의 간격으로 이어지고, 이에 대응하는 값을 포함하는 맵을 반환합니다. 키에 값이 지정되지 않으면 기본값이 사용됩니다. 키가 중복되면 등장 순서상 첫 번째 값만 해당 키에 연결됩니다. 구문map— 정수 키를 갖는 맵입니다.Map((U)Int*, V)keys— 키 배열입니다.Array(T)values— 값 배열입니다.Array(T)max— 선택 사항입니다. 키의 최댓값입니다.Int8또는Int16또는Int32또는Int64또는Int128또는Int256
Map(K, V) 또는 Tuple(Array(UInt*), Array(Any))
예시
맵(Map) 타입 사용
Query
Response
Query
Response
mapRemove
도입 버전: v26.10.0 맵에서 지정된 키와 같은 키를 가진 엔트리를 모두 제거합니다. 동일한 키를 가진 엔트리가 여러 개이면 일치하는 엔트리가 모두 제거됩니다. NULL은 일반 값으로 취급하여 비교합니다. 즉, NULL인 제거 키는 NULL이 아닌 키와 일치하지 않으며, 복합 키에 포함된 NULL 구성 요소는 다른 NULL 구성 요소와 일치합니다. 공통 상위 타입(common supertype)이 있는 키 타입에서는 NaN 키가 맵 조회 의미 체계를 따르므로, NaN인 제거 키는 맵의 NaN 키와 일치합니다. 구문Map(K, V)
예시
사용 예시
Query
Response
mapReverseSort
출시 버전: v23.4.0 맵의 요소를 내림차순으로 정렬합니다. func 함수를 지정하면 정렬 순서는 맵의 키와 값에 func 함수를 적용한 결과로 결정됩니다. 구문Map(K, V)
예시
사용 예시
Query
Response
mapSort
도입 버전: v23.4.0 맵의 요소를 오름차순으로 정렬합니다.func 함수가 지정되면, 정렬 순서는 맵의 키와 값에 func 함수를 적용한 결과로 결정됩니다.
구문
Map(K, V)
예시
사용 예시
Query
Response
mapSubtract
도입 버전: v20.7.0 모든 키를 모아 해당 값을 뺍니다. 구문arg1[, arg2, ...]— 첫 번째 배열의 항목이 키를 나타내고, 두 번째 배열에 각 키의 값이 들어 있는 맵 또는 두 개의 배열로 이루어진 튜플입니다.Map(K, V)또는Tuple(Array(T), Array(T))
Map(K, V) 또는 Tuple(Array(T), Array(T))
예시
맵(Map) 타입 사용 시
Query
Response
Query
Response
mapUpdate
도입 버전: v22.3.0 두 개의 맵이 주어지면, 두 번째 맵의 해당 키 값을 반영해 첫 번째 맵의 값을 업데이트한 맵을 반환합니다. 구문map2의 해당 키에 대응하는 값으로 업데이트된 map1을 반환합니다. Map(K, V)
예시
기본 사용법
Query
Response
mapValues
도입 버전: v21.2.0 주어진 맵의 값을 반환합니다. 이 함수는optimize_functions_to_subcolumns 설정을 활성화하면 최적화할 수 있습니다.
이 설정을 활성화하면 함수는 전체 맵 대신 values 서브컬럼만 읽습니다.
쿼리 SELECT mapValues(m) FROM table는 SELECT m.values FROM table로 변환됩니다.
구문
map— 값을 추출할 대상 맵입니다.Map(K, V)
Array(T)
예시
사용 예시
Query
Response