このトピックでは、構造化プロセス言語 (SPL) で構造化データに SQL 計算命令を使用する方法を、例を挙げて説明します。
extend
SQL 式を評価して新しいフィールドを作成します。SPL でサポートされる SQL 関数の一覧については、「SPL でサポートされる SQL 関数」をご参照ください。
構文
| extend <output> = <sql-expr>, ...パラメーターの説明
パラメーター | タイプ | 必須 | 説明 |
output | フィールド | はい | 追加する宛先フィールドの名前。複数の式の結果を同じ宛先フィールドに出力することはできません。 重要 宛先フィールドが入力データ内のフィールドと同じ名前の場合、元のフィールドは新しい型と値で上書きされます。 |
sql-expr | SQLExpr | はい | データ処理式。 重要 NULL 値の処理方法については、「SPL 式での NULL 値の処理」をご参照ください。 |
例
例1:計算式の使用
* | extend Duration = EndTime - StartTime例2:正規表現の使用
* | extend server_protocol_version = regexp_extract(server_protocol, '\d+')例3:JSON パスからのコンテンツ抽出とフィールドのデータ型変換
SPL ステートメント
* | extend a = json_extract(content, '$.body.a'), b = json_extract(content, '$.body.b') | extend b = cast(b as BIGINT)入力データ
content: '{"body": {"a": 1, "b": 2}}'出力結果
content: '{"body": {"a": 1, "b": 2}}' a: '1' b: 2
where
ブール SQL 式に基づいてデータエントリをフィルター処理します。式の結果が true になるエントリのみが保持されます。where 命令でサポートされる SQL 関数の一覧については、「SPL でサポートされる SQL 関数」をご参照ください。
構文
| where <sql-expr>パラメーターの説明
パラメーター | タイプ | 必須 | 説明 |
sql-expr | SQLExpr | はい | SQL 式。この式を満たすデータエントリが保持されます。 重要 SQL 式での NULL 値の処理方法については、「SPL 式での NULL 値の処理」をご参照ください。 |
例
例1:フィールドの内容に基づくデータエントリのフィルタリング
* | where userId = '123'例2:正規表現によるデータエントリのフィルタリング
* | where regexp_like(server_protocol, '\d+')例3:データ型変換後のサーバー側エラーのフィルタリング
* | where cast(status as BIGINT) >= 500
SPL でサポートされる SQL 関数
カテゴリ | 説明 | 一般的な関数 |
データセットから単一の統計値を計算します。 | ||
テキストデータを処理します。検索、置換、部分文字列の抽出、連結、フォーマットなどの操作が含まれます。 | ||
ログ内の日付と時刻に対して、形式変換、グループ化、集計などの操作を実行します。 | ||
JSON オブジェクトからデータを抽出、変換、または統計を計算します。 | ||
パターンマッチングとテキスト処理を実行します。 | ||
時系列データの相対的な変化を計算します。 | ||
配列に対して、作成、操作、走査、変換などの操作を実行します。 | ||
キー/値ペアを操作します。 | ||
数値計算、丸め処理、乱数生成、三角関数計算を実行します。 | ||
データ分布分析と数値計算を実行します。 | ||
データ型間の変換を実行します。 | ||
ウィンドウ上でデータを集約または並べ替えます。 | ||
IP アドレスを解析および計算します。 | ||
URL 構造を解析します。 | ||
大規模なデータセットに対して近似集計計算を実行し、精度とリソース消費のバランスを取ります。 | ||
バイナリデータを操作します。 | ||
バイナリビットを直接操作します。 | ||
空間ジオメトリデータを操作します。 | ||
地理的位置分析とマップ計算を実行します。 | ||
色を表現および変換します。 | ||
大規模なデータセットに対して、精度とメモリ効率のバランスを取りながら統計処理を実行します。 | ||
値を比較します。これらの演算子は、double、bigint、varchar、timestamp、date など、すべての比較可能なデータ型に適用されます。 | ||
複数のブール条件を組み合わせて論理フローを制御します。 | ||
データサイズまたは時間間隔の単位を変換します。 | ||
ユーザー行動、アプリトラフィック、製品目標のコンバージョンなどのデータを分析します。 | ||
SQL および SPL ステートメントでラムダ式を定義し、他の関数に渡すことで、より柔軟な処理が可能になります。 | ||
指定された条件に基づいて値を返します。 |