ログのクエリと分析を行う際、特定のフィールド名、テーブル名、またはフィールド値にスペース、特殊文字、または構文キーワードが含まれる場合は、それらを引用符で囲む必要があります。
検索ステートメントでの引用符の使用
説明
フィールド名またはフィールド値にスペースや漢字などの特殊文字、または AND や OR などの構文キーワードが含まれる場合は、そのフィールド名またはフィールド値を二重引用符 ("") で囲みます。検索構文の詳細については、検索構文をご参照ください。
例
-
request methodフィールドの値にPUTが含まれるログをクエリします。フィールド名にスペースが含まれているため、検索ステートメントでは二重引用符 ("") で囲みます。"request method":PUT -
remote_userフィールドの値が空の文字列であるログをクエリします。remote_user:"" -
regionフィールドの値にcn*が含まれるログをクエリします。cn*は文字列です。ログエントリがregion:cn*,enであり、区切り文字がカンマ (,) の場合、Simple Log Service は値の部分をcn*とenに分割します。次の検索ステートメントを使用してログエントリを検索します。region:"cn*"
分析ステートメント (SELECT ステートメント) での引用符の使用
説明
-
フィールド名やテーブル名などの固有名詞に、スペースや漢字などの特殊文字、または
ANDやORなどの構文キーワードが含まれる場合は、分析ステートメントでその固有名詞を二重引用符 ("") で囲みます。分析ステートメントには SELECT ステートメントが含まれます。 -
文字列リテラルは一重引用符 ('') で囲みます。引用符がない文字、または二重引用符 ("") で囲まれた文字は、フィールド名または列名を表します。たとえば、
'status'は文字列statusを表しますが、statusまたは"status"はstatusログフィールドを表します。
例
-
最も長い期間の上位 10 件のリクエストを計算します。
top 10という列名にはスペースが含まれているため、二重引用符 ("") で囲みます。* | SELECT max(request_time,10) AS "top 10" -
keyフィールドに保存されている IP アドレスが192.168.XX.XXの形式に一致するログをクエリします。* | select * from log where key like '192.168.%.%' -
ステータスコード別にリクエストログの数を計算します。
contentフィールドは JSON データ型でインデックス付けされています。詳細については、「インデックス付き JSON フィールドのクエリと分析方法」をご参照ください。* | SELECT "content.status", COUNT(*) AS PV GROUP BY "content.status"