eval
표현식을 평가하여 각 레코드에 필드를 추가하거나 기존 필드의 값을 변경합니다.
명령어 속성
| 항목 | 설명 |
|---|---|
| 명령어 유형 | 가공 쿼리 |
| 필요 권한 | 없음 |
| 라이선스 사용량 | 해당 없음 |
| 병렬 실행 | 지원 |
| 분산 실행 | 미지원 |
문법
eval FIELD=EXPR [, FIELD=EXPR ...]
FIELD- 값을 할당할 필드 이름
EXPR- 필드에 할당할 표현식. 상수, 함수, 다른 필드를 참조할 수 있습니다.
- 쉼표(
,)로 구분하여 여러 필드를 한 번에 할당할 수 있습니다. - 같은
eval명령어 안에서 앞서 할당한 필드를 뒤의 표현식에서 참조할 수 있습니다.
입력 필드
없음
출력 필드
| 필드 | 타입 | 설명 |
|---|---|---|
| (사용자 정의) | 모든 타입 | eval 표현식으로 추가하거나 변경한 필드 |
오류 코드
파싱 오류
| 오류 코드 | 메시지 | 설명 |
|---|---|---|
| 20100 | 할당자(=) 가 없습니다. | 할당 연산자(=)가 없는 경우 |
| 20101 | 필드 이름이 없습니다. | 필드 이름이 비어 있는 경우 |
| 20102 | 표현식이 없습니다. | 할당할 표현식이 비어 있는 경우 |
런타임 오류
해당 사항 없음
설명
eval 명령어는 각 입력 레코드에 대해 표현식을 평가하고, 결과를 지정된 필드에 할당합니다. 필드가 이미 존재하면 값을 덮어쓰고, 존재하지 않으면 새로 추가합니다.
사용 예
이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.
-
기존 필드를 이용한 값 계산
table limit=5 WEB_APACHE_SAMPLE | eval kb = bytes / 1024 | fields uri, bytes, kbbytes필드를 1024로 나누어 응답 크기를 킬로바이트 단위로 변환한kb필드를 추가합니다. -
여러 필드를 한 번에 할당
table limit=5 WEB_APACHE_SAMPLE | eval protocol_ver = protocol, req = concat(method, " ", uri) | fields method, uri, protocol_ver, reqprotocol필드를 복사하고,method와uri를 연결한 요청 문자열을req필드에 할당합니다. 같은eval안에서 앞서 할당한 필드를 뒤의 표현식에서 참조할 수 있습니다. -
조건식을 사용한 필드 추가
table limit=5 WEB_APACHE_SAMPLE | eval result = if(status == 200, "성공", "비성공") | fields uri, status, resultstatus필드 값에 따라result필드에성공또는비성공을 할당합니다. -
중첩 조건식으로 상태 코드 분류
table limit=5 WEB_APACHE_SAMPLE | eval category = if(status < 300, "2xx/3xx", if(status < 500, "4xx", "5xx")) | fields uri, status, categoryHTTP 상태 코드 범위에 따라 응답을
2xx/3xx,4xx,5xx범주로 분류합니다.
호환성
eval 명령어는 소나 4.0 이전 버전부터 제공되었습니다.