SQL 다중값 문자열 함수
SQL 다중값 문자열 함수
Druid SQL에서 여러 값을 담은 문자열 차원(multi-value string dimension)을 다룰 때 쓰는 함수들을 소개해요. 배열 계열 함수와 동작이 거의 같지만 VARCHAR 타입을 기준으로 해요.
출처: 문서
본문
Apache Druid는 Druid SQL과 native 쿼리 두 가지 쿼리 언어를 지원해요. 이 문서는 SQL 언어를 설명해요.
Druid는 여러 값을 포함하는 문자열 차원을 지원해요. 이 페이지는 Druid SQL로 multi-value string 차원에서 수행할 수 있는 연산들을 설명해요. 자세한 내용은 SQL multi-value strings 문서와 native Multi-value dimensions 문서를 참고해요.
multi-value string 함수 문서의 모든 배열 참조는 multi-value string column 또는 ARRAY 타입을 가리킬 수 있어요. 이 함수들은 array 함수와 거의 동일하지만 VARCHAR 타입과 동작을 사용해요. multi-value string은 MV_TO_ARRAY 로 ARRAY 타입으로 변환할 수 있고, ARRAY는 ARRAY_TO_MV 로 multi-value string으로 변환할 수 있어요. ARRAY 타입에 대한 추가 세부 사항은 ARRAY data type 문서를 참고해요.
| Function | Description | | MV_FILTER_ONLY(expr, arr) | 배열 arr 에 포함된 값만 남도록 multi-value expr 를 필터링해요. | | MV_FILTER_NONE(expr, arr) | 배열 arr 에 포함된 값이 없도록 multi-value expr 를 필터링해요. | | MV_FILTER_REGEX(expr, pattern) | pattern 과 일치하는 값만 남도록 multi-value expr 를 필터링해요. | | MV_FILTER_PREFIX(expr, prefix) | prefix 접두사를 가진 값만 남도록 multi-value expr 를 필터링해요. | | MV_LENGTH(arr) | 배열 표현식의 길이를 반환해요. | | MV_CONTAINS(arr, expr) | expr 이 스칼라 타입이면 arr 이 expr 을 포함하면 true를, expr 이 배열이면 arr 이 expr 의 모든 요소를 포함하면 true를 반환해요. 그 외에는 false를 반환해요. | | MV_OVERLAP(arr1, arr2) | arr1 과 arr2 가 공통 요소를 하나라도 가지면 true를, 아니면 false를 반환해요. | | MV_OFFSET(arr, long) | 0-기반 인덱스에 해당하는 배열 요소를 반환하고, 범위를 벗어난 인덱스면 null 을 반환해요. | | MV_OFFSET_OF(arr, expr) | 배열에서 expr 이 처음 나타나는 0-기반 인덱스를 반환해요. 일치하는 요소가 없으면 null 을 반환해요. | | MV_ORDINAL(arr, long) | 1-기반 인덱스에 해당하는 배열 요소를 반환하고, 범위를 벗어난 인덱스면 null 을 반환해요. | | MV_ORDINAL_OF(arr, expr) | 배열에서 expr 이 처음 나타나는 1-기반 인덱스를 반환해요. 일치하는 요소가 없으면 null 을 반환해요. | | MV_PREPEND(expr, arr) | arr 의 앞에 expr 을 추가해요. 결과 배열 타입은 arr 의 타입에 따라 결정돼요. | | MV_APPEND(arr, expr) | arr 의 뒤에 expr 을 추가해요. 결과 배열 타입은 arr 의 타입에 따라 결정돼요. | | MV_CONCAT(arr1, arr2) | arr2 를 arr1 에 이어붙여요. 결과 배열 타입은 arr1 의 타입에 따라 결정돼요. | | MV_SLICE(arr, start, end) | start 의 0-기반 인덱스(포함)부터 end (제외)까지의 부분 배열을 반환해요. start 가 0보다 작거나 배열 길이보다 크거나 end 보다 크면 null 을 반환해요. end 가 배열 길이보다 크면 부분 배열에 null 값이 추가돼요. | | MV_TO_STRING(arr, str) | arr 의 모든 요소를 str 로 지정한 구분자로 이어붙여요. | | STRING_TO_MV(str1, str2) | str1 을 str2 로 지정한 구분자(정규식)로 나누어 배열로 만들어요. | | MV_TO_ARRAY(str) | multi-value string을 VARCHAR에서 VARCHAR ARRAY 로 변환해요. |
더 알아보기 (Learn more)
- SQL 배열 함수 — ARRAY 타입 함수 살펴보기
- Multi-value 문자열 처리 — MV 처리 방식 자세히 보기
- ARRAY 데이터 타입 — ARRAY 타입 이해하기