AQL 데이터 계산 및 형식화 함수
Ariel 데이터베이스에서 검색되는 검색 결과에 대해 AQL(Ariel Query Language) 계산 및 형식화 함수를 사용하십시오.
이 목록은 계산 및 데이터 형식화에 사용되는 AQL 함수에 대해 설명합니다.
BASE64
- 용도
- 2진 데이터를 나타내는 Base64 인코드 문자열을 리턴합니다.
- 예
SELECT BASE64(payload) FROM events
CONCAT
- 용도
- 전달된 모든 문자열을 하나의 문자열로 연결합니다.
- 예
SELECT CONCAT(username, ':', sourceip, ':', destinationip) FROM events LIMIT 5
DATEFORMAT
- 용도
- 1970년 1월 1일 협정 세계시(UTC) 00:00:00 이후의 시간(밀리초)을 사용자가 읽을 수 있는 양식으로 형식화합니다.
- 예
SELECT DATEFORMAT(startTime, 'yyyy-MM-dd hh:mm:ss') AS StartTime FROM eventsSELECT DATEFORMAT(starttime,'yyyy-MM-dd hh:mm') AS 'Start Time', DATEFORMAT(endtime, 'yyyy-MM-dd hh:mm') AS Storage_time, QIDDESCRIPTION(qid) AS 'Event Name' FROM events
DOUBLE
- 용도
- 숫자를 나타내는 값을 Double로 변환합니다.
- 예
DOUBLE('1234')
LONG
- 용도
- 숫자를 나타내는 값을 long 정수로 변환합니다.
- 예
SELECT destinationip, LONG(SUM(sourcebytes+destinationbytes)) AS TotalBytes FROM flows GROUP BY sourceip
PARSEDATETIME
- 용도
- 구문 분석기에 시간 값을 전달합니다(예:
PARSEDATETIME('time reference')). time reference는 조회의 구문 분석 시간을 나타냅니다.
- 예
SELECT * FROM events START PARSEDATETIME('1 hour ago')
PARSETIMESTAMP
- 용도
- 날짜와 시간의 텍스트 표시를 구문 분석하여 UNIX epoch 시간으로 변환합니다.
예를 들어, 다음 텍스트 날짜 형식을 구문 분석하십시오.
Thursday, August 24, 2017 3:30:32 PM GMT +01:00 및 다음과 같은 epoch 시간소인으로 변환하십시오. 1503588632.
- 시간 형식 변환 작동 방법의 예제
다음 예제는 DATEFORMAT 함수가 지정된 날짜 형식을 사용하여 epoch 시간을 텍스트 시간소인으로 변환한 다음 PARSETIMESTAMP 함수를 사용하여 텍스트 시간소인을 epoch 시간 형식으로 변환하는 방법을 보여줍니다.
SELECT starttime, DATEFORMAT(starttime,'EEE, MMM d, "yyyy"') AS "text time format", PARSETIMESTAMP('EEE, MMM d, "yyyy"', "text time format") AS 'epoch time returned' from events limit 5다음 예제는 조회의 출력 결과를 표시합니다.
starttime text time format epoch time returned 1503920389888 Mon, M08 28, "2017" 1503920389888
- PARSETIMESTAMP를 사용해 시간을 epoch 시간으로 변환하여 시간을 계산할 수 있는 방법의 예제
다음 예제에서는 로그아웃 시간과 로그인 시간의 차이가 1시간 미만일 때 이벤트가 리턴됩니다.
EEE, d MMM yyyy HH:mm:ss.SSSZ 시간 형식은 사용할 수 있는 시간 형식의 한 예입니다. my_login 및 my_logout은(는) 알려진 시간 형식의 사용자 정의 특성입니다(예: EEE, MMM d, "yy").
SELECT * from events WHERE PARSETIMESTAMP('EEE, d MMM yyyy HH:mm:ss.SSSZ', my_logout) - PARSETIMESTAMP('EEE, d MMM yyyy HH:mm:ss.SSSZ', my_login) < 3600000 last 10 days
NOW
- 용도
- 1970년 1월 1일 협정 세계시(UTC) 00:00:00시부터 현재 시간(밀리초로 표시)을 리턴합니다.
- 예
SELECT ASSETUSER(sourceip, NOW()) AS 'Asset user' FROM events
LOWER
- 용도
문자열의 모든 소문자 표시를 리턴합니다.
- 예
SELECT LOWER(username), LOWER(LOGSOURCENAME(logsourceid)) FROM events
REPLACEALL
- 용도
- 정규식과 일치시켜 일치하는 모든 정규식을 텍스트로 대체합니다.
- 예
REPLACEALL('\d{16}', username, 'censored')
REPLACEFIRST
- 용도
- 정규식과 일치시켜 처음 일치하는 정규식을 텍스트로 대체합니다.
- 예
REPLACEFIRST('\d{16}', username, 'censored')
STR
- 용도
- 매개변수를 문자열로 변환합니다.
- 예
STR(sourceIP)
STRLEN
- 용도
- 이 문자열의 길이를 리턴합니다.
- 예
SELECT STRLEN(sourceIP), STRLEN(username) from events
STRPOS
- 용도
- 문자열의 위치(인덱스 - 0부터 시작)를 다른 문자열로 리턴합니다. 문자열에서 지정된 하위 문자열의 색인을 검색합니다. 선택적으로 추가 매개변수를 지정하여 지정된 패턴을 찾기 시작할 위치(색인)를 나타낼 수 있습니다.
- 예
SELECT STRPOS(username, 'name') FROM events
SUBSTRING
- 용도
- 문자 범위를 새 문자열로 복사합니다.
- 예
SELECT SUBSTRING(userName, 0, 3) FROM events
UPPER
- 용도
- 문자열의 모든 대문자 표시를 리턴합니다.
- 예
SELECT UPPER(username), UPPER(LOGSOURCENAME(logsourceid)) FROM events
UTF8
- 용도
- 바이트 배열의 UTF8 문자열을 리턴합니다.
- 예
SELECT UTF8(payload) FROM events WHERE sourceip='192.0.2.0'