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

Simple Log Service:SQL構文と関数

最終更新日:Dec 16, 2024

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