Simple Log Serviceプロジェクトでは、クエリ結果の分析にSQL文を使用できます。 このトピックでは、分析ステートメントの基本的なSQL構文の概要を説明します。
基本構文
クエリステートメントと分析ステートメントは |
で表されます。 構造は次のとおりです。
query statement|analytic statement
クエリステートメントは独立して機能できますが、分析ステートメントはクエリステートメントに付随する必要があります。 ログ分析機能は、検索結果内またはログストア内のすべてのデータにわたるデータ分析を可能にします。
クエリ文を30条件以下に制限することを推奨します。
分析ステートメントにFROM句またはWHERE句がない場合、現在のログストアのデータはデフォルトで分析されます。 分析ステートメントは大文字と小文字を区別せず、オフセットの使用をサポートしておらず、結論を出すためにセミコロンを必要としません。
ステートメントタイプ | 説明 |
クエリ文 | クエリ文は、1つ以上の検索条件を定義します。 キーワード、数値、範囲、スペース、またはアスタリスク (*) で構成できます。 スペースまたはアスタリスク (*) を指定することは、条件を意味しません。 |
分析ステートメント | 分析ステートメントは、検索結果またはすべてのログからデータを集計または分析するために使用されます。 Simple Log Serviceでサポートされている分析機能と構文の詳細については、以下のトピックを参照してください。 |
SQL分析ステートメントの例:
* | SELECT status, count(*) AS PV GROUP BY status
SQL関数
SQL関数は通常、SQL句内に埋め込まれ、SELECT句の集計関数または文字列関数を使用するなど、クエリプロセス中にデータに対して計算または変換を実行します。
SQL関数は、加算、平均化、文字列操作、および日付処理を含むさまざまな操作に一般的に使用されます。
例:
前日からのログの照会:
* | SELECT * FROM log WHERE __time__ < to_unixtime(current_date) AND __time__ > to_unixtime(date_add('day', -1, current_date))
Results
フィールド値のJSON要素の数を計算します。サンプルフィールド
Results:[{"EndTime":1626314920},{"FireResult":2}]
クエリと分析ステートメント
* | SELECT json_array_length(Results)
SQL句
SQL句はSQL文の構造化フレームワークを提供し、SQL関数はそれらの句内のデータに対して特定の操作を実行します。
SQL句は、完全なSQLクエリまたはデータ操作ステートメントの構築、データソース、条件、グループ化、並べ替えなどの特性の決定に不可欠です。
例:
ログストア内のデータの読み取りおよび書き込みのレイテンシが1000を超えるかどうかを評価します。 このような遅延がある場合は、コンシューマグループの詳細を返します。
* | SELECT consumer_group FROM "internal-diagnostic_log" WHERE EXISTS ( SELECT Latency FROM internal-operation_log WHERE "internal-diagnostic_log".LogStore = "internal-operation_log".logstore and latency >1000 )
クエリおよび分析結果から最初の200行を取得します。
* | SELECT request_time LIMIT 200