기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
filterIndex
쿼리에서 지정한 필드에 인덱싱된 로그 그룹만 검색하도록 쿼리를 강제하여 인덱싱된 데이터만 반환하는 filterIndex 데 사용합니다. 이 필드에 인덱싱된 이러한 로그 그룹의 경우 인덱싱된 필드의 쿼리에 지정된 필드가 포함된 로그 이벤트가 없는 로그 그룹을 건너뛰어 쿼리를 추가로 최적화합니다. 또한이 필드 인덱스에 대한 쿼리에 지정된 값과 일치하는 이러한 로그 그룹의 로그 이벤트만 스캔하려고 시도하여 스캔 볼륨을 줄입니다. 필드 인덱스 및 인덱스 생성 방법에 대한 자세한 내용은 섹션을 참조하세요필드 인덱스를 생성하여 쿼리 성능을 개선하고 스캔 볼륨을 줄입니다..
인덱싱된 필드filterIndex와 함께를 사용하면 실제 검색 공간을 필드 인덱스가 있는 로그 그룹 및 로그 이벤트로 제한하여 페타바이트의 로그 데이터가 포함된 로그 그룹을 효율적으로 쿼리할 수 있습니다.
예를 들어 계정의 일부 로그 그룹에서 IPaddress에 대한 필드 인덱스를 생성했다고 가정해 보겠습니다. 그런 다음 다음 쿼리를 생성하고 계정의 모든 로그 그룹을 쿼리하여 IPaddress 필드에 값이 포함된 로그 이벤트를 찾도록 선택할 수 198.51.100.0 있습니다.
fields @timestamp, @message | filterIndex IPaddress = "198.51.100.0" | limit 20
filterIndex 명령을 실행하면이 쿼리가에 대해 인덱싱되지 않은 모든 로그 그룹을 건너뛰려고 시도합니다IPaddress. 또한 인덱싱된 로그 그룹 내에서 쿼리는 IPaddress 필드가 있지만 해당 필드198.51.100.0의 값으로 관찰되지 않는 로그 이벤트를 건너뜁니다.
IN 연산자를 사용하여 인덱싱된 필드의 여러 값 중 하나로 결과를 확장합니다. 다음 예제에서는 값 198.51.100.0 또는를 포함하는 로그 이벤트를 198.51.100.1 IPaddress 필드에 찾습니다.
fields @timestamp, @message | filterIndex IPaddress in ["198.51.100.0", "198.51.100.1"] | limit 20
CloudWatch Logs는 표준 로그 클래스의 모든 로그 그룹에 대한 기본 필드 인덱스를 제공합니다. 다음 필드에 대해 기본 필드 인덱스를 자동으로 사용할 수 있습니다.
-
@logStream -
@aws.region -
@aws.account -
@source.log -
traceId
기본 필드 인덱스는 정책 내에서 정의하는 사용자 지정 필드 인덱스에 추가됩니다. 기본 필드 인덱스는 필드 인덱스 할당량에 포함되지 않습니다.
filterIndex와 filter 비교
filterIndex와의 차이점을 설명하려면 다음 예제 쿼리를 filter고려하세요. 로그 그룹 4개에 대해 IPaddress에 대한 필드 인덱스를 생성했지만 다섯 번째 로그 그룹에 대해서는 생성하지 않았다고 가정합니다. 를 사용하는 다음 쿼리filterIndex는 필드가 인덱싱되지 않은 로그 그룹의 스캔을 건너뜁니다. 각 인덱싱된 로그 그룹에 대해 인덱싱된 필드가 있는 로그 이벤트만 스캔하려고 시도하고 필드 인덱스가 생성된 후의 결과만 반환합니다.
fields @timestamp, @message | filterIndex IPaddress = "198.51.100.0" | limit 20
반대로 동일한 5개 로그 그룹의 쿼리filterIndex에 filter 대신를 사용하는 경우 쿼리는 인덱싱된 로그 그룹에 값이 포함된 로그 이벤트를 스캔하려고 시도할 뿐만 아니라 인덱싱되지 않은 다섯 번째 로그 그룹을 스캔하고 해당 다섯 번째 로그 그룹의 모든 로그 이벤트를 스캔합니다.
fields @timestamp, @message | filter IPaddress = "198.51.100.0" | limit 20