AQL 논리 및 비교 연산자

연산자는 AQL문에서 값 간에 같은지 다른지를 판별하는 데 사용됩니다. AQL문의 WHERE절에 연산자를 사용하면 결과가 WHERE절의 조건과 일치하는 결과로 필터링됩니다.

다음 표에서는 지원되는 논리 및 비교 연산자를 나열합니다.
표 1. 논리 및 비교 연산자
연산자 설명
* 두 값을 곱하고 결과를 리턴합니다.
SELECT *
FROM flows 
WHERE sourceBytes * 1024 < 1 
= = 연산자는 두 값을 비교하여 같으면 true를 리턴합니다.
SELECT * 
FROM EVENTS
WHERE sourceIP = destinationIP 
!= 두 값을 비교하여 같지 않으면 true를 리턴합니다.
SELECT *
FROM events
WHERE sourceIP
!= destinationip
< AND <= 두 값을 비교하여 왼쪽의 값이 오른쪽의 값보다 작거나 같으면 true를 리턴합니다.
SELECT *
FROM flows 
WHERE sourceBytes < 64 
AND
destinationBytes <= 64  
> AND >= 두 값을 비교하여 왼쪽의 값이 오른쪽의 값보다 작거나 같으면 true를 리턴합니다.
SELECT * 
FROM flows 
WHERE sourceBytes > 64 
AND
destinationBytes >= 64
/ 두 값을 나누고 결과를 리턴합니다.
SELECT * 
FROM flows 
WHERE sourceBytes / 8 > 64 
+ 두 값을 더하고 결과를 리턴합니다.
SELECT * 
FROM flows 
WHERE sourceBytes + 
destinationBytes < 64 
- 한 값을 다른 값에서 빼고 결과를 리턴합니다.
SELECT * 
FROM flows 
WHERE sourceBytes - 
destinationBytes > 0
^ 값을 가져와서 지정된 지수로 거듭제곱하고 결과를 리턴합니다.
SELECT * 
FROM flows 
WHERE sourceBytes ^ 2 < 256
% 값의 모듈로를 가져와서 결과를 리턴합니다.
SELECT * 
FROM flows 
WHERE sourceBytes % 8 == 7
AND 명령문의 왼쪽과 오른쪽을 가져와서 모두 true이면 true를 리턴합니다.
SELECT *
FROM events 
WHERE (sourceIP = destinationIP)
AND (sourcePort = destinationPort)
BETWEEN (X,Y) 왼쪽과 두 값을 가져와서 왼쪽이 두 값 사이에 있으면 true를 리턴합니다.
SELECT * 
FROM events 
WHERE magnitude
BETWEEN 1 AND 5 
COLLATE BCP47 언어 태그를 조합할 수 있도록 정렬하는 매개변수입니다.
SELECT * 
FROM EVENTS ORDER BY
sourceIP DESC COLLATE 'de-CH' 
IN WHERE절에 다중 값을 지정합니다. IN 연산자는 다중 OR 조건의 단축형입니다.
SELECT *
FROM EVENTS
WHERE SourceIP IN ('192.0.2.1', '::1', '198.51.100.0')
INTO 다른 시간에 조회할 수 있는 결과를 포함하는 이름 지정된 커서를 작성합니다.
SELECT * FROM EVENTS INTO
 'MyCursor' WHERE....
NOT 명령문을 가져와서 명령문이 false로 평가되면 true를 리턴합니다.
SELECT * FROM EVENTS 
WHERE NOT 
(sourceIP = destinationIP) 
ILIKE 전달된 문자열이 전달된 값과 LIKE이고 대소문자를 구분하지 않는 경우 일치합니다. % 를 와일드카드로 사용하십시오.
SELECT * 
FROM events WHERE userName 
ILIKE '%bob%' 
IMATCHES 문자열이 제공된 정규식과 일치하고 대소문자를 구분하지 않는 경우 일치합니다.
SELECT * 
FROM events 
WHERE userName
IMATCHES '^.bob.$' 
LIMIT 결과 수를 제공된 수로 제한합니다.
SELECT * 
FROM events LIMIT 100 
START '2015-10-28 10:00' 
STOP '2015-10-28 11:00'
참고: LIMIT절을 START and STOP 절 앞에 배치하십시오.
LIKE 전달된 문자열이 전달된 값과 LIKE이자만 대소문자를 구분하는 경우 일치합니다. % 를 와일드카드로 사용하십시오.
SELECT * 
FROM events WHERE userName 
LIKE '%bob%' 
MATCHES 문자열이 제공된 정규식과 일치하는 경우 일치합니다.
SELECT * 
FROM events 
WHERE userName MATCHES
'^.bob.$' 
NOT NULL 값을 가져와서 해당 값이 널이 아닌 경우 true를 리턴합니다.
SELECT *
FROM events 
WHERE userName 
IS NOT NULL
OR 명령문의 왼쪽과 명령문의 오른쪽을 가져와서 어느 한 쪽이 true이면 true를 리턴합니다.
SELECT *
FROM events 
WHERE (sourceIP = destinationIP)
OR (sourcePort = destinationPort)
TEXT SEARCH

전달된 값에 대한 전체 텍스트 검색입니다.

TEXT SEARCH는 AND 연산자에서 유효합니다. OR 또는 다른 연산자와 함께 TEXT SEARCH를 사용할 수 없습니다. 그렇지 않으면 구문 오류가 발생합니다.

WHERE절의 첫 번째 위치에 TEXT SEARCH를 배치하십시오.

QRadar® 사용자 인터페이스에서 빠른 필터를 사용하여 전체 텍스트 검색을 수행할 수도 있습니다. 빠른 필터 기능에 대한 정보는 IBM® QRadar 사용자 안내서를 참조하십시오.

SELECT * 
FROM events 
WHERE TEXT SEARCH 'firewall'
AND sourceip='192.168.1.1' 

SELECT sourceip,url 
FROM events 
WHERE TEXT SEARCH 
'download.cdn.mozilla.net' 
AND sourceip='192.168.1.1' 
START '2015-01-30 16:10:12' 
STOP '2015-02-22 17:10:22'

논리 및 비교 연산자의 예제

  • 구문 분석되지 않은 이벤트를 찾으려면 다음 조회를 입력하십시오.
    SELECT * FROM events 
    WHERE payload = 'false'
  • 오펜스를 리턴하고 특정 소스 IP 주소를 갖는 이벤트를 찾으려면 다음 조회를 입력하십시오.
    SELECT * FROM events 
    WHERE sourceIP = '192.0.2.0' 
    AND
    hasOffense = 'true'
  • 텍스트 "firewall"이 포함된 이벤트를 찾으려면 다음 조회를 입력하십시오.
    SELECT QIDNAME(qid) 
    AS EventName, 
    * FROM events 
    WHERE TEXT SEARCH 'firewall'