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

Simple Log Service:集約命令

最終更新日:Nov 09, 2025

このトピックでは、集約命令の使用方法について説明し、例を示します。

stats

stats 命令は、ログの統計分析に使用します。これは、COUNTSUMAVG などの SQL の集計関数に似ています。ログデータ内の特定のフィールドに対して、統計、グループ化、および集約操作を実行します。

重要
  • この命令は、Log Service でのクエリ分析にのみ使用されます。データ変換、構造化プロセス言語 (SPL) ルール消費、書き込みプロセッサ、Logtail 構成などのシナリオには適用されません。

  • デフォルトでは、stats 命令は最初の 100 件の集約結果を返します。より多くの結果を返すには、limit 命令を使用します。

構文

stats <output>=<aggOperator> by <group>,[<group>...]

パラメーター

パラメーター

タイプ

必須

説明

output

String

はい

統計結果フィールドのエイリアスを指定します。

aggOperator

SQLExp

はい

次の集計関数がサポートされています:

  • count

  • count_if

  • min

  • max

  • sum

  • avg

  • skewness

  • kurtosis

  • approx_percentile

  • approx_distinct

  • bool_and

  • bool_or

  • every

  • arbitrary

  • array_agg

group

String

いいえ

集約のディメンションを指定します。これは SQL の GROUP BY フィールドに似ています。

  • ip ごとにアクセスログの pv を計算します。

    • SPL 文

      * | stats pv=count(*) by ip
    • 入力データ

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • 出力データ

      ip: 192.168.1.2
      pv: 1
      
      ip: 192.168.1.1
      pv: 2
  • 例 2: accesslog にあるすべての ip アドレスの min/max レイテンシーを計算します。

    • SPL 文

      * 
      | extend latencyMs=cast(latencyMs as bigint)
      | stats minLatencyMs=min(latencyMs), maxLatencyMs=max(latencyMs) by ip
    • 入力データ

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • 出力データ

      ip: 192.168.1.2
      minLatencyMs: 10
      maxLatencyMs: 20
      
      ip: 192.168.1.1
      minLatencyMs: 10
      maxLatencyMs: 10
  • アクセスログ内の合計 pv を計算します。

    • SPL 文

      * | stats pv=count(*)
    • 入力データ

      ip: 192.168.1.1
      latencyMs: 10
      
      ip: 192.168.1.1
      latencyMs: 20
      
      ip: 192.168.1.2
      latencyMs: 10
    • 出力データ

      pv: 3

sort

sort 命令はクエリ結果をソートします。フィールド値または統計結果を昇順 (asc) または降順 (desc) でソートできます。これは、主要なデータをすばやく見つけて順序付けられたレポートを生成するのに役立つ、ログ分析の重要なツールです。

重要

この命令は、Log Service でのクエリ分析にのみ使用されます。データ変換、SPL ルール消費、書き込みプロセッサ、Logtail 構成などのシナリオには適用されません。

構文

sort <field> [asc/desc] ,(<field> [asc/desc])

パラメーター

パラメーター

タイプ

必須

説明

field

String

はい

ソートするフィールドを指定します。次のフィールドタイプがサポートされています:

  • 元のログフィールド (例: status、 request_time)。

  • 統計フィールド (例: count(*)、 avg(response_time))。

  • 時間フィールド (例: @timestamp)。

asc/desc

String

いいえ

  • asc: 昇順にソートします (デフォルト)。

  • desc: 降順にソートします。これは、統計値を高いものから低いものへとソートするためによく使用されます。

accessloglatencyMs でソートします。

  • SPL 文

    * 
    | extend latencyMs=cast(latencyMs as bigint) 
    | sort latencyMs desc
  • 入力データ

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • 出力データ

    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
    
    ip: 192.168.1.1
    latencyMs: 10

limit

limit 命令は、クエリ結果で返されるログ行の数を制限します。これは、データ量をコントロールするためのコア命令です。limit を使用すると、クエリ結果が大きすぎることによるパフォーマンスの問題やリソースの浪費を防ぐことができます。ログ分析やリアルタイムモニタリングなど、さまざまなシナリオに適しています。

重要
  • この命令は、Log Service でのクエリ分析にのみ使用されます。データ変換、SPL ルール消費、書き込みプロセッサ、Logtail 構成などのシナリオには適用されません。

  • sort 命令を使用して照合順序を指定しない場合、limit 命令の出力はランダムな順序になります。これは、ストレージ中にログの自然な順序が保証されないためです。

構文

limit (<offset>,) <size>

パラメーター

パラメーター

タイプ

必須

説明

offset

Integer

いいえ

最初の offset 行をスキップします。

size

Integer

はい

行の制限。

アクセスログを latencyMs フィールドでソートし、最初の行を取得します。

  • SPL 文

    * 
    | extend latencyMs=cast(latencyMs as bigint) 
    | sort latencyMs
    | limit 1
  • 入力データ

    ip: 192.168.1.1
    latencyMs: 10
    
    ip: 192.168.1.1
    latencyMs: 20
    
    ip: 192.168.1.2
    latencyMs: 15
  • 出力データ

    ip: 192.168.1.1
    latencyMs: 20