prev

입력 데이터 스트림에서 지정된 필드의 이전 레코드 값을 현재 레코드에 prev_ 접두사가 붙은 필드로 추가합니다.

명령어 속성

항목설명
명령어 유형가공 쿼리
필요 권한없음
라이선스 사용량해당 없음
병렬 실행지원
분산 실행미지원

문법

prev FIELD, ...

대상

FIELD, ...
이전 레코드의 값을 참조할 필드 이름. 쉼표(,)로 구분하여 여러 필드를 지정할 수 있습니다. 각 필드에 대해 prev_ 접두사가 붙은 출력 필드가 생성됩니다.

출력 필드

필드타입설명
prev_FIELD원본 타입직전 레코드의 해당 필드 값. 첫 번째 레코드에서는 null입니다.

오류 코드

파싱 오류

해당 사항 없음

런타임 오류

해당 사항 없음

설명

prev 명령어는 입력 레코드를 순서대로 처리하면서, 지정한 각 필드에 대해 직전 레코드의 값을 prev_ 접두사가 붙은 새 필드에 추가합니다. 예를 들어 prev count를 지정하면, 현재 레코드에 prev_count 필드가 추가되고 직전 레코드의 count 값이 들어갑니다. 첫 번째 레코드에서는 이전 레코드가 없으므로 prev_ 필드 값이 null입니다.

값은 깊은 복사(deep copy)되므로 Map, List, Date 등 변경 가능한 타입도 안전하게 참조할 수 있습니다.

사용 예

이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.

  1. 이전 레코드의 바이트 값 참조

    table limit=10 WEB_APACHE_SAMPLE
    | sort _time
    | prev bytes
    | fields _time, src_ip, bytes, prev_bytes
    

    시간 순으로 정렬한 후 각 레코드에 직전 레코드의 bytes 값을 prev_bytes 필드로 추가합니다. 첫 번째 레코드의 prev_bytes는 null입니다.

  2. 이전 요청과의 전송량 차이 계산

    table limit=10 WEB_APACHE_SAMPLE
    | sort _time
    | prev bytes
    | eval bytes_diff = if(isnull(prev_bytes), 0, bytes - prev_bytes)
    | fields _time, src_ip, bytes, prev_bytes, bytes_diff
    

    직전 요청과의 전송 바이트 차이를 bytes_diff 필드로 계산합니다.

  3. 여러 필드의 이전 값 참조

    table limit=10 WEB_APACHE_SAMPLE
    | sort _time
    | prev src_ip, bytes
    | fields _time, src_ip, prev_src_ip, bytes, prev_bytes
    

    prev_src_ipprev_bytes 필드가 각 레코드에 추가됩니다.

호환성

prev 명령어는 소나 4.0 이전 버전부터 제공되었습니다.