SQL 추론 - Amazon CloudWatch

SQL 추론

CloudWatch Metrics Insights는 여러 메커니즘을 사용하여 지정된 SQL 쿼리의 의도를 추론합니다.

시간 버킷팅

쿼리로 인한 시계열 데이터 포인트는 요청된 기간을 기준으로 시간 버킷으로 롤업됩니다. 표준 SQL에서 값을 집계하려면 지정된 기간의 모든 관측치를 함께 수집하도록 명시적으로 GROUP BY 절을 정의해야 합니다. 이것이 시계열 데이터를 쿼리하는 표준 방법이기 때문에 CloudWatch Metrics Insights는 명시적인 GROUP BY 절을 표현할 필요 없이 시간 버킷팅을 추론합니다.

예를 들어 쿼리가 1분 간격으로 수행되면 다음(제외)까지 해당 분에 속하는 모든 관측치가 시간 버킷의 시작 시간까지 롤업됩니다. 이렇게 하면 Metrics Insights SQL 문이 더욱 간결해집니다.

SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2", InstanceId)

이전 쿼리는 모든 Amazon EC2 인스턴스의 평균 CPU 사용률을 나타내는 단일 시계열(타임스탬프 값 페어)을 반환합니다. 요청 기간이 1분이라고 가정하면 반환되는 각 데이터 포인트는 특정 1분 간격(시작 시간 포함, 종료 시간 제외) 내에서 측정된 모든 관측치의 평균을 나타냅니다. 특정 데이터 포인트와 관련된 타임스탬프는 버킷의 시작 시간입니다.

필드 프로젝션

Metrics Insights 쿼리는 항상 타임스탬프 프로젝션을 반환합니다. 각 해당 데이터 포인트 값의 타임 스탬프를 가져오기 위해 SELECT 절에서 타임스탬프 열을 지정할 필요가 없습니다. 타임스탬프가 계산되는 방법에 대한 자세한 내용은 시간 버킷팅 섹션을 참조하세요.

GROUP BY을 사용하는 경우 각 그룹 이름도 결과에 추론되고 프로젝션되므로 반환된 시계열을 그룹화할 수 있습니다.

SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2", InstanceId) GROUP BY InstanceId

이전 쿼리는 각 Amazon EC2 인스턴스에 대한 시계열을 반환합니다. 각 시계열은 인스턴스 ID 값 뒤에 레이블 지정됩니다.

ORDER BY를 사용한 글로벌 집계

ORDER BY를 사용하는 경우 FUNCTION()은 정렬할 집계 함수(쿼리된 지표의 데이터 포인트 값)를 추론합니다. 집계 작업은 쿼리된 시간 기간에서 각 시계열의 일치하는 모든 데이터 포인트에 대해 수행됩니다.

SELECT AVG(CPUUtilization) FROM SCHEMA("AWS/EC2", InstanceId) GROUP BY InstanceId ORDER BY MAX() LIMIT 10

이전 쿼리는 각 Amazon EC2 인스턴스에 대한 CPU 사용률을 반환하여 결과 집합을 10개 항목으로 제한합니다. 결과는 요청된 시간 기간 내에 있는 개별 시계열의 최대값을 기준으로 정렬됩니다. ORDER BY 절은 LIMIT 이전에 적용되므로 10개 이상의 시계열에 대해 순서가 계산됩니다.