CloudTrail 레이크 SQL 제약 조건 - AWS CloudTrail

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CloudTrail 레이크 SQL 제약 조건

CloudTrail 레이크 쿼리는 SQL 문자열입니다. 이 섹션에서는 지원되는 함수, 연산자 및 스키마에 대한 정보를 제공합니다.

SELECT 명령문만이 허용됩니다. 쿼리 문자열은 데이터를 변경하거나 변형할 수 있습니다.

SELECT명령문의 CloudTrail Lake 구문은 다음과 같습니다. 값에 대해 이벤트 데이터 저장소 ID (이벤트 데이터 저장소 ARN의 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 SELECT SQL 문, 함수 및 연산자를 지원합니다. 지원되는 SQL 함수와 연산자에 대한 자세한 내용은 Presto 설명서 웹 사이트의 함수와 연산자 섹션을 참조하세요.

CloudTrail 콘솔은 쿼리 작성을 시작하는 데 도움이 되는 다양한 샘플 쿼리를 제공합니다. 자세한 정보는 CloudTrail 콘솔에서 샘플 쿼리 보기을 참조하세요.

지원되는 함수, 조건 및 조인 연산자

지원되는 함수

CloudTrail Lake는 모든 프레스토 함수를 지원합니다. 지원되는 함수에 대한 자세한 내용은 Presto 설명서 웹 사이트의 함수와 연산자를 참조하세요.

CloudTrail Lake는 INTERVAL 키워드를 지원하지 않습니다.

지원되는 조건 연산자

지원되는 조건 연산자는 다음과 같습니다.

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

다음은 UNIONUNION 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;