setq

서브쿼리를 실행하고 첫 번째 레코드의 필드-값 쌍을 쿼리 매개변수로 설정합니다.

명령어 속성

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

문법

setq [ SUBQUERY ]
SUBQUERY
대괄호([ ]) 안에 입력하는 쿼리문. 이 서브쿼리의 첫 번째 레코드가 매개변수로 설정됩니다.

입력 필드

없음

출력 필드

없음 (입력 레코드를 변경 없이 전달)

오류 코드

파싱 오류
오류 코드메시지설명
90204'['가 짝이 맞지 않습니다.대괄호가 짝이 맞지 않는 경우
90206서브 쿼리가 없습니다.서브쿼리가 지정되지 않았거나 비어 있는 경우
런타임 오류
오류 코드메시지설명후처리 동작
setq cannot be used behind the driver command.드라이버 쿼리 뒤에 setq를 배치한 경우쿼리 실행을 중단합니다.

설명

setq 명령어는 서브쿼리를 실행하고, 첫 번째 레코드에 포함된 모든 필드-값 쌍을 쿼리 매개변수로 설정합니다. 서브쿼리가 여러 레코드를 반환하더라도 첫 번째 레코드만 사용하고, 나머지는 무시합니다.

  • setq 서브쿼리는 전체 쿼리의 다른 모든 명령어보다 먼저 실행됩니다.
  • 여러 개의 setq 명령어가 있으면 순차적으로 실행됩니다.
  • setq 명령어 뒤에 드라이버 쿼리를 배치해야 합니다. setq는 입력 레코드를 받을 수 없습니다.
  • 설정된 매개변수는 $() 함수로 참조할 수 있습니다.

사용 예

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

  1. 웹 로그에서 가장 많이 요청된 URI를 추출하여 매개변수로 설정

    setq [
        table WEB_APACHE_SAMPLE
        | stats count by uri
        | sort -count
        | limit 1
        | fields uri
      ]
    | table WEB_APACHE_SAMPLE
    | search uri == $("uri")
    | fields _time, src_ip, method, status, bytes
    

    WEB_APACHE_SAMPLE 테이블에서 요청 건수가 가장 많은 URI를 서브쿼리로 조회하여 uri 매개변수로 설정하고, 이후 해당 URI에 대한 전체 요청 목록을 조회합니다.

  2. 테이블에서 최근 값을 조회하여 매개변수로 설정

    setq [ table limit=1 sys_cpu_logs | eval threshold=long(avg_idle * 0.5) | fields threshold ]
    | table duration=1d sys_cpu_logs
    | search avg_idle < $("threshold")
    

    sys_cpu_logs 테이블에서 최근 레코드의 유휴율을 기준으로 임곗값을 계산하고, 해당 임곗값 미만인 레코드를 조회합니다.

호환성

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