기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CloudTrail Lake SQL 제약
CloudTrail Lake 쿼리는 SQL 문자열입니다. 이 섹션에서는 지원되는 함수, 연산자 및 스키마에 대한 정보를 제공합니다.
SELECT
명령문만이 허용됩니다. 쿼리 문자열은 데이터를 변경하거나 변형할 수 있습니다.
SELECT
문에 대한 CloudTrail Lake 구문은 다음과 같습니다. 이벤트 데이터 저장소 ARN의 ID 부분인 이벤트 데이터 저장소 ID는 FROM
값으로 지정됩니다.
SELECT [ DISTINCT ] columns [ Aggregate ] [ FROM table
event_data_store_ID
] [ WHERE columns [ Conditions ] ] [ GROUP BY columns [ DISTINCT | Aggregate ] ] [ HAVING columns [ Aggregate | Conditions ] ] [ ORDER BY columns [ Aggregate | ASC | DESC | NULLS | FIRST | LAST ] [ LIMIT [ INT ] ]
CloudTrail Lake는 모든 유효한 Presto SQL SELECT
문, 함수 및 연산자를 지원합니다. 지원되는 SQL 함수와 연산자에 대한 자세한 내용은 Presto 설명서 웹 사이트의 함수와 연산자
CloudTrail 콘솔은 쿼리 작성을 시작하는 데 도움이 되는 여러 샘플 쿼리를 제공합니다. 자세한 내용은 CloudTrail 콘솔을 사용하여 샘플 쿼리 보기 단원을 참조하십시오.
지원되는 함수, 조건 및 조인 연산자
지원되는 함수
CloudTrail Lake는 모든 Presto 함수를 지원합니다. 지원되는 함수에 대한 자세한 내용은 Presto 설명서 웹 사이트의 함수와 연산자
지원되는 조건 연산자
지원되는 조건 연산자는 다음과 같습니다.
AND OR IN NOT IS (NOT) NULL LIKE BETWEEN GREATEST LEAST IS DISTINCT FROM IS NOT DISTINCT FROM < > <= >= <> != ( conditions ) #parenthesised conditions
지원되는 조인 연산자
지원되는 JOIN
연산자는 다음과 같습니다. 다중 테이블 쿼리 실행에 대한 자세한 내용은 고급 다중 테이블 쿼리 지원 을 참조하세요.
UNION UNION ALL EXCEPT INTERSECT LEFT JOIN RIGHT JOIN INNER JOIN
고급 다중 테이블 쿼리 지원
CloudTrail Lake는 여러 이벤트 데이터 스토어에서 고급 쿼리 언어를 지원합니다.
쿼리를 실행하려면 AWS CLI 에서 start-query 명령을 사용합니다. 다음은 이 섹션의 샘플 쿼리 중 하나를 사용하는 예제입니다.
aws cloudtrail start-query --query-statement "Select eventId, eventName from EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE UNION Select eventId, eventName from EXAMPLEg741-6y1x-9p3v-bnh6iEXAMPLE UNION ALL Select eventId, eventName from EXAMPLEb529-4e8f9l3d-6m2z-lkp5sEXAMPLE ORDER BY eventId LIMIT 10;"
응답은 QueryId
문자열이 됩니다. 쿼리 상태를 가져오려면 start-query
에 의해 반환된 QueryId
값을 사용하여 describe-query
를 실행합니다. 쿼리가 성공하면 get-query-results
을(를) 실행하여 결과를 가져옵니다.
UNION|UNION
ALL|EXCEPT|INTERSECT
다음은 UNION
및 UNION ALL
을 사용하여 세 개의 이벤트 데이터 스토어 EDS1, EDS2, EDS3에서 이벤트 ID 및 이벤트 이름으로 이벤트를 찾는 예제 쿼리입니다. 먼저 각 이벤트 데이터 스토어에서 결과를 선택한 다음 결과를 연결하고 이벤트 ID별로 정렬한 다음 10개의 이벤트로 제한합니다.
Select eventId, eventName from EDS1 UNION Select eventId, eventName from EDS2 UNION ALL Select eventId, eventName from EDS3 ORDER BY eventId LIMIT 10;
LEFT|RIGHT|INNER
JOIN
다음은 LEFT JOIN
을 사용하여 edsB
에 매핑된 eds2
라는 이벤트 데이터 스토어에서 기본(왼쪽) 이벤트 데이터 스토어인 edsA
의 이벤트와 일치하는 모든 이벤트를 찾는 예제 쿼리입니다. 반환된 이벤트는 2020년 1월 1일 또는 그 이전에 발생하며 이벤트 이름만 반환됩니다.
SELECT edsA.eventName, edsB.eventName, element_at(edsA.map, 'test') FROM eds1 as edsA LEFT JOIN eds2 as edsB ON edsA.eventId = edsB.eventId WHERE edsA.eventtime <= '2020-01-01' ORDER BY edsB.eventName;