함수 색인
함수 색인 (Function Index)
이 페이지는 Apache Pinot에서 가장 일반적으로 사용되는 함수의 포괄적인 A-Z 참조를 카테고리별로 제공해요. 각 카테고리 섹션은 전체 문법, 파라미터, 예시가 있는 상세 문서 페이지로 연결돼요.
출처: 문서
본문
함수는 Single-Stage Engine (SSE), Multi-Stage Engine (MSE), 또는 둘 다에서 사용할 수 있어요. Window 함수는 multi-stage 엔진이 필요해요.
이 페이지는 엔진 안내와 함께 함수 목록을 나타내요. 전체 정보는 개별 문서를 참조하세요.
집계 함수 (Aggregation)
자세한 내용은 Aggregation Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
COUNT |
COUNT(*) or COUNT(col) |
LONG | 행 수 카운트 | Both |
MIN |
MIN(col) |
DOUBLE | 최소값 반환 | Both |
MAX |
MAX(col) |
DOUBLE | 최대값 반환 | Both |
SUM |
SUM(col) |
DOUBLE | 값의 합 반환 | Both |
AVG |
AVG(col) |
DOUBLE | 값의 평균 반환 | Both |
MODE |
MODE(col) |
DOUBLE | 가장 빈번한 값 반환 | Both |
MINMAXRANGE |
MINMAXRANGE(col) |
DOUBLE | 범위(max - min) 반환 | Both |
DISTINCTCOUNT |
DISTINCTCOUNT(col) |
INT | 정확한 고유 카운트 반환 | Both |
DISTINCTCOUNTHLL |
DISTINCTCOUNTHLL(col [, log2m]) |
LONG | HyperLogLog를 사용한 근사 고유 카운트 | Both |
DISTINCTCOUNTHLLPLUS |
DISTINCTCOUNTHLLPLUS(col [, p]) |
LONG | HyperLogLog++를 사용한 근사 고유 카운트 | Both |
DISTINCTCOUNTSMARTHLLPLUS |
DISTINCTCOUNTSMARTHLLPLUS(col [, params]) |
LONG | 임계값 이후 HLL++로 전환되는 exact-then-approximate 고유 카운트 | Both |
DISTINCTCOUNTBITMAP |
DISTINCTCOUNTBITMAP(col) |
INT | bitmap을 사용한 고유 카운트 | Both |
DISTINCTCOUNTTHETASKETCH |
DISTINCTCOUNTTHETASKETCH(col [, predicates...]) |
LONG | Theta Sketch를 사용한 고유 카운트 | Both |
DISTINCTCOUNTCPCSKETCH |
DISTINCTCOUNTCPCSKETCH(col [, lgK]) |
LONG | CPC Sketch를 사용한 고유 카운트 | Both |
DISTINCTCOUNTULL |
DISTINCTCOUNTULL(col [, p]) |
LONG | UltraLogLog를 사용한 고유 카운트 | Both |
DISTINCTSUM |
DISTINCTSUM(col) |
DOUBLE | 고유 값의 합 | Both |
DISTINCTAVG |
DISTINCTAVG(col) |
DOUBLE | 고유 값의 평균 | Both |
SEGMENTPARTITIONEDDISTINCTCOUNT |
SEGMENTPARTITIONEDDISTINCTCOUNT(col) |
LONG | 분할 컬럼에 최적화된 고유 카운트 | Both |
PERCENTILE |
PERCENTILE(col, pct) |
DOUBLE | 정확한 백분위 값 | Both |
PERCENTILEEST |
PERCENTILEEST(col, pct) |
LONG | Quantile Digest를 사용한 추정 백분위 | Both |
PERCENTILETDIGEST |
PERCENTILETDIGEST(col, pct) |
DOUBLE | T-Digest를 사용한 추정 백분위 | Both |
PERCENTILEKLL |
PERCENTILEKLL(col, pct) |
DOUBLE | KLL Sketch를 사용한 추정 백분위 | Both |
HISTOGRAM |
HISTOGRAM(col, binEdges...) |
DOUBLE[] | bin 경계에 대한 히스토그램 계산 | Both |
COVARPOP |
COVARPOP(col1, col2) |
DOUBLE | 모집단 공분산 | Both |
COVARSAMP |
COVARSAMP(col1, col2) |
DOUBLE | 표본 공분산 | Both |
VARPOP |
VARPOP(col) |
DOUBLE | 모집단 분산 | Both |
VARSAMP |
VARSAMP(col) |
DOUBLE | 표본 분산 | Both |
STDDEVPOP |
STDDEVPOP(col) |
DOUBLE | 모집단 표준편차 | Both |
STDDEVSAMP |
STDDEVSAMP(col) |
DOUBLE | 표본 표준편차 | Both |
SKEWNESS |
SKEWNESS(col) |
DOUBLE | 값의 비대칭도 | Both |
KURTOSIS |
KURTOSIS(col) |
DOUBLE | 값의 첨도 | Both |
FIRSTWITHTIME |
FIRSTWITHTIME(dataCol, timeCol, 'type') |
varies | 가장 이른 타임스탬프와 연관된 값 | Both |
LASTWITHTIME |
LASTWITHTIME(dataCol, timeCol, 'type') |
varies | 가장 늦은 타임스탬프와 연관된 값 | Both |
ANYVALUE |
ANYVALUE(col) |
varies | 그룹의 임의의 값 반환 | Both |
BOOLAND |
BOOLAND(col) |
BOOLEAN | 모든 값에 대한 논리 AND | Both |
BOOLOR |
BOOLOR(col) |
BOOLEAN | 모든 값에 대한 논리 OR | Both |
EXPRMIN |
EXPRMIN(measureCol, exprCol1, ...) |
varies | 최소 측정 행의 컬럼 | Both |
EXPRMAX |
EXPRMAX(measureCol, exprCol1, ...) |
varies | 최대 측정 행의 컬럼 | Both |
FREQUENTSTRINGSSKETCH |
FREQUENTSTRINGSSKETCH(col, maxMapSize) |
STRING | 문자열용 frequent items sketch | Both |
FREQUENTLONGSSKETCH |
FREQUENTLONGSSKETCH(col, maxMapSize) |
STRING | long용 frequent items sketch | Both |
FUNNELCOUNT |
FUNNEL_COUNT(STEPS(step1, step2, ...), CORRELATE_BY(col1 [, col2, ...]) [, SETTINGS(setting1, setting2, ...)]) |
LONG[] | 하나 이상의 상관 컬럼에 대한 퍼널 단계 카운트 | Both |
FUNNELMAXSTEP |
FUNNELMAXSTEP(stepCol, corCol, settings, step1, step2, ...) |
INT | 도달한 최대 퍼널 단계 | Both |
FUNNELCOMPLETECOUNT |
FUNNELCOMPLETECOUNT(stepCol, corCol, settings, step1, step2, ...) |
INT | 완료된 퍼널의 카운트 | Both |
FUNNELSTEPDURATIONSTATS |
FUNNELSTEPDURATIONSTATS(timestampExpression, windowSize, numberSteps, step1, ..., 'durationFunctions=...') |
DOUBLE[] | 완료된 퍼널 실행에 대한 단계 간 기간 통계 | Both |
SUMPRECISION |
SUMPRECISION(col [, precision]) |
STRING | BigDecimal을 사용한 고정밀 합 | Both |
ARRAYAGG |
ARRAYAGG(col, 'type' [, distinct]) |
ARRAY | 값을 배열로 집계 | Both |
LISTAGG |
LISTAGG(col [, delimiter]) |
STRING | 값을 구분된 문자열로 집계 | Both |
SUMARRAYLONG |
SUMARRAYLONG(arrCol) |
LONG[] | long 배열의 요소별 합 | Both |
SUMARRAYDOUBLE |
SUMARRAYDOUBLE(arrCol) |
DOUBLE[] | double 배열의 요소별 합 | Both |
문자열 함수 (String)
자세한 내용은 String Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
UPPER |
UPPER(str) |
STRING | 문자열을 대문자로 변환 | Both |
LOWER |
LOWER(str) |
STRING | 문자열을 소문자로 변환 | Both |
INITCAP |
INITCAP(str) |
STRING | 각 단어의 첫 글자를 대문자로 | Both |
REVERSE |
REVERSE(str) |
STRING | 문자열 뒤집기 | Both |
SUBSTR |
SUBSTR(str, start [, end]) |
STRING | 시작/끝 위치로 부분 문자열 추출 | Both |
SUBSTRING |
SUBSTRING(str, start [, length]) |
STRING | 시작 위치와 길이로 부분 문자열 추출 | Both |
LEFT |
LEFT(str, length) |
STRING | 왼쪽 N개 문자 반환 | Both |
RIGHT |
RIGHT(str, length) |
STRING | 오른쪽 N개 문자 반환 | Both |
CONCAT |
CONCAT(str1, str2) |
STRING | 두 문자열 연결 | Both |
TRIM |
TRIM(str) |
STRING | 앞뒤 공백 제거 | Both |
LTRIM |
LTRIM(str) |
STRING | 앞 공백 제거 | Both |
RTRIM |
RTRIM(str) |
STRING | 뒤 공백 제거 | Both |
LPAD |
LPAD(str, size, pad) |
STRING | 지정 크기까지 왼쪽 패딩 | Both |
RPAD |
RPAD(str, size, pad) |
STRING | 지정 크기까지 오른쪽 패딩 | Both |
LENGTH |
LENGTH(str) |
INT | 문자열 길이 반환 | Both |
OCTETLENGTH / OCTET_LENGTH |
OCTETLENGTH(str) |
INT | 문자열의 UTF-8 바이트 수 반환 | Both |
BITLENGTH / BIT_LENGTH |
BITLENGTH(str) |
INT | 문자열의 UTF-8 비트 수 반환 | Both |
CHARLENGTH / CHAR_LENGTH / CHARACTERLENGTH / CHARACTER_LENGTH |
CHARLENGTH(str) |
INT | 문자열의 Unicode 코드 포인트 수 반환 | Both |
STRPOS |
STRPOS(str, find [, instance]) |
INT | 부분 문자열 위치 반환 | Both |
STRRPOS |
STRRPOS(str, find [, instance]) |
INT | 부분 문자열의 마지막 위치 반환 | Both |
STARTSWITH |
STARTSWITH(str, prefix) |
BOOLEAN | 문자열이 접두사로 시작하는지 확인 | Both |
ENDSWITH |
ENDSWITH(str, suffix) |
BOOLEAN | 문자열이 접미사로 끝나는지 확인 | Both |
CONTAINS |
CONTAINS(str, substring) |
BOOLEAN | 문자열이 부분 문자열을 포함하는지 확인 | Both |
ASCII |
ASCII(str) |
INT | 첫 문자 코드 반환, 빈 문자열이면 0 | Both |
REPLACE |
REPLACE(str, target, replacement) |
STRING | target 발생 교체 | Both |
REMOVE |
REMOVE(str, search) |
STRING | 검색 문자열의 모든 발생 제거 | Both |
SPLIT |
SPLIT(str, delimiter [, limit]) |
STRING[] | 구분자로 문자열 분할 | Both |
SPLITPART |
SPLITPART(str, delimiter, index) or SPLITPART(str, delimiter, limit, index) |
STRING | 분할 후 선택된 요소 반환; 음수 인덱스는 끝에서부터 셈 | Both |
SUBSTRINGINDEX / SUBSTRING_INDEX |
SUBSTRINGINDEX(str, delimiter, count) |
STRING | N번째 구분자 앞의 텍스트 반환, count가 음수면 그 뒤 | Both |
FIRSTLINE |
FIRSTLINE(str) |
STRING | \n, \r\n, \r 구분자를 사용해 첫 줄 반환 |
Both |
OVERLAY |
OVERLAY(str, replacement, start [, length]) |
STRING | SQL 표준 overlay 의미, 1-based 시작 위치; length 생략 시 교체 길이 기본값 | Both |
REPEAT |
REPEAT(str, times) |
STRING | 문자열 N번 반복 | Both |
REGEXPCOUNT / REGEXP_COUNT |
REGEXPCOUNT(str, pattern) |
INT | 겹치지 않는 regex 일치 수 | Both |
REGEXPSUBSTR / REGEXP_SUBSTR |
REGEXPSUBSTR(str, pattern) |
STRING | 첫 regex 일치 반환, 없으면 null | Both |
REGEXP_EXTRACT |
REGEXP_EXTRACT(str, pattern [, group]) |
STRING | 문자열에서 regex 일치 추출 | Both |
CHR |
CHR(codepoint) |
STRING | Unicode 코드 포인트에 대한 문자 반환 | Both |
CODEPOINT |
CODEPOINT(str) |
INT | 첫 문자의 Unicode 코드 포인트 반환 | Both |
NORMALIZE |
NORMALIZE(str [, form]) |
STRING | Unicode 문자열 정규화 | Both |
STRCMP |
STRCMP(str1, str2) |
INT | 두 문자열 사전순 비교 | Both |
STARTSWITHCASEINSENSITIVE |
STARTSWITHCASEINSENSITIVE(str, prefix) |
BOOLEAN | 대소문자 무시하고 접두사로 시작하는지 확인 | Both |
ENDSWITHCASEINSENSITIVE |
ENDSWITHCASEINSENSITIVE(str, suffix) |
BOOLEAN | 대소문자 무시하고 접미사로 끝나는지 확인 | Both |
HAMMINGDISTANCE |
HAMMINGDISTANCE(str1, str2) |
INT | 두 문자열 사이의 해밍 거리 | Both |
LEVENSTEINDISTANCE |
LEVENSTEINDISTANCE(str1, str2) |
INT | 레벤슈타인 편집 거리 | Both |
SOUNDEX |
SOUNDEX(str) |
STRING | 문자열의 4자 Soundex 코드 반환 | Both |
DIFFERENCE |
DIFFERENCE(str1, str2) |
INT | Soundex 코드 비교로 0-4 유사도 점수 반환 | Both |
SPACE |
SPACE(count) |
STRING | count개의 공백으로 만든 문자열 반환 | Both |
ISVALIDASCII |
ISVALIDASCII(str) |
BOOLEAN | 모든 문자가 ASCII 범위에 있으면 true 반환 | Both |
수학 함수 (Math)
자세한 내용은 Math Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
ABS |
ABS(val) |
DOUBLE | 절대값 | Both |
CEIL / CEILING |
CEIL(val) |
DOUBLE | 가장 가까운 정수로 올림 | Both |
FLOOR |
FLOOR(val) |
DOUBLE | 가장 가까운 정수로 내림 | Both |
EXP |
EXP(val) |
DOUBLE | 오일러 수의 거듭제곱 | Both |
LN / LOG |
LN(val) |
DOUBLE | 자연로그 | Both |
LOG2 |
LOG2(val) |
DOUBLE | 밑 2 로그 | Both |
LOG10 |
LOG10(val) |
DOUBLE | 밑 10 로그 | Both |
LOG1P |
LOG1P(val) |
DOUBLE | 1 + val의 자연로그 |
Both |
SQRT |
SQRT(val) |
DOUBLE | 제곱근 | Both |
CBRT |
CBRT(val) |
DOUBLE | 세제곱근 | Both |
SIGN |
SIGN(val) |
DOUBLE | 숫자의 부호(-1, 0, 1) | Both |
POW / POWER |
POW(base, exp) |
DOUBLE | base를 exp로 거듭제곱 | Both |
EXP2 |
EXP2(val) |
DOUBLE | 2를 주어진 거듭제곱으로 |
Both |
EXP10 |
EXP10(val) |
DOUBLE | 10을 주어진 거듭제곱으로 |
Both |
MOD |
MOD(a, b) |
DOUBLE | 나머지 연산 | Both |
ROUNDDECIMAL |
ROUNDDECIMAL(val [, scale]) |
DOUBLE | 지정 소수 자릿수로 반올림 | Both |
TRUNCATE |
TRUNCATE(val [, scale]) |
DOUBLE | 지정 소수 자릿수로 절사 | Both |
DIV / DIVIDE |
DIV(a, b [, default]) |
DOUBLE | 0으로 나누기에 대한 선택적 기본값이 있는 나눗셈 | Both |
INTDIV |
INTDIV(a, b) |
LONG | 정수 나눗셈 | Both |
LEAST |
LEAST(a, b) |
DOUBLE | 두 값 중 더 작은 값 | Both |
GREATEST |
GREATEST(a, b) |
DOUBLE | 두 값 중 더 큰 값 | Both |
GCD |
GCD(a, b) |
LONG | 최대공약수 | Both |
LCM |
LCM(a, b) |
LONG | 최소공배수 | Both |
HYPOT |
HYPOT(a, b) |
DOUBLE | 빗변 (sqrt(a^2 + b^2)) | Both |
NEGATE |
NEGATE(val) |
DOUBLE | 값 부정; 단항 - 연산자와 동등 |
Both |
SIGMOID |
SIGMOID(val) |
DOUBLE | 로지스틱 시그모이드 1 / (1 + e^(-val)) |
Both |
PI |
PI() |
DOUBLE | 수학 상수 pi | Both |
E / EULER |
E() |
DOUBLE | 자연로그의 밑인 오일러 수 | Both |
BITCOUNT |
BITCOUNT(val) |
INT | long 값의 설정 비트 수 | Both |
FACTORIAL |
FACTORIAL(val) |
LONG | 0부터 20까지 정수의 팩토리얼 | Both |
WIDTHBUCKET / WIDTH_BUCKET |
WIDTHBUCKET(value, lo, hi, numBuckets) |
INT | SQL 표준 의미로 히스토그램 버킷에 값 할당 | Both |
RAND |
RAND([seed]) |
DOUBLE | 0과 1 사이의 난수 | Both |
SIN |
SIN(val) |
DOUBLE | 사인 | Both |
COS |
COS(val) |
DOUBLE | 코사인 | Both |
TAN |
TAN(val) |
DOUBLE | 탄젠트 | Both |
COT |
COT(val) |
DOUBLE | 코탄젠트 | Both |
ASIN |
ASIN(val) |
DOUBLE | 아크사인 | Both |
ACOS |
ACOS(val) |
DOUBLE | 아크코사인 | Both |
ATAN |
ATAN(val) |
DOUBLE | 아크탄젠트 | Both |
ATAN2 |
ATAN2(y, x) |
DOUBLE | 두 인자 아크탄젠트 | Both |
ASINH |
ASINH(val) |
DOUBLE | 역쌍곡사인 | Both |
ACOSH |
ACOSH(val) |
DOUBLE | 역쌍곡코사인 | Both |
ATANH |
ATANH(val) |
DOUBLE | 역쌍곡탄젠트 | Both |
DEGREES |
DEGREES(radians) |
DOUBLE | 라디안을 도로 변환 | Both |
RADIANS |
RADIANS(degrees) |
DOUBLE | 도를 라디안으로 변환 | Both |
날짜/시간 함수 (DateTime)
자세한 내용은 DateTime Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
NOW |
NOW() |
LONG | 밀리초 단위 현재 타임스탬프 | Both |
AGO |
AGO('period') |
LONG | 과거 기간의 타임스탬프 | Both |
TODATETIME |
TODATETIME(millis, pattern [, tz]) |
STRING | epoch 밀리초를 포맷된 문자열로 변환 | Both |
FROMDATETIME |
FROMDATETIME(str, pattern [, tz]) |
LONG | 날짜시간 문자열을 epoch 밀리초로 파싱 | Both |
TOEPOCHSECONDS |
TOEPOCHSECONDS(millis) |
LONG | 밀리초를 epoch 초로 변환 | Both |
TOEPOCHMINUTES |
TOEPOCHMINUTES(millis) |
LONG | 밀리초를 epoch 분으로 변환 | Both |
TOEPOCHHOURS |
TOEPOCHHOURS(millis) |
LONG | 밀리초를 epoch 시간으로 변환 | Both |
TOEPOCHDAYS |
TOEPOCHDAYS(millis) |
LONG | 밀리초를 epoch 일로 변환 | Both |
FROMEPOCHSECONDS |
FROMEPOCHSECONDS(seconds) |
LONG | epoch 초를 밀리초로 변환 | Both |
FROMEPOCHMINUTES |
FROMEPOCHMINUTES(minutes) |
LONG | epoch 분을 밀리초로 변환 | Both |
FROMEPOCHHOURS |
FROMEPOCHHOURS(hours) |
LONG | epoch 시간을 밀리초로 변환 | Both |
FROMEPOCHDAYS |
FROMEPOCHDAYS(days) |
LONG | epoch 일을 밀리초로 변환 | Both |
TOEPOCHSECONDSROUNDED |
TOEPOCHSECONDSROUNDED(millis, roundTo) |
LONG | 밀리초를 반올림된 epoch 초로 변환 | Both |
TOEPOCHMINUTESROUNDED |
TOEPOCHMINUTESROUNDED(millis, roundTo) |
LONG | 밀리초를 반올림된 epoch 분으로 변환 | Both |
TOEPOCHHOURSROUNDED |
TOEPOCHHOURSROUNDED(millis, roundTo) |
LONG | 밀리초를 반올림된 epoch 시간으로 변환 | Both |
TOEPOCHSECONDSBUCKET |
TOEPOCHSECONDSBUCKET(millis, bucket) |
LONG | 밀리초를 epoch 초 간격으로 버케팅 | Both |
FROMEPOCHSECONDSBUCKET |
FROMEPOCHSECONDSBUCKET(seconds, bucket) |
LONG | 버케팅된 epoch 초를 밀리초로 변환 | Both |
DATETRUNC |
DATETRUNC(unit, timeVal [, inputUnit [, tz [, outputUnit]]]) |
LONG | 지정 세분성으로 타임스탬프 절사 | Both |
DATEBIN |
DATEBIN(binWidth, sourceTs, originTs) |
TIMESTAMP | 타임스탬프를 간격으로 버케팅 | Both |
TIMESTAMPADD / DATEADD |
TIMESTAMPADD(unit, interval, ts) |
LONG | 타임스탬프에 간격 추가 | Both |
TIMESTAMPDIFF / DATEDIFF |
TIMESTAMPDIFF(unit, ts1, ts2) |
LONG | 두 타임스탬프의 차이 | Both |
EXTRACT |
EXTRACT(field FROM ts) |
INT | 타임스탬프에서 날짜/시간 필드 추출 | Both |
YEAR |
YEAR(millis [, tz]) |
INT | 연도 추출 | Both |
QUARTER |
QUARTER(millis [, tz]) |
INT | 분기(1-4) 추출 | Both |
MONTH |
MONTH(millis [, tz]) |
INT | 월(1-12) 추출 | Both |
WEEK |
WEEK(millis [, tz]) |
INT | ISO 연중 주 추출 | Both |
DAYOFYEAR |
DAYOFYEAR(millis [, tz]) |
INT | 연중 일(1-366) 추출 | Both |
DAYOFMONTH / DAY |
DAYOFMONTH(millis [, tz]) |
INT | 월중 일(1-31) 추출 | Both |
DAYOFWEEK / DOW |
DAYOFWEEK(millis [, tz]) |
INT | 요일(1-7) 추출 | Both |
HOUR |
HOUR(millis [, tz]) |
INT | 시간(0-23) 추출 | Both |
MINUTE |
MINUTE(millis [, tz]) |
INT | 분(0-59) 추출 | Both |
SECOND |
SECOND(millis [, tz]) |
INT | 초(0-59) 추출 | Both |
MILLISECOND |
MILLISECOND(millis [, tz]) |
INT | 밀리초(0-999) 추출 | Both |
YEAROFWEEK |
YEAROFWEEK(millis [, tz]) |
INT | ISO 연중 주의 연도 추출 | Both |
TIMEZONEHOUR |
TIMEZONEHOUR(tzId [, millis]) |
INT | 시간대의 UTC 오프셋 시간 | Both |
TIMEZONEMINUTE |
TIMEZONEMINUTE(tzId [, millis]) |
INT | 시간대의 UTC 오프셋 분 | Both |
TOTIMESTAMP |
TOTIMESTAMP(millis) |
TIMESTAMP | 밀리초를 SQL Timestamp로 변환 | Both |
FROMTIMESTAMP |
FROMTIMESTAMP(ts) |
LONG | SQL Timestamp를 밀리초로 변환 | Both |
DATETIMECONVERT |
DATETIMECONVERT(col, inFormat, outFormat, granularity) |
STRING/LONG | 날짜시간을 형식 간 변환 | Both |
JSON 함수 (JSON)
자세한 내용은 JSON Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
JSONPATH |
JSONPATH(obj, path) |
OBJECT | JSONPath 표현식 평가 | Both |
JSONEXTRACTOBJECT |
JSONEXTRACTOBJECT(obj) |
OBJECT | JSON을 재사용 가능한 객체/배열 값으로 한 번 파싱 | Both |
JSONPATHSTRING |
JSONPATHSTRING(obj, path [, default]) |
STRING | JSONPath를 통해 문자열 추출 | Both |
JSONPATHLONG |
JSONPATHLONG(obj, path [, default]) |
LONG | JSONPath를 통해 long 추출 | Both |
JSONPATHDOUBLE |
JSONPATHDOUBLE(obj, path [, default]) |
DOUBLE | JSONPath를 통해 double 추출 | Both |
JSONPATHARRAY |
JSONPATHARRAY(obj, path) |
OBJECT[] | JSONPath를 통해 배열 추출 | Both |
JSONPATHARRAYDEFAULTEMPTY |
JSONPATHARRAYDEFAULTEMPTY(obj, path) |
OBJECT[] | 배열 추출, null이면 빈 값 반환 | Both |
JSONPATHEXISTS |
JSONPATHEXISTS(obj, path) |
BOOLEAN | JSONPath 존재 확인 | Both |
JSONKEYVALUEARRAYTOMAP |
JSONKEYVALUEARRAYTOMAP(arr [, keyColumnName, valueColumnName]) |
MAP | 키/값 객체 배열을 맵으로 변환 | Both |
JSONEXTRACTKEY |
JSONEXTRACTKEY(obj, path) |
STRING[] | JSONPath에서 키 추출 | Both |
JSONEXTRACTSCALAR |
JSONEXTRACTSCALAR(json, path, type [, default]) |
varies | JSON에서 스칼라 값 추출 | Both |
JSONFORMAT |
JSONFORMAT(obj) |
STRING | 객체를 JSON 문자열로 직렬화 | Both |
TOJSONMAPSTR |
TOJSONMAPSTR(map) |
STRING | 맵을 JSON 문자열로 변환 | Both |
JSONSTRINGTOARRAY |
JSONSTRINGTOARRAY(jsonStr) |
LIST | JSON 문자열을 배열로 파싱 | Both |
JSONSTRINGTOMAP |
JSONSTRINGTOMAP(jsonStr) |
MAP | JSON 문자열을 맵으로 파싱 | Both |
ISJSON |
ISJSON(str) |
BOOLEAN | 문자열이 유효한 JSON인지 확인 | Both |
배열 함수 (Array)
자세한 내용은 Array Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
ARRAY_AGG |
ARRAY_AGG(col, 'type' [, distinct]) |
ARRAY | 값을 배열로 집계 | Both |
LISTAGG |
LISTAGG(col [, delimiter [, distinct]]) |
STRING | 값을 구분된 문자열로 집계 | Both |
ARRAYLENGTH |
ARRAYLENGTH(arr) |
INT | 배열 길이 반환 | Both |
ARRAYCONTAINSINT |
ARRAYCONTAINSINT(arr, val) |
BOOLEAN | 정수 배열이 값 포함 확인 | Both |
ARRAYCONTAINSSTRING |
ARRAYCONTAINSSTRING(arr, val) |
BOOLEAN | 문자열 배열이 값 포함 확인 | Both |
ARRAYCONCATINT |
ARRAYCONCATINT(arr1, arr2) |
INT[] | 두 정수 배열 연결 | Both |
ARRAYCONCATSTRING |
ARRAYCONCATSTRING(arr1, arr2) |
STRING[] | 두 문자열 배열 연결 | Both |
ARRAYDISTINCTINT |
ARRAYDISTINCTINT(arr) |
INT[] | 정수 배열 중복 제거 | Both |
ARRAYDISTINCTSTRING |
ARRAYDISTINCTSTRING(arr) |
STRING[] | 문자열 배열 중복 제거 | Both |
ARRAYINDEXOFINT |
ARRAYINDEXOFINT(arr, val) |
INT | 정수 배열에서 값 인덱스 | Both |
ARRAYINDEXOFSTRING |
ARRAYINDEXOFSTRING(arr, val) |
INT | 문자열 배열에서 값 인덱스 | Both |
ARRAYPUSHBACKINT |
ARRAYPUSHBACKINT(arr, val) |
INT[] | 배열 끝에 정수 추가 | Both |
ARRAYPUSHBACKLONG |
ARRAYPUSHBACKLONG(arr, val) |
LONG[] | 배열 끝에 long 추가 | Both |
ARRAYPUSHBACKFLOAT |
ARRAYPUSHBACKFLOAT(arr, val) |
FLOAT[] | 배열 끝에 float 추가 | Both |
ARRAYPUSHBACKDOUBLE |
ARRAYPUSHBACKDOUBLE(arr, val) |
DOUBLE[] | 배열 끝에 double 추가 | Both |
ARRAYPUSHBACKSTRING |
ARRAYPUSHBACKSTRING(arr, val) |
STRING[] | 배열 끝에 문자열 추가 | Both |
ARRAYPUSHFRONTINT |
ARRAYPUSHFRONTINT(arr, val) |
INT[] | 배열 앞에 정수 추가 | Both |
ARRAYPUSHFRONTLONG |
ARRAYPUSHFRONTLONG(arr, val) |
LONG[] | 배열 앞에 long 추가 | Both |
ARRAYPUSHFRONTFLOAT |
ARRAYPUSHFRONTFLOAT(arr, val) |
FLOAT[] | 배열 앞에 float 추가 | Both |
ARRAYPUSHFRONTDOUBLE |
ARRAYPUSHFRONTDOUBLE(arr, val) |
DOUBLE[] | 배열 앞에 double 추가 | Both |
ARRAYPUSHFRONTSTRING |
ARRAYPUSHFRONTSTRING(arr, val) |
STRING[] | 배열 앞에 문자열 추가 | Both |
ARRAYREMOVEINT |
ARRAYREMOVEINT(arr, val) |
INT[] | 정수 배열에서 첫 발생 제거 | Both |
ARRAYREMOVESTRING |
ARRAYREMOVESTRING(arr, val) |
STRING[] | 문자열 배열에서 첫 발생 제거 | Both |
ARRAYREVERSEINT |
ARRAYREVERSEINT(arr) |
INT[] | 정수 배열 뒤집기 | Both |
ARRAYREVERSESTRING |
ARRAYREVERSESTRING(arr) |
STRING[] | 문자열 배열 뒤집기 | Both |
ARRAYSLICEINT |
ARRAYSLICEINT(arr, start, end) |
INT[] | 정수 배열에서 하위 배열 추출 | Both |
ARRAYSLICESTRING |
ARRAYSLICESTRING(arr, start, end) |
STRING[] | 문자열 배열에서 하위 배열 추출 | Both |
ARRAYSORTINT |
ARRAYSORTINT(arr) |
INT[] | 정수 배열 오름차순 정렬 | Both |
ARRAYSORTSTRING |
ARRAYSORTSTRING(arr) |
STRING[] | 문자열 배열 오름차순 정렬 | Both |
ARRAYUNIONINT |
ARRAYUNIONINT(arr1, arr2) |
INT[] | 두 정수 배열의 합집합(고유) | Both |
ARRAYUNIONSTRING |
ARRAYUNIONSTRING(arr1, arr2) |
STRING[] | 두 문자열 배열의 합집합(고유) | Both |
ARRAYS_OVERLAP |
ARRAYS_OVERLAP(arr1, arr2) |
BOOLEAN | 같은 유형 배열이 요소를 공유하면 true | Both |
ARRAYSUMINT |
ARRAYSUMINT(arr) |
INT | 정수 배열 요소 합 | Both |
ARRAYSUMLONG |
ARRAYSUMLONG(arr) |
LONG | long 배열 요소 합 | Both |
ARRAYTOSTRING |
ARRAYTOSTRING(arr, delimiter [, null]) |
STRING | 문자열 배열 요소를 하나의 문자열로 결합 | Both |
해시 함수 (Hash)
자세한 내용은 Hash Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
SHA |
SHA(bytes) |
STRING | SHA-1 해시 | Both |
SHA224 |
SHA224(bytes) |
STRING | SHA-224 해시 | Both |
SHA256 |
SHA256(bytes) |
STRING | SHA-256 해시 | Both |
SHA512 |
SHA512(bytes) |
STRING | SHA-512 해시 | Both |
MD2 |
MD2(bytes) |
STRING | MD2 해시 | Both |
MD5 |
MD5(bytes) |
STRING | MD5 해시 | Both |
MURMURHASH2 |
MURMURHASH2(bytes) |
INT | 32비트 MurmurHash2 | Both |
MURMURHASH2UTF8 |
MURMURHASH2UTF8(str) |
INT | 문자열용 32비트 MurmurHash2 | Both |
MURMURHASH3BIT32 |
MURMURHASH3BIT32(bytes, seed) |
INT | 32비트 MurmurHash3 | Both |
MURMURHASH3BIT64 |
MURMURHASH3BIT64(bytes, seed) |
LONG | 64비트 MurmurHash3 | Both |
MURMURHASH3BIT128 |
MURMURHASH3BIT128(bytes, seed) |
BYTES | 128비트 MurmurHash3 | Both |
CRC32 |
CRC32(bytes) |
INT | 32비트 CRC 체크섬 | Both |
CRC32C |
CRC32C(bytes) |
INT | 32비트 CRC32C (Castagnoli) | Both |
ADLER32 |
ADLER32(bytes) |
INT | 32비트 Adler 체크섬 | Both |
URL 함수 (URL)
자세한 내용은 URL Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
URLPROTOCOL |
URLPROTOCOL(url) |
STRING | 프로토콜/스킴 추출 | Both |
URLDOMAIN |
URLDOMAIN(url) |
STRING | 도메인 추출 | Both |
URLDOMAINWITHOUTWWW |
URLDOMAINWITHOUTWWW(url) |
STRING | www 접두사 없는 도메인 추출 | Both |
URLTOPLEVELDOMAIN |
URLTOPLEVELDOMAIN(url) |
STRING | 최상위 도메인 추출 | Both |
URLPORT |
URLPORT(url) |
INT | 포트 번호 추출 | Both |
URLPATH |
URLPATH(url) |
STRING | 경로 구성요소 추출 | Both |
URLQUERYSTRING |
URLQUERYSTRING(url) |
STRING | 쿼리 문자열 추출 | Both |
URLFRAGMENT |
URLFRAGMENT(url) |
STRING | 조각 식별자 추출 | Both |
EXTRACTURLPARAMETER |
EXTRACTURLPARAMETER(url, name) |
STRING | 특정 쿼리 파라미터 추출 | Both |
EXTRACTURLPARAMETERS |
EXTRACTURLPARAMETERS(url) |
STRING[] | 모든 쿼리 파라미터 추출 | Both |
URLENCODE |
URLENCODE(url) |
STRING | 문자열 URL 인코딩 | Both |
URLDECODE |
URLDECODE(url) |
STRING | URL 인코딩된 문자열 디코딩 | Both |
CUTWWW |
CUTWWW(url) |
STRING | URL에서 www 접두사 제거 | Both |
CUTQUERYSTRING |
CUTQUERYSTRING(url) |
STRING | URL에서 쿼리 문자열 제거 | Both |
CUTFRAGMENT |
CUTFRAGMENT(url) |
STRING | URL에서 조각 제거 | Both |
CUTURLPARAMETER |
CUTURLPARAMETER(url, name) |
STRING | 특정 쿼리 파라미터 제거 | Both |
이진 함수 (Binary)
자세한 내용은 Binary Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
TOUTF8 |
TOUTF8(str) |
BYTES | 문자열을 UTF-8 바이트로 변환 | Both |
FROMUTF8 |
FROMUTF8(bytes) |
STRING | UTF-8 바이트를 문자열로 변환 | Both |
TOASCII |
TOASCII(str) |
BYTES | 문자열을 ASCII 바이트로 변환 | Both |
FROMASCII |
FROMASCII(bytes) |
STRING | ASCII 바이트를 문자열로 변환 | Both |
TOBASE64 |
TOBASE64(bytes) |
STRING | 바이트를 Base64 문자열로 인코딩 | Both |
FROMBASE64 |
FROMBASE64(str) |
BYTES | Base64 문자열을 바이트로 디코딩 | Both |
BASE64ENCODE |
BASE64ENCODE(bytes) |
BYTES | 바이트 배열 Base64 인코딩 | Both |
BASE64DECODE |
BASE64DECODE(bytes) |
BYTES | 바이트 배열 Base64 디코딩 | Both |
HEXTOBYTES |
HEXTOBYTES(hex) |
BYTES | hex 문자열을 바이트로 변환 | Both |
BYTESTOHEX |
BYTESTOHEX(bytes) |
STRING | 바이트를 hex 문자열로 변환 | Both |
지리 공간 함수 (Geospatial)
자세한 내용은 GeoSpatial Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
STPOINT |
STPOINT(lng, lat) |
BYTES | 기하 point 생성 | Both |
STPOLYGON |
STPOLYGON(wkt) |
BYTES | WKT에서 polygon 생성 | Both |
STDISTANCE |
STDISTANCE(geo1, geo2) |
DOUBLE | 두 기하 간 거리 | Both |
STCONTAINS |
STCONTAINS(geo1, geo2) |
BOOLEAN | 첫 기하가 둘째 포함 테스트 | Both |
STGEOMFROMTEXT |
STGEOMFROMTEXT(wkt) |
BYTES | WKT에서 기하 생성 | Both |
STGEOMFROMWKB |
STGEOMFROMWKB(wkb) |
BYTES | WKB에서 기하 생성 | Both |
STGEOMFROMGEOJSON |
STGEOMFROMGEOJSON(json) |
BYTES | GeoJSON에서 기하 생성 | Both |
STGEOGFROMTEXT |
STGEOGFROMTEXT(wkt) |
BYTES | WKT에서 geograph 생성 | Both |
STGEOGFROMWKB |
STGEOGFROMWKB(wkb) |
BYTES | WKB에서 geography 생성 | Both |
STGEOGFROMGEOJSON |
STGEOGFROMGEOJSON(json) |
BYTES | GeoJSON에서 geography 생성 | Both |
STASTEXT |
STASTEXT(geo) |
STRING | 기하를 WKT로 변환 | Both |
STASBINARY |
STASBINARY(geo) |
BYTES | 기하를 WKB로 변환 | Both |
STASGEOJSON |
STASGEOJSON(geo) |
STRING | 기하를 GeoJSON으로 변환 | Both |
STGEOMETRYTYPE |
STGEOMETRYTYPE(geo) |
STRING | 기하 유형 반환 | Both |
TOSPHERICALGEOGRAPHY |
TOSPHERICALGEOGRAPHY(geo) |
BYTES | 기하를 구형 geography로 변환 | Both |
GridDistance |
gridDistance(h3Index1, h3Index2) |
LONG | 두 셀 사이의 H3 그리드 거리 | Both |
GridDisk |
gridDisk(h3Index, k) |
LONG[] | 중심 셀의 k 그리드 단계 안의 H3 셀 |
Both |
IDSET |
IDSET(col [, params]) |
BYTES | IN_ID_SET 필터에 사용할 직렬화된 IdSet | Both |
STUNION |
STUNION(geoCol) |
BYTES | 집계: 기하의 합집합 | Both |
벡터 / 유사도 함수 (Vector / Similarity)
자세한 내용은 Vector Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
COSINEDISTANCE |
COSINEDISTANCE(arr1, arr2) |
DOUBLE | 두 벡터 간 코사인 거리 | Both |
INNERPRODUCT |
INNERPRODUCT(arr1, arr2) |
DOUBLE | 두 벡터의 내적 | Both |
L1DISTANCE |
L1DISTANCE(arr1, arr2) |
DOUBLE | 두 벡터 간 맨해튼 거리 | Both |
L2DISTANCE |
L2DISTANCE(arr1, arr2) |
DOUBLE | 두 벡터 간 유클리드 거리 | Both |
VECTORDIMS |
VECTORDIMS(arr) |
INT | 벡터의 차원 수 | Both |
VECTORNORM |
VECTORNORM(arr) |
DOUBLE | 벡터의 L2 노름(크기) | Both |
IP 주소 함수 (IP Address)
자세한 내용은 IP Address Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
ISSUBNETOF |
ISSUBNETOF(prefix, addr) |
BOOLEAN | IP 주소가 서브넷에 있는지 확인 | Both |
IPPREFIX |
IPPREFIX(addr, prefixLen) |
STRING | IP 주소에 대한 CIDR 접두사 반환 | Both |
IPSUBNETMIN |
IPSUBNETMIN(prefix) |
STRING | 서브넷의 가장 낮은 IP 반환 | Both |
IPSUBNETMAX |
IPSUBNETMAX(prefix) |
STRING | 서브넷의 가장 높은 IP 반환 | Both |
ISIPV4STRING |
ISIPV4STRING(ip) |
BOOLEAN | 입력이 일반 IPv4 주소 문자열인지 확인 | Both |
ISIPV6STRING |
ISIPV6STRING(ip) |
BOOLEAN | 입력이 일반 IPv6 주소 문자열인지 확인 | Both |
ISPRIVATEIP / IS_PRIVATE_IP |
ISPRIVATEIP(ip) |
BOOLEAN | 일반 IP가 RFC 1918, loopback, link-local, IPv6 ULA 범위인지 확인 | Both |
IPFAMILY / IP_FAMILY |
IPFAMILY(ip) |
INT | IPv4면 4, IPv6면 6 반환 | Both |
IPV4TOLONG |
IPV4TOLONG(ip) |
LONG | IPv4 문자열을 부호 없는 32비트 long으로 변환 | Both |
LONGTOIPV4 |
LONGTOIPV4(value) |
STRING | 부호 없는 32비트 long을 IPv4 텍스트로 변환 | Both |
IPV6TOBYTES |
IPV6TOBYTES(ip) |
BYTES | IPv6 문자열을 16바이트 값으로 변환 | Both |
BYTESTOIPV6 |
BYTESTOIPV6(bytes) |
STRING | 16바이트 IPv6 값을 정규 텍스트로 변환 | Both |
IPV4TOIPV6 |
IPV4TOIPV6(ip) |
STRING | IPv4 문자열을 IPv4-mapped IPv6 형태로 변환 | Both |
IPMASKLEN / IP_MASK_LEN |
IPMASKLEN(cidr) |
INT | CIDR 문자열에서 접두사 길이 반환 | Both |
IPNETMASK / IP_NETMASK |
IPNETMASK(cidr) |
STRING | CIDR 접두사에 대한 네트워크 마스크 반환 | Both |
IPHOSTMASK / IP_HOSTMASK |
IPHOSTMASK(cidr) |
STRING | CIDR 접두사에 대한 호스트 마스크 반환 | Both |
IPV4CIDRTORANGE |
IPV4CIDRTORANGE(cidr) |
STRING[] | CIDR 범위의 하한 및 상한 IPv4 주소 반환 | Both |
Null 처리 함수 (Null Handling)
자세한 내용은 Null Handling Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
IS NULL |
col IS NULL |
BOOLEAN | 값이 null이면 true | Both |
IS NOT NULL |
col IS NOT NULL |
BOOLEAN | 값이 null이 아니면 true | Both |
COALESCE |
COALESCE(val1, val2, ...) |
varies | 첫 비-null 값 반환 | Both |
NULLIF |
NULLIF(val1, val2) |
varies | 값이 같으면 null 반환 | Both |
IS DISTINCT FROM |
a IS DISTINCT FROM b |
BOOLEAN | Null 안전 부등 비교 | Both |
IS NOT DISTINCT FROM |
a IS NOT DISTINCT FROM b |
BOOLEAN | Null 안전 동등 비교 | Both |
CASE WHEN |
CASE WHEN cond THEN val ... END |
varies | 조건부 표현식 | Both |
유형 변환 함수 (Type Conversion)
자세한 내용은 Type Conversion Functions를 참조하세요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
CAST |
CAST(val AS type) |
varies | 값을 지정 유형으로 변환 | Both |
BIGDECIMALTOBYTES |
BIGDECIMALTOBYTES(decimal) |
BYTES | BigDecimal을 바이트로 변환 | Both |
BYTESTOBIGDECIMAL |
BYTESTOBIGDECIMAL(bytes) |
BIGDECIMAL | 바이트를 BigDecimal로 변환 | Both |
HEXDECIMALTOLONG |
HEXDECIMALTOLONG(hex) |
LONG | hex 문자열을 long으로 변환 | Both |
LONGTOHEXDECIMAL |
LONGTOHEXDECIMAL(val) |
STRING | long을 hex 문자열로 변환 | Both |
TOUUIDBYTES |
TOUUIDBYTES(uuid) |
BYTES | UUID 문자열을 바이트로 변환 | Both |
FROMUUIDBYTES |
FROMUUIDBYTES(bytes) |
STRING | 바이트를 UUID 문자열로 변환 | Both |
Window 함수 (Window)
자세한 내용은 Window Functions를 참조하세요.
Window 함수는 multi-stage engine (MSE)이 필요해요.
| Function | Signature | Return Type | Description | Engine |
|---|---|---|---|---|
ROW_NUMBER |
ROW_NUMBER() OVER (...) |
LONG | 파티션 내 순차적 행 번호 | MSE |
RANK |
RANK() OVER (...) |
LONG | 동률에 갭이 있는 순위 | MSE |
DENSE_RANK |
DENSE_RANK() OVER (...) |
LONG | 동률에 갭이 없는 순위 | MSE |
LAG |
LAG(col [, offset [, default]]) [IGNORE NULLS | RESPECT NULLS] OVER (...) |
varies | 선행 행의 값 | MSE |
LEAD |
LEAD(col [, offset [, default]]) [IGNORE NULLS | RESPECT NULLS] OVER (...) |
varies | 후행 행의 값 | MSE |
FIRST_VALUE |
FIRST_VALUE(col) OVER (...) |
varies | window 프레임의 첫 값 | MSE |
LAST_VALUE |
LAST_VALUE(col) OVER (...) |
varies | window 프레임의 마지막 값 | MSE |
SUM |
SUM(col) OVER (...) |
DOUBLE | 실행/윈도우 합 | MSE |
AVG |
AVG(col) OVER (...) |
DOUBLE | 실행/윈도우 평균 | MSE |
MIN |
MIN(col) OVER (...) |
DOUBLE | 실행/윈도우 최소 | MSE |
MAX |
MAX(col) OVER (...) |
DOUBLE | 실행/윈도우 최대 | MSE |
COUNT |
COUNT(col) OVER (...) |
LONG | 실행/윈도우 카운트 | MSE |
BOOL_AND |
BOOL_AND(col) OVER (...) |
BOOLEAN | 윈도우 boolean AND | MSE |
BOOL_OR |
BOOL_OR(col) OVER (...) |
BOOLEAN | 윈도우 boolean OR | MSE |