Log Service は、SQL 集計コンピューティングと同様の機能を提供します。 この関数は、クエリ関数と SQL 演算関数を統合してクエリ結果を計算します。
構文例:
status>200 |select avg(latency),max(latency) ,count(1) as c GROUP BY method ORDER BY c DESC LIMIT 20
基本的な構文:
[search query] | [sql query]
SEARCH 条件と計算条件は垂直バー( |
)で区切られています。 この構文は、検索クエリを使用してログから必要なログをフィルタリングし、これらのログに対して SQL クエリの計算を実行することを示します。
検索クエリの構文は、 Log Service 固有のものです。 詳細は、クエリ構文を参照してください。
前提条件
分析機能を使用するには、 Search&Analysis 設定の対応する SQL フィールドの Enable Analytics スイッチをオンにします。 詳細は、概要 を参照してください。
- Enable Analytics スイッチがオフになっている場合、 Log Service はデフォルトで一部のデータに対してのみ計算機能を提供し、待ち時間は長くなります。
- Enable Analytics スイッチをオンにすると、 Log Service は数秒で迅速な分析を提供します。
- 機能が有効になっている場合にのみ、新しいデータに対して機能します。
- アナリティクスを有効にすると、追加料金は発生しません。
対応している SQL 構文
Log Service は、次の SQL 構文に対応しています。 詳細は、特定のリンクをクリックしてください。
構文構造
SQL の構文構造は次のとおりです。
- FROM 句と WHERE 句は、SQL 文では必須ではありません。 デフォルトでは、FROM は現在の Logstore のデータを照会することを示し、WHERE 条件は検索照会です。
- サポートされる句には、SELECT、GROUP BY、ORDER BY [ASC、DESC]、LIMIT、および HAVING が含まれます。
注 デフォルトでは、最初の 10 個の結果のみが返されます。 より多くの結果を返すには、 limit n を追加します。たとえば、
* | select count(1) as c, ip group by ip order by c desc limit 100
と選択します。
組み込みフィールド
Log Service は統計用のいくつかの組み込みフィールドがあります。 これらの組み込みフィールドは、有効な列を構成すると自動的に追加されます。
フィールド名 | タイプ | 説明 |
---|---|---|
__time__ |
bigint | ログ時間。 |
__source__ |
varchar | ログのソース IP。 このフィールドはあなたが照会するとき source です。 下線( __)は source の前後に SQL でのみ追加されます。 |
__topic__ |
varchar | ログトピック |
制限
- 各プロジェクトの最大同時実行数は15です。
- 単一列の VARCHAR の最大長は 2048 で、長さが 2048 を超えると切り捨てられます。
- デフォルトでは 100 行のデータが返され、ページめくりはサポートされていません。 より多くのデータを返すには、LIMIT 構文 を使用してください。
例
毎時の PV と UV、最高レイテンシのユーザー要求、および上位 10 の最高レイテンシに関する統計を作成します。
*|select date_trunc('hour',from_unixtime(__time__)) as time,
count(1) as pv,
approx_distinct(userid) as uv,
max_by(url,latency) as top_latency_url,
max(latency,10) as top_10_latency
group by 1
order by time