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

ActionTrail:高度なイベントクエリにおける SQL 文

最終更新日:Jan 17, 2025

高度なイベントクエリで SQL 文を使用して、トレイルを使用して Simple Log Service に配信されるイベントをクエリまたは分析できます。

重要

分析文で文字列を使用する場合は、文字列を一重引用符 ('') で囲む必要があります。囲まれていない文字列、または二重引用符 ("") で囲まれた文字列は、フィールド名または列名を示します。たとえば、'status' は status 文字列を示し、status または "status" は status ログフィールドを示します。

  • 全文クエリ

    フィールド名やフィールド値などのキーワードを指定します。

    例: キーワード DescribeInstances を含むイベントをクエリします。

    DescribeInstances
  • プロパティベースの完全一致

    [イベントプロパティ名]:[イベントプロパティ値] 形式でイベントプロパティを指定します。正確な名前と値を指定する必要があります。イベントプロパティの詳細については、このトピックのイベントプロパティをご参照ください。

    例: event.eventSource の値が actiontrail.cn-hangzhou.aliyuncs.com であるイベントをクエリします。

    event.eventSource: actiontrail.cn-hangzhou.aliyuncs.com
  • 属性ベースのあいまい一致

    [イベントプロパティ名]:[イベントプロパティ値] 形式でイベントプロパティを指定します。正確な名前を指定する必要があります。値については、アスタリスク (*) を追加して複数の文字に一致させるか、疑問符 (?) を追加して単一の文字に一致させることができます。

    • 例 1: すべての AccessKey ペアベースのアクセスイベントをクエリします。

       event.userIdentity.accessKeyId: *
    • 例 2: event.eventSource の値が actiontrail で始まるイベントをクエリします。

      event.eventSource: actiontrail*
  • 複数条件クエリ

    括弧 () と論理演算子 AND または OR を使用して、複数条件クエリを実行します。

    • 例 1: AccessKey ペアベースのアクセスの失敗に関するすべてのイベントをクエリします。

      event.errorCode: * AND event.userIdentity.accessKeyId: *
    • 例 2: event.eventName の値が CreateCreateInstance、または RunInstances であるイベントをクエリします。

       event.eventName: Create  OR event.eventName: CreateInstance  OR event.eventName: RunInstances 
    • 例 3: event.serviceName の値が kafka で、eventName の値が CreateCreateInstance、または RunInstances であるイベントをクエリします。

      (event.serviceName: AliKafka AND ( event.eventName: Create  OR event.eventName: CreateInstance  OR event.eventName: RunInstances  )

  • 集計クエリ

    Simple Log Service の集計クエリ構文を使用して、イベントの集計統計を生成できます。たとえば、GROUP BY 句を使用して、特定のフィールドの集計統計を生成できます。

    • 例 1: クラウドサービス別に集計されたイベントの数をクエリします。

      * | SELECT "event.serviceName" AS service, COUNT(*) AS count FROM log GROUP BY "event.serviceName"
    • 例 2: ユーザーとクラウドサービス別に集計されたイベントの数をクエリします。

      * | SELECT "event.userIdentity.principalId" AS principalId, "event.serviceName" AS service, COUNT(*) AS count FROM log GROUP BY principalId,service

イベントプロパティ

次の表は、ActionTrail でサポートされているイベント属性を示しています。

カテゴリ

イベントプロパティ名

説明

オペレーター

event.userIdentity.accountId

Alibaba Cloud アカウント ID。

event.userIdentity.accessKeyId

キー ID。

event.userIdentity.principalId

リクエスター ID。

event.userIdentity.type

アカウントタイプ。

event.userIdentity.userName

ユーザー名。

操作

event.serviceName

サービス名。

event.eventRW

読み取り/書き込みタイプ。

event.eventName

イベント名。

event.apiVersion

バージョン情報。

event.errorMessage

エラーメッセージ。

event.errorCode

エラーコード。

関連リソース

event.resourceType

リソースタイプ。

event.resourceName

リソース名。

場所

event.acsRegion

リージョン。

event.eventSource

イベントソース。

event.sourceIpAddress

ソース IP アドレス。

その他

event.requestId

リクエスト ID。

event.eventId

イベント ID。

集計関数

次の表は、ActionTrail でサポートされている集計関数を示しています。

関数

構文

説明

SQL でサポート

SPL でサポート

arbitrary 関数

arbitrary(x)

x フィールドのランダムな NULL 以外の値を返します。

×

avg 関数

avg(x)

x フィールドの値の平均を計算します。

×

bitwise_and_agg 関数

bitwise_and_agg(x)

x フィールドの値に対するビット単位の AND 演算の結果を返します。

×

bitwise_or_agg 関数

bitwise_or_agg(x)

x フィールドの値に対するビット単位の OR 演算の結果を返します。

×

bool_and 関数

bool_and(ブール式)

すべてのログが指定された条件を満たしているかどうかを確認します。はいの場合、関数は true を返します。

この関数は every 関数と同等です。

×

bool_or 関数

bool_or(ブール式)

指定された条件を満たすログが存在するかどうかを確認します。はいの場合、関数は true を返します。

×

checksum 関数

checksum(x)

x フィールドの値のチェックサムを計算します。

×

count 関数

count(*)

ログの数をカウントします。

×

count(1)

ログの数をカウントします。この関数は count(*) 関数と同等です。

×

count(x)

x フィールドの値が NULL でないログの数をカウントします。

×

count_if 関数

count_if(ブール式)

指定された条件を満たすログの数をカウントします。

×

every 関数

every(ブール式)

すべてのログが指定された条件を満たしているかどうかを確認します。はいの場合、関数は true を返します。

この関数は bool_and 関数と同等です。

×

geometric_mean 関数

geometric_mean(x)

x フィールドの値の相乗平均を計算します。

×

kurtosis 関数

kurtosis(x)

x フィールドの値の尖度を計算します。

×

map_union 関数

map_union(x)

指定されたマップに対する和集合演算の結果を返します。複数の入力マップにキーが存在する場合、関数はキーの値の 1 つをランダムに返します。

×

max 関数

max(x)

x フィールドの最大値をクエリします。

×

max(x, n)

x フィールドの n 個の最大値をクエリします。関数は配列を返します。

×

max_by 関数

max_by(x, y)

y フィールドの最大値に関連付けられている x の値をクエリします。

×

max_by(x, y, n)

y フィールドの n 個の最大値に関連付けられている x の値をクエリします。関数は配列を返します。

×

min 関数

min(x)

x フィールドの最小値をクエリします。

×

min(x, n)

x フィールドの n 個の最小値をクエリします。関数は配列を返します。

×

min_by 関数

min_by(x, y)

y フィールドの最小値に関連付けられている x の値をクエリします。

×

min_by(x, y, n)

y フィールドの n 個の最小値に関連付けられている x の値をクエリします。関数は配列を返します。

×

skewness 関数

skewness(x)

x フィールドの値の歪度を計算します。

×

sum 関数

sum(x)

x フィールドの値の合計を計算します。

×

予約語

次のコードブロックは、SQL 文のすべての予約語を示しています。

AND
AS
BETWEEN
BY
CASE
CAST
CROSS
CUBE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
DISTINCT
ELSE
END
ESCAPE
EXCEPT
EXISTS
FROM
GROUP
GROUPING
HAVING
IN
INNER
INSERT
INTERSECT
INTO
IS
JOIN
LEFT
LIKE
LIMIT
LOCALTIME
LOCALTIMESTAMP
NATURAL
NOT
NULL
ON
OR
ORDER
OUTER
RIGHT
ROLLUP
SELECT
THEN
TRUE
UNION
UNNEST
VALUES
WHEN
WHERE
WITH