すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:ログであいまいクエリを実行する方法

最終更新日:Aug 27, 2026

このトピックでは、あいまいクエリを実行するさまざまな方法について説明します。

クエリ構文によるあいまいクエリ

クエリの原則

  1. Simple Log Service (SLS) は、あいまい一致条件に合致する最初の 100 個の単語をクエリします。

  2. 次に、これら 100 個の単語を使用して、それらを含むログエントリを取得します。

このサービスは最初に一致した 100 個の単語のみをクエリするため、結果が不正確になる場合があります。プレフィックスが短く、ログ内で 100 を超える単語に一致する場合、この問題が発生する可能性があります。NOT 文も使用する場合、一部のログエントリが期待どおりにフィルターされないことがあります。たとえば、クエリ文 not abcd* を実行した場合、abcd で始まる単語が結果に表示される可能性があります。

使用方法

SLS のクエリ構文では、アスタリスク (*) は 0 個以上の文字を表し、疑問符 (?) は 1 文字を表します。たとえば、abc*abc で始まる単語をクエリします。ab?d は、ab で始まり、d で終わり、中間に 1 文字を持つ単語をクエリします。詳細については、「クエリ構文と機能」をご参照ください。ワイルドカードの *? は、単一のトークン内でのみ一致し、トークン (区切り文字) の境界を越えて一致することはありません。ログエントリが区切り文字によってトークン化されると、*? はトークン内の文字にのみ一致します。ログエントリに区切り文字として扱われない文字 (たとえば、アンダースコア _) が含まれている場合、結果のトークン境界が期待と異なる場合があります。たとえば、ログエントリに ERR_MSG (アンダースコア _ は区切り文字ではないため、ERR_MSG は単一のトークンです) が含まれている場合、ERR のクエリはこのトークンに一致しませんが、ERR* のクエリは一致します。

SQL の LIKE 句による正確なあいまいクエリ

LIKE 句は、標準の SQL LIKE 構文に従います。LIKE 構文では、パーセント記号 (%) は 0 個以上の文字を表し、アンダースコア (_) は 1 文字を表します。

たとえば、キーが abcd で始まるすべてのログをクエリするには、次のクエリと分析文を使用します。

* | select * from log where key like 'abcd%'

キーが abcd で始まらないすべてのログをクエリするには、次のように実行します。

* | select * from log where key not like 'abcd%'

SQL の正規表現関数によるあいまいクエリ

正規表現関数を使用して、単一の式で複数の単語をクエリできます。正規表現は LIKE 構文よりも強力なセマンティクスを提供し、数字や特定の文字を含む単語を検索できます。詳細については、「正規表現関数」をご参照ください。

例:

  • * | select * from log where regexp_like(key, abc*):abc で始まる単語をクエリします。

  • * | select * from log where regexp_like(key, abc\d+):abc で始まり、その後に 1 つ以上の数字が続く単語をクエリします。

  • * | select * from log where regexp_like(key, abc[xyz]):abc で始まり、その後に xy、または z が続く単語をクエリします。