翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 演算子を使用して、インデックス付きフィールドの複数の値のいずれかに結果を展開します。次の例では、 IPaddress フィールド198.51.100.1で 値198.51.100.0または 値を含むログイベントを検索します。
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、5 番目のロググループには作成していないとします。を使用する次のクエリfilterIndexは、 フィールドのインデックスが付けられていないロググループのスキャンをスキップします。インデックス付きロググループごとに、インデックス付きフィールドを持つログイベントのみをスキャンしようとします。また、フィールドインデックスの作成後に からの結果のみを返します。
fields @timestamp, @message | filterIndex IPaddress = "198.51.100.0" | limit 20
対照的に、同じ 5 つのロググループのクエリfilterIndexに filter の代わりに を使用する場合、クエリはインデックス付きロググループの値を含むログイベントだけでなく、インデックス化されていない 5 番目のロググループをスキャンし、その 5 番目のロググループ内のすべてのログイベントをスキャンします。
fields @timestamp, @message | filter IPaddress = "198.51.100.0" | limit 20