stream

쿼리 시작 시점부터 지정한 시간 동안 실시간으로 스트림 쿼리의 출력을 수신합니다. 쿼리가 실행되는 동안 스트림 쿼리의 출력이 없으면 빈 결과를 반환합니다. 이 명령어는 관리자 권한이 필요합니다.

명령어 속성

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

문법

스트림 출력을 실시간으로 수신하려면

stream window=INT{s|m|h|d|mon} STREAM_NAME [, STREAM_NAME ...]

입력 레코드를 스트림으로 전달하려면

stream forward=t STREAM_NAME [, STREAM_NAME ...]

옵션

window=INT{s|m|h|d|mon}
쿼리 시작 시점부터 스트림 출력을 수신할 시간. s(초), m(분), h(시), d(일), mon(월) 단위를 사용합니다. window 옵션과 forward 옵션은 함께 사용할 수 없습니다.
forward=t
입력 레코드를 지정한 스트림에 전달하는 가공 쿼리 모드. true로 설정하면 드라이버 쿼리 대신 가공 쿼리로 동작하여 이전 명령어의 출력을 스트림에 전달합니다.

대상

STREAM_NAME [, STREAM_NAME ...]
스트림 이름. 쉼표(,)로 구분하여 여러 스트림을 지정할 수 있습니다. 와일드카드(*)를 사용하여 이름 패턴으로 여러 스트림을 지정할 수 있습니다.

출력 필드

필드타입설명
_stream문자열스트림 이름

오류 코드

파싱 오류
오류 코드메시지설명
-no-read-permission관리자 권한이 없는 경우
-missing-window-optionwindow 옵션과 forward 옵션 모두 지정되지 않은 경우
11600stream-not-found지정된 이름과 일치하는 스트림이 존재하지 않는 경우
런타임 오류

해당 사항 없음

설명

stream 명령어는 두 가지 동작 모드를 지원합니다.

window 옵션을 사용하면 드라이버 쿼리로 동작합니다. 쿼리 시작 시점부터 지정한 시간 동안 실시간으로 스트림 쿼리의 출력을 수신합니다. 스트림의 이름이 _stream 필드로 출력됩니다.

forward=t 옵션을 사용하면 가공 쿼리로 동작합니다. 이전 명령어의 출력 레코드를 지정한 스트림으로 전달하면서 다음 명령어로도 그대로 전달합니다.

스트림 이름에는 와일드카드(*)를 사용하여 이름 패턴으로 여러 스트림을 지정할 수 있습니다. 지정한 이름이나 패턴과 일치하는 스트림이 하나도 없으면 파싱 시점에 오류가 발생합니다.

사용 예

  1. 스트림 출력을 1분 동안 수신

    stream window=1m my_stream
    

    my_stream 스트림의 출력을 1분 동안 실시간으로 수신합니다.

  2. 와일드카드로 여러 스트림 수신

    stream window=30s alert_*
    

    이름이 alert_로 시작하는 모든 스트림의 출력을 30초 동안 수신합니다.

  3. 입력 레코드를 스트림으로 전달

    table duration=1h WEB_APACHE_SAMPLE
    | stream forward=t my_stream
    | stats count by src_ip
    

    WEB_APACHE_SAMPLE 테이블에서 조회한 레코드를 my_stream 스트림으로 전달하면서 동시에 다음 명령어로도 전달합니다.

호환성

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